NonBytes/skills-validation
GitHub: NonBytes/skills-validation
一款基于 Tauri v2 和 Rust 构建的离线桌面应用,用于解析、验证、模拟和试运行渗透测试 AI agent 的 skill playbook 文件。
Stars: 0 | Forks: 0
# Skill Tester
一款使用 **Tauri v2** 和 **Rust** 构建的离线桌面应用程序,用于解析、lint、验证、模拟和试运行 agent skill 文件。
Skill 是带有 YAML frontmatter 的 markdown 文件,用于为自主渗透测试 AI agent 提供上下文和 playbook。此实用程序允许开发人员测试匹配逻辑、验证 frontmatter schema 的正确性、检查覆盖率,以及针对本地或云端 LLM 运行试运行测试。
## 主要功能
1. **Frontmatter Lint 与验证**
- 解析单个文件的 YAML frontmatter,或递归遍历目录结构。
- 强制执行 schema 验证(例如:必填字段、有效的阶段、非空内容)。
- 验证**参考文件**(没有 frontmatter 的文件),检查失效链接、孤立文档和缺失的标题。
- **自动修复**功能利用编辑距离进行阶段修正和优先级强制转换,并提供实时的 diff 预览。
- Watch 模式,在文件更改时自动重新验证。
- 按状态过滤(全部 / 通过 / 失败 / 警告 / 错误),并支持跨名称和路径的全文搜索。
- **泰语/英语 UI** — 所有标签、状态消息和验证提示均完全支持双语。
2. **Trigger 匹配模拟器**
- 模拟和调试 skill trigger 规则(技术、服务、端口、路径、信号、阶段)。
- 使用 OR 匹配评估标准评估场景状态,并按优先级排序显示结果。
- 突出显示匹配到零个 skill 或匹配到过多 skill 的场景警告。
3. **覆盖率矩阵**
- **阶段覆盖率**:跨 9 个网络攻击杀伤链阶段的可视化进度映射。
- **工具覆盖率**:将 87 个内置 agent 工具与 skill 库存进行匹配,以发现缺口。
- **OWASP Top 10 映射**:将 skill 映射到漏洞类别,当缺口(如 A06 或 A09)缺少 playbook 时向您发出警告。
- 还涵盖 **MITRE ATT&CK Tactics**、**CWE Top 25** 和 **PTES Phases**。
4. **LLM 试运行测试器**
- 选择云端或本地 LLM 提供商:**OpenAI**、**Anthropic**、**Ollama**、**LM Studio** 和 **AnythingLLM**。
- **自动 skill 匹配** — 用纯文本描述目标场景,引擎会自动选择最相关的 skill playbook(最多 5 个)作为 LLM 上下文,这与真实 agent runtime 的工作方式完全一致。
- 50 个内置示例场景,涵盖 Web、网络、云、AD、协议和 OSINT — 一键即可加载任意场景。
- 显示每次响应匹配到的 skill。
- 支持选择响应语言(英语或泰语)并对 LLM 建议进行评分。
## 技术栈
- **Frontend**:Vanilla HTML5、CSS3、JavaScript、Tailwind CSS v4 和 `marked.js`(markdown 渲染器)。
- **Backend**:Rust、Tauri v2 框架、Tokio(异步 runtime)、Serde(序列化)、Reqwest(HTTP 客户端)和 Walkdir(文件解析)。
## 开始使用
### 前置条件
- **Node.js** (v18+)
- **Rust & Cargo** (v1.75+)
### 安装与设置
1. 克隆仓库并导航至项目目录:
git clone https://github.com/NonBytes/skills-validation.git
cd skills-validation
2. 安装 Node 依赖(Tailwind CSS 构建 CLI 所需):
npm install
### 在开发模式下运行
要启动具有热重载和 Tailwind 编译功能的桌面应用程序:
1. 编译 CSS:
npm run build:css
*(对于持续开发,您可以在单独的终端中运行 `npm run dev:css` 以监听样式变化)*
2. 启动 Tauri 应用程序:
cargo tauri dev
## 生产构建指南
要为您的操作系统构建独立的生产可执行文件,请按照以下特定平台的说明进行操作:
### 🍏 macOS 构建
#### 前置条件
- **Xcode Command Line Tools**:通过运行以下命令进行安装:
xcode-select --install
#### 构建命令
```
npm run build:css
cargo tauri build
```
输出的 bundle 将生成在:
- **`.dmg` 安装程序**:`src-tauri/target/release/bundle/dmg/`
- **`.app` 应用程序 bundle**:`src-tauri/target/release/bundle/macos/`
### 🐧 Linux 构建 (Debian/Ubuntu)
#### 前置条件
安装必需的系统软件包,包括编译器、OpenSSL、GTK 和 WebKit2GTK:
```
sudo apt update
sudo apt install -y \
libwebkit2gtk-4.1-dev \
build-essential \
curl \
wget \
file \
libssl-dev \
libgtk-3-dev \
libappindicator3-dev \
librsvg2-dev
```
#### 构建命令
```
npm run build:css
cargo tauri build
```
输出的 bundle 将生成在:
- **`.deb` 安装程序**:`src-tauri/target/release/bundle/deb/`
- **`.AppImage` 可执行文件**:`src-tauri/target/release/bundle/appimage/`
### Windows 构建
#### 前置条件
1. **Visual Studio Build Tools**:安装 C++ Build Tools(通过 Visual Studio Installer)。
2. **WiX Toolset**:将应用程序打包为 `.msi` 安装程序所必需。
- 安装 WiX Toolset v3 或 v4(您可以使用 `winget install WiXToolset.WiXToolsets` 或从他们的网站下载)。
#### 构建命令
```
npm run build:css
cargo tauri build
```
输出的 bundle 将生成在:
- **`.msi` 安装程序**:`src-tauri\target\release\bundle\msi\`
- **`.exe` 安装程序 (NSIS)**:`src-tauri\target\release\bundle\nsis\`(如果已配置)
## 下载
预构建的二进制文件可在 [Releases](https://github.com/NonBytes/skills-validation/releases) 页面上找到:
| 平台 | 文件 |
|---|---|
| macOS (Apple Silicon) | `Skills.Validation_x.x.x_aarch64.dmg` |
| macOS (Intel) | `Skills.Validation_x.x.x_x64.dmg` |
| Linux | `Skills.Validation_x.x.x_amd64.deb` 或 `.AppImage` |
| Windows | `Skills.Validation_x.x.x_x64-setup.exe` 或 `.msi` |
### macOS:“应用程序已损坏”警告
该应用程序未使用 Apple Developer 证书进行签名,因此 macOS Gatekeeper 会阻止它。要解决此问题,请在安装后运行以下命令:
```
xattr -cr "/Applications/Skills Validation.app"
```
或者,如果您打开了 `.dmg` 但尚未将其移动到“应用程序”文件夹中:
```
xattr -cr ~/Downloads/Skills\ Validation.app
```
然后正常打开该应用程序。
## 运行测试
Rust 后端包含单元测试,用于验证 trigger 匹配、目录遍历、自动修复编辑距离以及 LLM 配置解析。使用以下命令运行测试套件:
```
cargo test
```
标签:MITM代理, Rust, Tauri, 可视化界面, 安全覆盖度评估, 数据可视化, 桌面应用, 网络流量审计, 自动化渗透测试, 自定义脚本