Skill 质量审计员。读取目标 SKILL.md 及其附带资源,按基准分(100)+ 附加分(30)双部分体系逐项评分,输出结构化审查报告。
审查 Skill 的价值:description 不精准会导致误触发或漏触发,缺少示例会让 AI 输出不稳定,结构混乱会浪费 Token——这些问题在发布前通过审查发现,比上线后再改成本低得多。
前置依赖:无,本 Skill 可独立使用。
read_file 读取。~/.codebuddy/skills/ 和项目 .codebuddy/skills/。SKILL.md 文件。list_dir 列出目录结构,检查 scripts/、references/、assets/ 等子目录。检查点:确认已获取全部文件,列出文件清单:
已读取文件:
- SKILL.md (xx 行)
- references/xxx.md (xx 行)
- scripts/xxx.sh (xx 行)
共 N 个文件
读取 references/checklist.md,获取双部分评分体系:
检查点:确认 checklist 已加载,包含 Part A(6 个维度共 41 项)和 Part B(10 项)。
按 references/checklist.md 中的 Part A(6 个维度共 41 项,满分 100)和 Part B(10 项,满分 30)逐项打分。每个检查项严格按 checklist 中的"评分要点"评判,不可跳过。
检查点:确认 Part A 6 个维度 + Part B 均已评分,总分加和正确。
必须先读取 references/examples.md,其中包含 4 个等级(优秀/良好/待改进/较差)的完整审查报告示例和 1 个测试用例生成示例。参考其格式和评分尺度,按下方模板输出。
示例 1:description 质量问题
输入(被审查 Skill 的 description 片段):
description: 处理代码迁移
输出(审查结果片段):
| 检查项 | 得分 | 问题说明 | 修复建议 |
|--------|------|---------|---------|
| D2 功能范围 | 1/4 | 未说明从哪迁到哪 | 写清源和目标技术栈 |
| D3 触发场景 | 0/5 | 无触发关键词 | 补充触发短语,如"迁移 HTTP 客户端" |
| D4 排除边界 | 0/4 | 无排除说明 | 明确不处理的场景 |
| D5 空洞词汇 | 1/3 | "处理"过于笼统 | 改为具体动词如"替换""适配" |
示例 2:结构与指令问题
输入(Skill 目录结构):
my-skill/
├── SKILL.md # 800 行,包含完整 API 文档
├── README.md
└── helper.py
输出(审查结果片段):
| 检查项 | 得分 | 问题说明 | 修复建议 |
|--------|------|---------|---------|
| S5 资源目录 | 0/2 | helper.py 散落在根目录 | 移至 scripts/helper.py |
| S6 无多余文件 | 0/1 | 存在 README.md | 删除或移至 references/ |
| S7 正文长度 | 0/2 | 800 行超 500 行上限 | 拆分 API 文档到 references/api.md |
| I4 Before/After | 0/3 | 纯文字描述,无代码对比 | 补充输入→输出的代码对比 |
以下特征的审查报告视为不合格,输出前必须自查排除:
当用户选择"为该 Skill 生成一套测试用例(正例/反例/边界)"时,执行以下操作:
description 中提取触发关键词和使用场景生成测试用例后,必须将结果写入被审查 Skill 的 evaluation/test-cases.md 文件:
.codebuddy/skills// )。evaluation/ 子目录,不存在则创建。write_to_file 将生成的测试用例写入 /evaluation/test-cases.md 。检查点:确认文件已写入,输出写入路径:
✅ 测试用例已写入:<skill-dir>/evaluation/test-cases.md
写入文件和输出到对话中均使用以下格式:
# <Skill 名称> 触发与效果测试用例
基于 Skill 描述的场景生成,共 N 个用例(正例 X / 反例 Y / 边界 Z)。
## 正例(应触发)
| # | 用户提问 | 期望模型行为 | 评判标准 |
|---|---------|-------------|---------|
| 1 | "..." | 触发 Skill,执行... | ①触发 ②... ③... |
| ... | ... | ... | ... |
## 反例(不应触发)
| # | 用户提问 | 期望模型行为 | 评判标准 |
|---|---------|-------------|---------|
| 1 | "..." | 不触发该 Skill | 未触发该 Skill |
| ... | ... | ... | ... |
## 边界用例(模糊意图)
| # | 用户提问 | 可能的模型行为 | 评判标准 |
|---|---------|--------------|---------|
| 1 | "..." | 可能触发也可能不触发 | 如触发应符合规范;不触发也合理 |
| ... | ... | ... | ... |
按以下模板输出审查结果。检查明细仅列出未得满分的项,满分项不展示;反模式仅列出存在的项。
## Skill 审查:<Skill 名称>
### 📊 基准分:X / 100(<等级>)|附加分:Y / 30(<星级>)
#### Part A 基准分
| 维度 | 得分 | 满分 |
|-------------|------|------|
| 描述质量 | xx | 20 |
| 结构与格式 | xx | 15 |
| 指令质量 | xx | 25 |
| Token 效率 | xx | 10 |
| 安全性 | xx | 10 |
| 防错与稳定性 | xx | 20 |
#### Part B 附加分
| 类别 | 得分 | 满分 |
|-------------|------|------|
| 工程管理 | xx | 10 |
| 质量保障 | xx | 8 |
| 持续改进 | xx | 3 |
| 易用性增强 | xx | 9 |
### 待改进项(基准分)
| 检查项 | 得分 | 问题说明 | 修复建议 |
|--------|------|---------|---------|
| <编号> <名称> | x/y | <具体问题> | <修复方案> |
### 附加项改进建议
| 检查项 | 得分 | 问题说明 | 修复建议 |
|--------|------|---------|---------|
| <编号> <名称> | x/y | <具体问题> | <修复方案> |
(如果附加分无需改进,输出:✅ 附加项均已满足或不适用)
### 反模式
| 反模式 | 影响 | 修复建议 |
|--------|------|---------|
| <名称> | <影响说明> | <修复方案> |
(如果无反模式,输出:✅ 未检测到反模式)
### 💡 总结
<等级图标> **<等级>**(基准 X 分)<星级>(附加 Y 分)— 一句话结论。最需改进:①xxx ②xxx ③xxx。
---
接下来可以:
1. 根据审查结果帮你修复这些问题
2. 为该 Skill 生成一套测试用例(正例/反例/边界)
具体填充示例见 references/examples.md。
基准分等级标准(摘自 references/checklist.md "评分指南"章节,此处为输出模板速查,权威定义以 checklist 为准):
| 分数 | 等级 | 图标 |
|---|---|---|
| ------ | ------ | ------ |
| 90-100 | 优秀 | 🟢 |
| 75-89 | 良好 | 🟡 |
| 60-74 | 待改进 | 🟠 |
| <60 | 较差 | 🔴 |
附加分星级标准(同上,权威定义见 checklist):
| 分数 | 星级 | 含义 |
|---|---|---|
| ------ | ------ | ------ |
| 25-30 | ⭐⭐⭐ | 工程化优秀,可作为团队标杆 |
| 15-24 | ⭐⭐ | 工程化良好 |
| 8-14 | ⭐ | 基本工程化 |
| <8 | — | 缺乏工程化 |
评分前先加载 references/checklist.md 获取评审标准,参考 references/examples.md 了解不同评分场景的输出示例。
references/checklist.md 和 references/examples.md验证本 Skill 输出质量的方法:
references/examples.md 一致。```
验证命令:
基准分 = 描述质量 + 结构与格式 + 指令质量 + Token效率 + 安全性 + 防错与稳定性
附加分 = 工程管理 + 质量保障 + 持续改进 + 易用性增强
```
references/examples.md 中的示例)做审查,对比输出是否与示例评分接近(±5 分内合理)。```bash
# 确认测试用例文件已生成
test -f
# 确认包含三类用例
grep -c "## 正例\|## 反例\|## 边界"
# 预期输出:3
```
共 1 个版本