关于 create-skill
create-skill 是用于在代码库中创建新 Agent Skill 的流程型 Skill,面向维护技能目录的开发者。它从重名检查到编写、symlink 创建和质量检查组织整个流程,并在缺少指定 subagent 时提供主 Agent 直接执行的回退方案。
主要功能
- 01生成 SKILL.md 雏形
- 02检查已有技能是否重名
- 03创建技能目录 symlink
- 04执行技能内容与 frontmatter 检查
- 05缺少 subagent 时由主 Agent 回退处理
适用场景
- 01为新技能名称检查目录冲突
- 02在 skills/ 下搭建技能文件
- 03将新技能链接到 .claude/skills/
- 04检查 frontmatter、规范与 symlink
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ fandhe-ai/ agent-cli-skills --skill create-skill安装后在 Claude Code 中输入/create-skill确认已加载。
附带文件sample/SKILL.sample.md
详细介绍
create-skill
将新技能 scaffold 为 skills/<name>/SKILL.md,并自动完成 symlink 和质量检查。
用法
/create-skill summarize-pr # スキルを新規作成
/create-skill # 引数省略時はスキル名をインタラクティブに確認
| 参数 | 必填 | 说明 |
|---|---|---|
skill-name | 可选 | 要创建的技能名称(kebab-case)。省略时会在 Step 1 前交互确认 |
main(本技能自身)专注于规划、委派、整合和报告,并将编写或审核 SKILL.md 的工作委派给专业 Agent(遵循 .claude/rules/delegation.md)。
技能模板请参阅本技能附带的 sample/SKILL.sample.md。
subagent 回退(面向 skills add 的安装目标)
本技能委派的 subagent(skill-explorer、skill-author、skill-reviewer、frontmatter-linter)依赖 Fandhe-AI/agent-cli-skills 仓库中的 .claude/agents/ 定义。如果安装目标仓库中不存在相应的 subagent,则不进行委派,而由 main 直接执行各 Step 的委派提示词中列出的检查要点、输入项和必需项。可通过手动检查 Step 4 中的验证要点来替代 frontmatter-linter。安装目标中的技能实体位于 .agents/skills/,因此应根据安装目标中的布局调整搜索目标和输出路径。
流程
Step 1:检查是否与现有技能重复(委派给 skill-explorer)
委派给 skill-explorer(subagent_type: skill-explorer),让其检查以下内容(如果该 subagent 不存在,则遵循“subagent 回退”,由 main 直接检查。后续 Step 同样如此)。
subagent_type: skill-explorer
prompt: |
目的: 指定された名前のスキルが既に存在しないか確認する
入力:
- 作成予定のスキル名: <skill-name>
- 検索対象: skills/ 配下の全ディレクトリ、.claude/skills/ 配下の symlink
確認観点:
1. skills/<skill-name>/ が既に存在するか
2. 類似名(例: kebab-case 変形や別表記)のスキルが存在するか
3. 既存スキルで同等の機能が提供されていないか
適用ルール: .claude/rules/delegation.md
出力: 重複なし / 重複あり(ファイルパスと既存スキルの概要)
如果发现重复,则通知用户,并确认是新建还是更新现有技能,然后再继续。
Step 2:设计 frontmatter 和正文,并创建 SKILL.md(委派给 skill-author)
委派给 **skill-author(subagent_type: skill-author)**创建 SKILL.md。
委派提示词中应包含以下内容:
subagent_type: skill-author
prompt: |
目的: <skill-name> の SKILL.md を新規作成する
入力:
- スキル名: <skill-name>
- ユーザーから受け取った役割説明・要件(あれば)
- 雛形: 本スキル同梱の sample/SKILL.sample.md
- 既存スキルの参考例: skills/contribute-skill/SKILL.md, skills/update-docs/SKILL.md
出力先: skills/<skill-name>/SKILL.md
適用ルール:
- .claude/rules/skill-authoring.md(frontmatter・本文構成・model 選定・セキュリティ self-check)
- .claude/rules/description-style.md(description の発火トリガー語・YAML 落とし穴)
- .claude/rules/delegation-impl.md(委譲設計が必要な場合)
必須項目:
- frontmatter: name(ディレクトリ名と一致), description(発火トリガー語を含む), model, user-invocable
- 本文: ## 使い方 → ## フロー(Step N)→ ## 検証 → ## 注意事項
- description に # を含む場合はクォートで囲む
- 作業を委譲する設計の場合は subagent_type を明記する
- 同梱スクリプトを配置する場合はディレクトリ名を scripts/(複数形)とする
Step 3:创建 symlink
skill-author 完成后,创建符号链接。
ln -s ../../skills/<skill-name> .claude/skills/<skill-name>
创建 symlink 后,使用以下命令确认。
ls -la .claude/skills/<skill-name>
Step 4:质量检查(委派给 skill-reviewer 和 frontmatter-linter)
并行委派给 **skill-reviewer(subagent_type: skill-reviewer)**和 **frontmatter-linter(subagent_type: frontmatter-linter)**进行验证。
subagent_type: skill-reviewer
prompt: |
目的: 新規作成した SKILL.md の品質をレビューする
入力:
- 対象ファイル: skills/<skill-name>/SKILL.md
観点:
- `skill-authoring.md` 規約への準拠(frontmatter 項目、本文構成)
- セキュリティ self-check(APIキーのハードコード、フック回避コマンドの不在)
- トリガー語・引数ヒントの適切さ
- 同梱スクリプトのディレクトリ名が `scripts/`(複数形)になっているか
適用ルール: .claude/rules/skill-authoring.md, .claude/rules/security.md
subagent_type: frontmatter-linter
prompt: |
目的: 新規作成した SKILL.md の frontmatter・symlink を機械検証する
入力:
- 対象ファイル: skills/<skill-name>/SKILL.md
- symlink: .claude/skills/<skill-name>
観点:
- `name` がディレクトリ名と一致しているか
- `model` が規定値(haiku/sonnet/opus)のいずれかか
- `user-invocable` の有無と symlink の整合性
- `description` 内の `#` がクォートで囲まれているか
適用ルール: .claude/rules/skill-authoring.md
如果审核结果有问题,则退回给 skill-author 修改。
Step 5:提示使用 update-docs 更新 CLAUDE.md
技能添加完成后,提供以下提示(如果用户提出要求,也可以直接调用 update-docs 技能)。
✅ skills/<skill-name>/SKILL.md を作成しました。
✅ .claude/skills/<skill-name> → ../../skills/<skill-name> の symlink を作成しました。
CLAUDE.md のスキル一覧・構造ツリーを更新するには:
/update-docs
を実行してください。
Step 6:提交(可选)
如果用户要求提交,则使用 create-commit 技能创建提交。如果用户没有提出要求,则只报告结果,并保持更改处于暂存状态。
验证
- 确认文件存在:
ls skills/<skill-name>/SKILL.md - 确认 symlink 指向正确的链接目标:
ls -la .claude/skills/<skill-name> - 确认 frontmatter 编写正确:
head -10 skills/<skill-name>/SKILL.md - 确认 skill-reviewer 和 frontmatter-linter 的验证结果均为 PASS
- 如果附带脚本,确认其位于
scripts/(复数)目录中
注意事项
- symlink 的相对路径:从
.claude/skills/<name>起算的相对路径应为../../skills/<name>(不可使用绝对路径) - 目录名与 name 保持一致:frontmatter 中的
name:必须与目录名完全一致 - 包含
#的 description:用引号括起来,以免被视为 YAML 注释(参阅.claude/rules/description-style.md) - 附带脚本时的命名:技能附带脚本时,目录名统一使用
scripts/(复数)(不要使用script/) - 运行 update-docs:添加技能后,务必通过
/update-docs将CLAUDE.md更新到最新状态 - 委派链:
skill-author可能会进一步委派给其他 Agent。需要审批流程的技能应事先确认要求
相关
Agents:skill-explorer、skill-author、skill-reviewer、frontmatter-linter
Rules:delegation、skill-authoring、description-style
Skills:create-agent、update-docs、create-commit