Install any skill in seconds. Free to start, no credit card required.
Get Started Free →审核/审查 Skill 代码质量的专业工具。当用户说"检查 skill"、"审核 skill"、"review {名称} skill"、"skill 写得怎么样"、"帮我看看这个 skill 有什么问题"时使用。依据 Anthropic 官方指南进行结构验证、YAML 前置信息检查、描述质量评估、指令完整性审查,并输出详细的问题报告和改进建议。
.claude/skills/leoyeai-skill-reviewer/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-06 | ✗→✓ | ▲ Improved | 219% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 151% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 283% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 174% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 222% | 0% |
> 说明:这是一个Skill审核工具,用于审核其他技能的质量。文档中包含的"错误示例"(如无效 YAML、错误命名等)仅用于教学演示,展示不应该怎么写。不存在任何恶意或混淆代码。
依据 Anthropic 官方 Skills 开发指南,对技能进行全面审核。提供结构化审核框架、评分系统、缺陷检查清单和改进建议。
> 示例:ls skills/my-skill/ 检查 SKILL.md 是否存在
> 示例:head -20 SKILL.md 检查 name/description
> 示例:description 应包含"当用户...时"触发条件
> 示例:"## 编码和解码" ✅ vs "## 理论" ❌
> 示例:是否有工作流程、示例、错误处理
> 示例:每 5-30 行 1 个代码块为最佳密度
> 示例:5-10 条非显而易见的实用技巧
> 示例:检查是否按任务组织而非抽象概念
当用户请求审核 skill 时:
严格模式(必须读取完整版官方指南): 当用户表达以下意图时,必须先读取 references/anthropic-skills-development-guide.md 完整版指南:
常规模式:
references/checklist.md(快速检查清单)文件夹结构验证:
text[ ] 技能文件夹使用 kebab-case 命名(如 my-skill) [ ] SKILL.md 存在且命名精确(区分大小写) [ ] 无 README.md 在技能文件夹内 [ ] 可选文件夹(如存在)命名规范
可选文件夹命名规范(如存在):
scripts/ - 全小写复数,无空格/下划线references/ - 全小写复数,无空格/下划线assets/ - 全小写复数,无空格/下划线❌ 错误示例: Scripts、script、scripts_backup、References、refs、Assets、asset_files
示例:检查文件夹结构
bash# 查看技能文件夹结构 ls -la skills/china-holidays/
预期输出:
textskills/china-holidays/ ├── SKILL.md # ✅ 正确:精确命名 └── references/ # ✅ 正确:全小写复数 └── calendar-guide.md
评分:__/4
必填字段验证:
text[ ] name 字段存在,kebab-case,无空格大写 [ ] description 字段存在,非空 [ ] YAML 分隔符完整(--- 开头和结尾) [ ] 无 XML 标签(< >) [ ] name 不以 claude/anthropic 开头
示例:验证 YAML 前置信息
bash# 读取前 20 行检查 YAML head -20 skills/china-holidays/SKILL.md
预期输出(正确示例):
yaml--- name: china-holidays description: 获取中国国家法定节假日安排。当用户询问"放假安排"、"节假日"时使用。 ---
错误示例(应该拒绝):
yamlname: ChinaHolidays # ❌ 大写,应该 kebab-case name: claude-scheduler # ❌ 以 claude 开头 description: "" # ❌ 空描述 <skill> # ❌ 包含 XML 标签
Description 质量评分(满分 8 分):
text[2] 开头说明做什么(主动动词) 好:"分析 Figma 设计文件并生成开发者交接文档" 差:"这是关于 Figma 的技能" [2] 包含触发条件("当用户...时") 好:"当用户上传 .fig 文件或询问设计规格时使用" 差:无触发条件 [2] 具体范围(提及具体工具、操作或场景) 好:"Figma 设计文件、.fig、组件文档、设计交接" 差:"帮助处理项目" [2] 合理长度(50-200 字符,不超过 1024) 太短:无搜索价值 太长:被截断
评分:__/8
按任务/场景组织(而非按抽象概念):
text[2] 按任务/操作组织章节 好:"## 编码和解码" → "## 检查字符" → "## 转换格式" 差:"## 理论" → "## 类型" → "## 高级" [2] 常见操作优先 好:基础用法 → 变体 → 高级 → 边界情况 差:配置说明 → 理论背景 → 最后才是基础用法 [1] 章节自包含(可独立使用) [1] 深度一致(不混用 h2 与 h4 随机跳转)
评分:__/6
必须包含:
text[ ] 清晰的工作流程或步骤说明 [ ] 至少一个使用示例 [ ] 错误处理或故障排查指南
推荐包含(不扣分):
text[ ] 预期输出说明 [ ] 多个场景示例 [ ] 参考文档链接 [ ] "使用场景" 或 "When to Use" 部分
评分:__/6
示例密度计算:
text总行数:___ 代码块数量:___ 密度:每 ___ 行 1 个代码块 参考目标:每 5-30 行 1 个代码块 < 5 行/块:可能过于碎片化(短命令集或多命令速查除外) > 40 行/块:需要更多示例
示例密度评分:
text[3] 密度在 5-30 行/块范围内 [2] 密度略低(30-40 行/块)或略高(3-5 行/块) [0] 密度严重不足(>40 行/块)或过高(<3 行/块)
每个示例质量评分(0-3 分):
text[ ] 语言标签正确(```bash, ```python 等) [ ] 语法正确,命令可执行 [ ] 展示了预期输出或结果说明 [ ] 使用真实值(非 foo/bar/baz) [ ] 无占位符(TODO, FIXME, xxx) [ ] 自包含或有设置说明 0 分:broken 或有误导性 1 分:可用但简陋(无输出/上下文) 2 分:良好(正确,有输出或说明) 3 分:优秀(可直接复制,真实,覆盖边界)
示例质量得分 = 所有示例平均分 × 密度分 / 3 = __/9
核心问题:Agent 能否按照这些指令产生正确结果?
text[3] 使用祈使句("运行 X"、"创建 Y") 非:"可以考虑..."或"建议..."或"You might..." [3] 步骤顺序合理(前置条件在行动之前) [2] 错误处理(说明失败时怎么做) [2] 输出/结果描述(如何验证成功)
评分:__/10
text[ ] SKILL.md 控制在 500 行以内 500-600 行:给出提醒,不扣分 超过 600 行:扣分 [ ] 详细文档是否在 `references/` 中 [ ] 大文件(>300 行)有目录或结构说明
评分:__/3
技巧部分质量评估:
text[2] 5-10 条技巧 少于 5 条:覆盖不足 多于 10 条:可能不够精炼 [2] 技巧非显而易见 好:"Makefile 头号陷阱:缩进必须用 Tab,不能用空格" 差:"确保测试你的代码" [2] 技巧具体可执行 好:"使用 flock 防止 cron 任务重叠执行" 差:"小心并发执行" [1] 技巧不矛盾主体内容 [1] 技巧覆盖特定主题的陷阱/踩坑点
评分:__/8
> 仅当 skill 包含 metadata 字段时检查,仅供参考,不计分
text[ ] emoji 与技能主题相关 [ ] requires.anyBins 列出技能实际使用的工具(非 generic 如 bash) [ ] os 数组准确(不包含不支持的平台) [ ] JSON 格式有效
textSKILL 审核评分卡 ═══════════════════════════════════════ 技能名称:{name} 审核者:{agent/human} 日期:{date} 审核模式:{严格/常规} 类别 得分 满分 ───────────────────────────────────── 结构检查 __ 4 Description 质量 __ 8 组织评分 __ 6 主体指令 __ 6 示例质量 __ 9 可执行性 __ 10 渐进式披露 __ 3 Tips 评分 __ 8 ───────────────────────────────────── 总分 __ 54 转换为百分制:总分 × 1.85 = ___/100 评级: 85+ 优秀 — 可直接发布 70-84 良好 — 需要小改进 50-69 一般 — 需要明显改进 < 50 较差 — 需要重大修改 结论:{PUBLISH / REVISE / REWORK}
text缺陷:YAML 前置信息无效 检测:YAML 解析错误、缺少必填字段 修复:验证 YAML 格式,确保 name/description 都存在 缺陷:代码示例损坏 检测:语法错误、未定义变量、错误参数 修复:在干净环境中测试每个命令 缺陷:工具要求不匹配(如存在 metadata) 检测:requires 列出内容未在内容中使用 修复:grep 内容提取命令名,更新 requires 匹配 缺陷:误导性描述 检测:描述承诺的内容实际未覆盖 修复:使描述与实际内容一致,或补充缺失内容
text缺陷:缺少"使用场景"部分 影响:Agent 不知道何时激活技能 修复:添加 4-8 条触发场景说明 缺陷:大段文字无示例 检测:任何超过 10 行无代码块的章节 修复:为每个概念添加具体示例 缺陷:示例缺少语言标签 检测:\`\`\` 后无语言标识符 修复:为每个代码块添加 bash/python/javascript/yaml 等 缺陷:缺少 Tips/技巧部分 影响:缺少使技能有价值的经验总结 修复:添加 5-10 条非显而易见的实用技巧 缺陷:按抽象概念组织 检测:章节名为"理论"、"概述"、"背景"、"介绍" 修复:按任务/操作重组:用户要做什么
text缺陷:占位符值 检测:foo, bar, baz, example.com, TODO, FIXME 修复:替换为真实值 缺陷:格式不一致 检测:混合标题级别、代码块样式不一致 修复:统一标题层次和格式 缺陷:缺少交叉引用 检测:提到其他技能覆盖的工具/概念但未引用 修复:添加"参见 X 技能了解更多"注释 缺陷:过时的命令 检测:旧语法或已弃用工具 修复:更新为当前工具版本和语法
当不需要完整评分时的快速审核:
markdown## 快速审核:{skill-name} **结构**:[通过/问题:...] **Description**:[强/弱:原因] **示例**:[X 个代码块,共 Y 行 — 密度 正常/低/高] **可执行性**:[Agent 可以/不可以 遵循这些指令,因为...] **首要缺陷**:[最应该修复的单一问题] **评分**:__/100 **结论**:[PUBLISH / REVISE / REWORK]
bash# 1. 验证 YAML 前置信息 head -20 skills/my-skill/SKILL.md # 目视确认 YAML 有效 # 2. 统计代码块数量 grep -c '```' skills/my-skill/SKILL.md # 总行数除以这个数得密度 # 3. 检查占位符 grep -n -i 'todo\|fixme\|xxx\|foo\|bar\|baz' skills/my-skill/SKILL.md # 4. 检查缺失语言标签 grep -n '^```$' skills/my-skill/SKILL.md # 每个代码块都应该有语言标签 # 5. 验证工具要求匹配内容(如存在 metadata) # 提取 requires,然后 grep 内容检查每个工具 # 6. 测试命令(抽样 3-5 个) # 在干净 shell 中运行验证 # 7. 运行评分卡 # 目标:良好 35+,优秀 45+
示例:完整审核报告输出
markdown## 审核报告:china-holidays **结构**:✅ 通过 - kebab-case 命名,SKILL.md 存在 **Description**:✅ 强 - 包含触发条件和具体场景 **示例**:18 个代码块,524 行 — 密度 正常 (29 行/块) **可执行性**:✅ 可以遵循 - 9 步清晰工作流程 **评分总结**: ───────────────────────────────────── 结构检查 4 4 Description 质量 8 8 组织评分 6 6 主体指令 6 6 示例质量 7 9 可执行性 10 10 渐进式披露 3 3 Tips 评分 8 8 ───────────────────────────────────── 总分 52 54 百分制:96/100 **结论**:PUBLISH - 可直接发布
bash# 安装技能(如适用) npx molthub@latest install skill-name # 阅读内容 cat skills/skill-name/SKILL.md # 运行快速审核模板 # 如分数 < 25,考虑卸载并寻找替代
按使用场景分层:
| 文件 | 用途 | 何时读取 | |------|------|----------| | references/checklist.md | 快速检查清单 | 常规审核流程 | | references/official-guide-summary.md | 精简指南 | 快速查阅常用规范 | | references/anthropic-skills-development-guide.md | 完整版官方指南 | 严格模式下必须读取;常规模式下遇到疑问时查阅 |
严格模式触发条件(满足任一即触发):
审核时先判断模式:严格模式必须先读取完整版指南再进行审核;常规模式按需查阅。
用户说: "帮我审核一下这个 skill,路径在 ./skills/china-holidays"
操作:
./skills/china-holidays/SKILL.md结果: 输出完整审核报告,包含问题列表、修改建议和最终评分
用户说: "这个 skill 准备发布到团队内部使用,需要严格检查,不能有任何问题"
操作:
anthropic-skills-development-guide.md用户说: "这个 skill 的 description 写得怎么样?" + 附上内容
操作:
结果: 指出问题并提供修改建议
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-02 | fail→fail | 28,708 | 6,850 | -76% | 1 | 1 | 0% | 4,228 | 4,922 | +16% | 0 | 0 | — |
case-01 | fail→fail | 19,515 | 13,202 | -32% | 1 | 1 | 0% | 3,219 | 6,613 | +105% | 0 | 0 | — |
case-03 | fail→fail | 18,782 | 22,915 | +22% | 1 | 1 | 0% | 2,834 | 8,034 | +183% | 0 | 0 | — |
case-04 | pass→pass | 7,055 | 6,195 | -12% | 1 | 1 | 0% | 1,522 | 5,728 | +276% | 0 | 0 | — |
case-05 | fail→fail | 12,658 | 30,914 | +144% | 1 | 1 | 0% | 1,902 | 4,762 | +150% | 0 | 0 | — |
case-06 | fail→pass | 13,605 | 10,600 | -22% | 1 | 1 | 0% | 1,995 | 6,367 | +219% | 0 | 0 | — |
case-07 | pass→pass | 12,262 | 4,680 | -62% | 1 | 1 | 0% | 1,911 | 5,361 | +181% | 0 | 0 | — |
case-08 | fail→pass | 12,754 | 5,978 | -53% | 1 | 1 | 0% | 2,191 | 5,502 | +151% | 0 | 0 | — |
case-09 | pass→pass | 11,943 | 7,016 | -41% | 1 | 1 | 0% | 1,686 | 5,684 | +237% | 0 | 0 | — |
case-10 | fail→pass | 9,241 | 11,164 | +21% | 1 | 1 | 0% | 1,670 | 6,389 | +283% | 0 | 0 | — |
case-11 | pass→pass | 13,414 | 8,581 | -36% | 1 | 1 | 0% | 2,070 | 5,851 | +183% | 0 | 0 | — |
case-12 | fail→pass | 16,852 | 12,488 | -26% | 1 | 1 | 0% | 2,408 | 6,587 | +174% | 0 | 0 | — |
case-13 | fail→pass | 12,138 | 11,917 | -2% | 1 | 1 | 0% | 1,931 | 6,220 | +222% | 0 | 0 | — |
case-14 | fail→fail | 8,663 | 6,534 | -25% | 1 | 1 | 0% | 1,439 | 5,580 | +288% | 0 | 0 | — |
case-15 | pass→pass | 10,222 | 4,431 | -57% | 1 | 1 | 0% | 1,555 | 5,201 | +234% | 0 | 0 | — |
case-16 | fail→pass | 10,811 | 4,365 | -60% | 1 | 1 | 0% | 1,743 | 5,220 | +199% | 0 | 0 | — |
case-17 | pass→pass | 15,365 | 5,311 | -65% | 1 | 1 | 0% | 2,350 | 5,448 | +132% | 0 | 0 | — |
case-18 | fail→pass | 11,009 | 5,078 | -54% | 1 | 1 | 0% | 1,551 | 5,295 | +241% | 0 | 0 | — |
case-19 | fail→pass | 10,266 | 4,575 | -55% | 1 | 1 | 0% | 1,618 | 5,385 | +233% | 0 | 0 | — |
case-20 | pass→fail | 19,270 | 23,122 | +20% | 1 | 1 | 0% | 3,102 | 8,099 | +161% | 0 | 0 | — |
case-21 | pass→pass | 10,698 | 11,434 | +7% | 1 | 1 | 0% | 1,859 | 6,028 | +224% | 0 | 0 | — |
case-22 | pass→pass | 16,881 | 9,732 | -42% | 1 | 1 | 0% | 2,231 | 5,791 | +160% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 20 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +32 percentage points is the difference between those two pass rates over the 20 comparable cases. 3 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.