| name | skill-scaffold |
| description | 新技能脚手架与模板生成工具。帮助你在 .claude/skills 下新增技能(SKILL.md + references/)并可选补齐 commands、config.yaml 与文档索引,确保符合统一规范(输出契约/失败策略/合规安全/配置对齐/最小失败输出)。 |
| license | Apache-2.0 |
| metadata | [object Object] |
新技能脚手架 (Skill Scaffold)
触发场景
当用户提到以下关键词时使用本技能:
- 新增技能、创建技能、生成技能
- 做一个新 skill / 新 skill
- skill scaffold、技能模板、生成 SKILL.md
默认行为(本技能的约定):当用户说“创建/新增/生成技能”时,视为用户已同意:
- 在
.claude/内创建新技能文件(落盘)- 默认补齐配套:
commands/命令文件、索引(.claude/README.md、.claude/commands/README.md)、以及config.yaml/CONFIG_GUIDE.md仅当目标路径已存在(需要覆盖)时,才会要求二次确认。
核心功能
🧱 生成技能骨架
- 生成标准目录结构:
.claude/skills/{skill-name}/SKILL.md+references/ - 生成符合本库规范的
SKILL.md(含输出契约/失败策略/合规安全/最小失败输出/配置对齐) - 生成可选参考模板:技能模板与命令模板
🧭 对齐索引与配置(可选)
- 生成/更新
.claude/commands/{skill-name}.md - 更新
.claude/commands/README.md(命令索引) - 更新
.claude/README.md(技能列表) - 更新
.claude/config.yaml(新增skills.{skill-name}配置段) - 更新
.claude/CONFIG_GUIDE.md(新增配置说明段)
默认不覆盖已有技能;如目标路径已存在,必须先询问用户是否覆盖。
使用方式
你可以直接说:
- “创建新技能 / 新增技能 / 生成技能”
- “我要加一个新 skill:功能是 XXX,要求是 YYY”
- “创建一个新技能,做深度研究报告,要求:XXXXXX”
如果你只说“创建新技能”但没给出必要信息,本技能会自动补齐默认值并标注“默认”,你可随时改。
自动生成技能名称(必须)
当用户未显式提供 skill-name 时,本技能必须根据用户描述自动生成符合要求的名称:
- 生成
skill-name:英文、kebab-case(例如deep-research-reporter)。 - 生成中文名:用一句话概括(例如“深度研究报告生成器”)。
命名规则(默认策略):
- 从用户描述提取关键词:优先抓“领域/对象/产物/动作”。
- 采用稳定的语义英文词(不使用拼音作为默认):例如 research/report/analyzer/generator/planner/reviewer/extractor。
- 结构优先:优先用
domain-artifact或artifact-generator这类可读组合。 - 约束:全小写、用
-连接、长度尽量 ≤ 32、避免过泛(如tool,helper)。 - 去重:若
.claude/skills/{skill-name}已存在,则自动选择下一个备选名;必要时追加短后缀(例如-v2、-plus),并在输出中说明原因。
只有在以下情况才允许追问:
- 用户需求过于笼统(无法生成稳定语义名,例如只说“做一个新技能”且没有任何功能描述)。
- 名称冲突无法自动化解(极少见)。
输出契约(必须包含)
输出必须包含以下段落/字段(缺失即视为不合格输出):
- 技能基本信息:英文名(kebab-case)+ 中文名 + 分类(development/productivity/creative)。若用户未提供英文名/中文名,必须输出“自动生成的名称 + 生成理由 + 2 个备选名”。
- 澄清问题或默认假设:默认不追问(除非阻塞);其余信息不足时给出默认值并标注“默认”。
- 将创建/更新的文件清单:以“路径 + 动作(create/update/skip) + 理由”列出。
- 核心模板内容:至少给出
SKILL.md的完整内容(若用户同意落盘,则用于写入)。 - 验收清单:至少包含:
- 目录名与
name:一致 license/metadata存在- 末尾包含:输出契约 / 失败策略 / 合规安全 / 最小失败输出 / 配置项对齐
- commands/README 与 .claude/README 是否需要同步
- 目录名与
边界条件与失败策略
- 技能名缺失:必须自动生成
skill-name与中文名,并给出生成理由与备选名。 - 技能名不合法:若用户给的不是 kebab-case(如包含空格/大写/中文),自动规范化为合法
skill-name,并在输出中说明“已规范化”。 - 信息不足:默认不追问,先给出默认值并标注;仅当缺少功能描述导致无法命名/无法定义输出契约时才追问。
- 用户明确要求不落盘:降级为在对话中输出“可直接复制粘贴”的文件内容与建议路径,不执行写入。
- 目标已存在:默认不覆盖;如用户要求覆盖,必须二次确认并建议先备份。
合规与安全(统一规则)
- 本技能的触发即代表同意在
.claude/内落盘(创建新文件),并默认同步 commands/索引/config(除非用户明确要求只输出不落盘)。 - 不执行破坏性操作(删除/覆盖大范围文件);覆盖已有文件必须二次确认。
- 不引入仓库根依赖:新增技能的入口与规范说明应留在
.claude/体系内。 - 统一规范详见:
../../STANDARDS.md
最小失败输出(必须)
当无法生成可用骨架时,仍必须输出:
- 失败原因:缺关键输入/约束冲突/路径冲突无法覆盖。
- 已可交付内容:建议的技能名 + 最小
SKILL.md空壳模板。 - 需要用户补充的信息:最少清单。
- 下一步:给出 1-3 条可执行建议。
配置项对齐(config.yaml)
skills.skill-scaffold.default_category(默认development):新增技能默认分类。skills.skill-scaffold.default_license(默认Apache-2.0):新增技能默认许可证。skills.skill-scaffold.default_skill_version(默认2.0):新增技能默认版本号(写入metadata.version)。skills.skill-scaffold.create_command(默认true):是否默认同时生成.claude/commands/{skill}.md。skills.skill-scaffold.add_to_indexes(默认true):是否默认同步更新索引文档(.claude/README.md与.claude/commands/README.md)。
参考模板
.claude/skills/skill-scaffold/references/SKILL_TEMPLATE.md.claude/skills/skill-scaffold/references/COMMAND_TEMPLATE.md
版本: 2.0
分类: 开发工具