skill-builder · git:20260604.7d1dc62 · 2026-06-04 · sha256 173fc758a46b99ef
skill-builder git:20260604.7d1dc62A
Immutable. This exact content never changes and is served at /api/v1/blob/173fc758a46b99ef.
--- name: skill-builder description: > 当用户想创建一个新的 Skill 但需求模糊、不完整或过于宽泛时使用。 典型触发:"帮我写一个写公众号的skill""做一个数据分析的skill""我想写个代码审查的skill" "build a skill for code review""create a skill"。也适用于用户说"写一个skill" "创建一个skill""设计一个skill""做一个skill"等场景。不要用于:用户问 Skill 概念性问题("什么是Skill""Skill怎么写")、用户已有详细任务卡或规格、用户要修改 已有 Skill。 --- # Skill Builder ## 目标 把模糊的 Skill 想法,通过结构化访谈收敛为可执行任务卡,再生成高质量 SKILL.md。 ## 开始前准备 1. **意图确认**:用户要创建新 Skill(非讨论概念、非修改已有 Skill) 2. **模糊度判断**: - 用户能说清「触发条件 + 交付物 + 质量标准」→ 跳过澄清,直接 Phase 2 - 用户只说"我想要一个 XXX 的 skill"→ 完整走 Phase 1-5 3. **位置确认**:在 Phase 1 中询问 Skill 放在项目 skills/ 还是全局 skills/ ## 工作流程 ### Phase 1: 需求澄清 **原则**:每次只问一组(≤ 3 个),等用户回答再继续。用户说"不知道"时给具体建议。 #### Group A: 核心任务(必须先问) 1. 这个 Skill 替你重复做哪一件具体的事? - 说清语言、粒度、输出格式。无法一句话说清交付物 → 还不该写成 Skill 2. 用户怎么触发它? - 中英文话术、最短触发词,如 "review this PR" "帮我审查代码" 3. 最终交付什么? - 一个文件?一份报告?一个 JSON?一组文件? **产出**:一句话任务定义 + 触发词列表 + 交付物格式 #### Group B: 边界(等 Group A 答完再问) 4. 什么情况下绝对不该触发? - 如 "只改了一个标点符号的 PR" "问代码库用什么框架而非审查意图" 5. 需要什么输入才能开始? - 必须有文件路径?必须有上下文?没拿到时必须停下来问 6. 需要调用什么外部工具/API/脚本? - 列出具体的,不写"需要工具支持" **产出**:排除场景清单 + 必需输入清单 + 依赖清单 #### Group C: 质量标准(等 Group B 答完再问) 7. 什么算"做得好"?什么算"搞砸了"? - 可验证标准,如 "PR 审查列 ≥3 个具体问题" "代码能通过 lint" 8. 最常见的失败模式是什么? - 每次都要纠正的漏掉/错误 → Skill 里重点防御 9. 什么情况下必须停下来问你? - 如 "PR 超过 500 行" "依赖不明确" "用户要求跳过测试" **产出**:≥3 条可验证质量标准 + 失败模式列表 + 停止条件 **防跳过**:即使用户说得很清楚,至少确认 Group A 的 3 个问题。用户说"随便"时给具体建议并要求确认。 ### Phase 2: 任务卡生成 将 Phase 1 信息整理为结构化任务卡,**用户确认后才能进入 Phase 3**。 **任务卡模板**: | 维度 | 内容 | |------|------| | **任务** | [一句话说清做什么、交付什么] | | **触发** | [用户话术(中英文),含关键词] | | **不触发** | [明确排除的场景] | | **输入** | [必须从用户获取的信息] | | **输出** | [最终交付物及其格式] | | **质量门槛** | [≥3 条可验证标准] | | **失败信号** | [最常见失败模式和防御策略] | | **停止条件** | [什么情况必须停下来问人] | | **依赖** | [工具、API、脚本、外部资源] | | **放置位置** | [项目/全局 skills/] | **防跳过**:必须等用户说"确认""OK""没问题"后才能继续。 ### Phase 3: SKILL.md 生成 按以下规范生成完整的 SKILL.md。 #### 3.1 YAML Frontmatter ```yaml --- name: skill-name # 1-64字符,仅小写字母/数字/连字符 description: > [只写触发条件,不写工作流程! 包含:什么场景触发 + 用户会说什么 + 什么场景不触发。 前50字符必须独立可读(Skill 列表可能被截断)。 用祈使语气。] --- ``` **Description 检查清单**: - [ ] 只描述触发条件,没有总结工作流程 - [ ] 包含用户会说的具体话术关键词(中英文) - [ ] 明确排除了不该触发的场景 - [ ] 前 50 字符独立可读 - [ ] 无"助力""赋能"等空洞词 - [ ] 读完能回答:何时用、何时不用、交付什么 #### 3.2 Body 结构 ``` # [Skill 名称] ## 目标 [一句话说明最终成果] ## 开始前准备 - [检查所需输入是否齐全,仅在缺失导致无法开展时提问] - [确认环境/依赖可用] ## 工作流程 ### Step 1: [步骤名] [可执行动作,每步有明确产出物。最后一步必须是交付确认。] ## 质量标准 - [具体、可验证,每条能用"是/否"判断] - [✅ "输出包含引用来源" ❌ "输出质量要高"] ## 最终反馈 [任务结果、生成文件路径、核验状态、已知局限、下一步建议] ``` #### 3.3 脚本 vs Markdown 分工 | 放 scripts/ | 放 references/ | 留在 body | |---|---|---| | 统计、校验、格式转换 | API 文档、数据库 schema | 判断逻辑、工作流程 | | 重复计算的确定性操作 | 长模板、规范文档 | 质量门槛、退出标准 | | 跨平台工具代码 | 领域知识、术语表 | 触发条件、依赖说明 | #### 3.4 正文编写原则 1. **默认 Agent 已经聪明**:不解释基础概念,只写这项任务必须遵守的 2. **可执行 > 百科式**:每步有产出物,不写"分析一下""检查一下" 3. **克制行数**:正文 ≤ 200 行,内容多就拆到 references 4. **跨平台兼容**:用能力描述而非工具名(如"检索匹配的内容模式"而非"grep -r") ### Phase 4: 质量审查 生成 SKILL.md 后逐项检查,**任一项不通过则回修**。 | # | 检查项 | 标准 | |---|--------|------| | 🔴 1 | Description 纯触发 | 只写触发条件,不总结工作流程 | | 🔴 2 | 四块结构完整 | 目标、开始前准备、工作流程、质量标准、最终反馈 | | 🔴 3 | 步骤可执行 | 每步有明确产出物 | | 🔴 4 | 质量标准可验证 | 每条可用"是/否"判断 | | 🔴 5 | 退出标准明确 | 知道最后交付什么、什么时候停 | | 🔴 6 | 行数克制 | Body ≤ 200 行,长资料拆到 references | ### Phase 5: 测试场景建议 为生成的 Skill 建议 3 类测试场景,附在 SKILL.md 后: - **标准场景**:用户说得很清楚,素材齐全。验证主流程能跑通 - **缺口场景**:用户只给半截信息。验证缺关键信息时会不会乱猜 - **诱惑场景**:用户催得急 / 要求跳过验证 / 让直接给结论。验证质量门槛能不能顶住 ## 质量标准 - [ ] 每个 Phase 产生明确产出物,无"分析一下""检查一下" - [ ] 任务卡经用户明确确认后才进入 Phase 3 - [ ] 生成的 SKILL.md 通过 Phase 4 全部 6 项检查 - [ ] Description 只写触发条件,不总结工作流程 - [ ] 3 类测试场景完整,不省略 - [ ] 交付摘要含:名称、位置、行数、通过检查数、已知局限 ## 防偷懒规则 | 借口 | 事实 | |------|------| | "用户说清楚了,直接写" | 至少确认 Group A 3 个问题。看起来清楚 ≠ 真对齐 | | "任务卡我直接填" | 任务卡必须用户确认,自填 = 自猜 | | "description 顺便总结工作流程" | 禁止。会导致跳过阅读正文,经过验证的反模式 | | "这个 Skill 很简单,省掉质量标准" | 最简单的事也有搞砸方式,至少 3 条质量标准 | | "用户让我快点,跳过审查" | 至少完成 Phase 4 的 4 项 Critical(🔴 1-4) | | "测试场景用户自己会想" | 3 类测试场景是标准交付物,不省略 | ## 退出标准 1. ✅ 用户确认的任务卡 2. ✅ 完整的 SKILL.md(通过 Phase 4 全部 6 项检查) 3. ✅ 3 类测试场景建议 4. ✅ 输出摘要:名称、位置、行数、通过检查数、已知局限 5. ⚠️ 标注仍存在的风险和下一步建议(如有) --- ## 参考资料 - 设计模式选择指南:见 `references/design-patterns.md`