增加同步检测脚本和自检查的机制

This commit is contained in:
2026-05-04 11:04:55 +08:00
parent 06aa3438b9
commit e724df5c11
6 changed files with 579 additions and 3 deletions

View File

@@ -20,7 +20,12 @@ description: >-
# 概述
skill-tester 是元层测试工具,通过 LLM-as-Judge 模式验证 SKILL.md 的行为逻辑。
skill-tester 是元层测试工具,分两层:
- **Layer 1静态检查**:无需 LLM毫秒级。检测文件间交叉引用一致性。每次框架变更后必跑。
- **Layer 2行为测试**LLM-as-Judge验证 SKILL.md 的指令逻辑。
**建议顺序**:先跑 Layer 1免费+快),通过后再跑 Layer 2消耗 token
**核心原理**:将 SKILL.md 内容 + 模拟用户输入注入 sub-agent观察其输出是否符合预期
再用另一个 sub-agent 作为裁判评分。
@@ -29,6 +34,59 @@ skill-tester 是元层测试工具,通过 LLM-as-Judge 模式验证 SKILL.md
---
# Layer 1静态一致性检查无需 LLM
## 概述
Layer 1 是纯文件级检查,检测 canonical-manifest.json、opencode-init SKILL.md、
registry.md、各 SKILL.md 之间的交叉引用一致性。**不需要 LLM 调用,毫秒级运行。**
适合作为 git pre-commit hook 或 CI 检查项。
### 安装 git pre-commit hook可选
```
# Windows
copy .opencode\skills\skill-tester\hooks\pre-commit .git\hooks\pre-commit
# Unix
ln -sf ../../.opencode/skills/skill-tester/hooks/pre-commit .git/hooks/pre-commit
```
安装后,每次 `git commit` 如果涉及 `.opencode/skills/` 下的文件变更,会自动运行 7 项检查。不通过则阻止提交。
## 检查项
| 检查 | 描述 | 覆盖的问题 |
|------|------|-----------|
| manifest-skills-sync | manifest canonical_skills 与 init Skills 白名单一致 | 新增 Skill 后忘记更新 init → 被误删 |
| manifest-phase-sync | manifest template_phase_files 与 init 阶段数据占位目录一致 | 新增 phase 文件后落入 C 组 |
| registry-types | registry 中 phases≠["all"] 的 Skill 类型为"基础设施" | game-design 被标为"项目级"而被误删 |
| phase-guard-all | 所有 SKILL.md Phase Guard 包含 "all" 处理 | "all" 特殊值未处理导致基础设施 Skill 被错误拒绝 |
| init-templates | manifest 每个文件在 init 模板内容章节有对应模板 | 缺少重置模板导致 init 时文件丢失 |
| frontmatter | 所有 SKILL.md 的 YAML frontmatter 完整name + phases | opencode 无法注册该 Skill |
## 运行方式
```bash
python .opencode/skills/skill-tester/static-checks/run.py
```
退出码:全部通过 = 0有失败 = 1。可直接集成到 CI/pre-commit。
## 新增检查项
编辑 `static-checks/run.py`,在 `CHECKS` 列表追加新函数即可,格式为:
```python
("check-id", "检查名称", check_function)
```
---
# Layer 2LLM-as-Judge 行为测试
---
# 操作 A测试单个 Skill
## 触发
@@ -38,6 +96,10 @@ skill-tester 是元层测试工具,通过 LLM-as-Judge 模式验证 SKILL.md
## 流程
```
0. 【强制】先运行 Layer 1 静态检查:
python .opencode/skills/skill-tester/static-checks/run.py
→ 如有 FAIL提示用户先修复再跑 Layer 2
→ 全部 PASS 则继续
1. 读取目标 Skill 的 SKILL.md
2. 读取 .opencode/skills/skill-tester/test-cases/ 下匹配该 Skill 的测试用例
3. 列出测试用例清单,询问用户确认
@@ -204,3 +266,7 @@ Agent 输出Markdown
# 自迭代日志
本节记录使用本 Skill 过程中发现的必要检查项。
### 已知必要检查
1. **Layer 1 必须在每次框架结构变更后运行** — 新增 Skill、修改 manifest 分组、新增数据文件后,`static-checks/run.py` 的 6 项检查必须全部通过。历史教训:新增 `template_phase_files` 后未同步 init Skill 的 3 个截面,导致 phase 文件落入 C 组;`game-design` 被标为"项目级"导致 init 时被 registry 删除。