/optimize-skill — Skill 质量检测与优化
调用方式
/optimize-skill # 扫描所有 skill,让用户选择
/optimize-skill <skill名> # 直接检测指定 skill
执行流程
三步:选择目标 → 检查出报告 → 用户确认后修改。
Step 1:选择目标
- 扫描
~/.claude/skills/*/SKILL.md和.claude/skills/*/SKILL.md - 列出找到的 skill(名称 + 一句话描述)
- 让用户选择(已指定则跳过)
Step 2:检查并出报告
读取目标 skill 目录全部内容(SKILL.md + references/ + scripts/),逐项对照检查清单。
检查清单(8 项)
必须有(决定能不能用):
| # | 检查项 | 判定标准 |
|---|---|---|
| 1 | 触发条件 | frontmatter 的 description 中写明了"什么时候触发/Use when",不只是写功能介绍 |
| 2 | 执行步骤 | 有清晰的步骤说明(做什么→用什么工具→输出什么),Claude能照着执行 |
| 3 | 输出可预期 | 用户能预知 skill 会输出什么格式/内容,不是每次都不一样 |
建议有(显著提升质量):
| # | 检查项 | 判定标准 |
|---|---|---|
| 4 | 边界约束 | 说了"不做什么"或使用限制,防止 skill 越界 |
| 5 | 示例 | 至少有1个"输入→输出"的完整例子 |
| 6 | 缺失处理 | 参数不全或环境不满足时有应对(问用户/给默认值/提示缺什么) |
加分项(锦上添花):
| # | 检查项 | 判定标准 |
|---|---|---|
| 7 | 精简不冗余 | SKILL.md ≤ 500行,无重复信息,无给人看的说明文档 |
| 8 | 文件分层 | 大段参考信息放在 references/ 而非全塞 SKILL.md |
判定标准
每项判定为三种状态:
- ✅ 有 — 符合标准
- ⚠️ 部分有 — 有但不完善
- ❌ 没有 — 缺失
总判定
| 条件 | 结论 |
|---|---|
| 1-3 全 ✅ | 🟢 合格 — 这个 skill 可以正常使用 |
| 1-3 中有 ⚠️ 无 ❌ | 🟡 基本可用,建议优化 |
| 1-3 中有 ❌ | 🔴 不可用 — 必须修复后才能正常工作 |
输出格式
## 🔍 Skill 检查报告:<skill名>
### 结论:🟢 合格 / 🟡 基本可用 / 🔴 不可用
### 检查明细
| # | 检查项 | 状态 | 说明 |
|---|--------|------|------|
| 1 | 触发条件 | ✅/⚠️/❌ | 具体说明 |
| 2 | 执行步骤 | ✅/⚠️/❌ | 具体说明 |
| ... | ... | ... | ... |
### 🔧 需要修改的地方
1. **[具体问题]** — [具体怎么改]
2. ...
---
💡 想让 skill 更专业?输入"进阶优化"可以获得更深度的评审,
包括:自由度设计、渐进式披露、可组合性等高级优化建议。
Step 3:修改(用户确认后)
- 用户确认要改哪些(全部 / 某几条 / 不改)
- 逐项修改文件,每项展示修改前后对比
- 修改完成后重新检查,输出结果:
✅ 修改完成
修改前:🔴 不可用(1,2 缺失)
修改后:🟢 合格
已修改:
- ✅ 补充了触发条件到 description
- ✅ 添加了执行步骤
- ⏭️ 示例:用户跳过
进阶优化模式
当用户说"进阶优化"或"深度评审"时,在基础检查之上额外评估:
- 自由度设计 — 关键步骤是否用了低自由度(命令/伪代码)防出错
- 渐进式披露 — SKILL.md 是否做了"入口轻量 + 按需加载详情"
- 可组合性 — 输出能否被其他 skill 或流程直接消费
- Bootstrap State — 是否声明了"开箱即用"vs"需配置"
- 安全意识 — 涉及敏感操作时是否有权限/确认机制
进阶模式输出在基础报告后追加一段"进阶建议",每条给出具体改法。
约束
- 只读取和修改 skill 目录下的文件
- 修改前必须等用户确认
- 全部 ✅ 时告知"已经很好"并只给微调建议
- 不编造功能,只在原有意图上补全
- 修改后 SKILL.md 不超过 500 行
- 不创建 README / CHANGELOG 等辅助文件
- 建议具体:说"在 description 末尾加上 Use when: 用户说XX时",不说"建议完善触发条件"