V(g) 安全扫描器
rotifer vg
Section titled “rotifer vg”对 Skill 或 Gene 目录运行 V(g) 静态分析。扫描源代码中的安全相关模式,并输出安全等级(A/B/C/D/?)。
rotifer vg [path] [options]参数:
| 参数 | 必填 | 描述 |
|---|---|---|
path | 否 | Skill 或 Gene 目录路径。默认为 . |
选项:
| 选项 | 描述 |
|---|---|
--id <skill_id> | 报告中包含的 Skill/Gene 标识符 |
--json | 输出原始 JSON 报告而非格式化输出 |
--all | 扫描所有代码文件,而不仅是 src/ |
V(g) 检查 7 种安全相关代码模式:
| 规则 | 检测目标 | 严重程度 |
|---|---|---|
| S-01 | 动态代码执行(eval()、Function()) | 🔴 严重 |
| S-02 | 系统命令执行(child_process、exec、spawn) | 🔴 严重 |
| S-03 | 代码混淆(atob() + eval 组合) | 🔴 严重 |
| S-04 | 可疑外部通信(fetch()、http.request) | 🟡 高 |
| S-05 | 环境变量访问(process.env) | 🟡 高 |
| S-06 | 持久外联连接(WebSocket、net.Socket) | 🟡 高 |
| S-07 | 文件系统操作(fs.readFile、fs.writeFile) | 🟠 中 |
| 等级 | 条件 | 徽章颜色 |
|---|---|---|
| A | 0 个严重 + 0 个高 | brightgreen |
| B | 0 个严重 + ≤2 个高 | green |
| C | 0 个严重 + >2 个高 | yellow |
| D | ≥1 个严重 | red |
| ? | 未找到源代码(纯 prompt Skill) | lightgrey |
扫描当前目录:
$ rotifer vg扫描指定 Skill 并附带标识符:
$ rotifer vg ./my-skill --id @alice/search-web输出 JSON 用于 CI/CD:
$ rotifer vg ./my-skill --json > report.json扫描所有文件(不仅是 src/):
$ rotifer vg ./my-skill --allJSON 输出格式
Section titled “JSON 输出格式”使用 --json 时,输出遵循以下结构:
{ "skill_id": "@author/skill-name", "scanned_at": "2026-03-19T12:00:00Z", "grade": "B", "findings": [ { "rule": "S-04", "severity": "HIGH", "file": "src/api.ts", "line": 42, "snippet": "fetch('https://api.example.com/...')" } ], "stats": { "files_scanned": 3, "lines_of_code": 245 }}扫描后,为你的 README 生成信任徽章。访问徽章生成器或直接嵌入:
查看信任徽章指南了解所有徽章类型和嵌入选项。