name: global-skill-creator description: 创建通过dotfiles仓库分发的全局Claude Code技能。在创建新技能、添加全局技能或使技能在所有项目中可用时使用。关键词:技能、全局技能、创建技能、新技能、SKILL.md
全局技能创建器
在config/claude/skills/中创建全局Claude Code技能,以便通过dotfiles仓库分发。
上下文
此dotfiles仓库管理全局Claude Code配置:
| 类型 | 源(dotfiles) | 目标(符号链接) |
|---|---|---|
| 命令 | config/claude/commands/*.md |
~/.claude/commands/ |
| 技能 | config/claude/skills/<name>/SKILL.md |
~/.claude/skills/<name>/ |
| 代理 | config/claude/agents/*.md |
~/.claude/agents/ |
全局技能位于config/claude/skills/中,并通过dotfiles安装过程符号链接到~/.claude/skills/,使其在所有项目中可用。
技能结构
每个技能是一个目录,SKILL.md作为入口点:
config/claude/skills/<技能名称>/
├── SKILL.md # 必需 - 主要指令
├── REFERENCE.md # 可选 - 详细指南
├── scripts/ # 可选 - 辅助脚本
│ └── helper.py
└── templates/ # 可选 - 文件模板
└── template.md
SKILL.md格式
---
name: 技能名称
description: 它做什么以及何时使用它。包括触发关键词。
---
# 技能名称
当此技能激活时,Claude的指令。
Frontmatter字段
| 字段 | 必需 | 描述 |
|---|---|---|
name |
否 | 显示名称(默认为目录名)。小写字母、连字符,最多64个字符。 |
description |
是 | 关键 - 决定Claude何时自动加载。包括什么+何时+关键词。 |
disable-model-invocation |
否 | true = 只有用户可以通过/技能名称调用 |
user-invocable |
否 | false = 只有Claude可以调用(背景知识) |
allowed-tools |
否 | 限制工具:Read, Grep, Glob, Bash(git *) |
context |
否 | fork = 在隔离子代理中运行 |
agent |
否 | 当context: fork时的子代理类型(例如,Explore, Plan) |
指令
步骤1:收集需求
询问用户:
- 这个技能应该做什么?
- Claude应该何时激活它?(触发场景)
- 它应该只能由用户调用(
/技能名称)还是由Claude自动调用? - 它需要支持文件吗(脚本、模板、参考文档)?
步骤2:生成技能名称
规则:
- 仅使用小写字母、数字、连字符
- 最多64个字符
- 描述功能(它做什么,而不是如何做)
- 示例:
code-reviewer,test-generator,api-doc-creator
步骤3:制作描述
描述关键 - 它决定Claude何时激活技能。
模板:
[主要功能]. [次要能力]. 使用当[触发场景]. 关键词:[逗号分隔的术语].
好例子:
- “生成具有高覆盖率的全面测试套件。在添加测试、提高覆盖率或实现TDD时使用。关键词:test, testing, coverage, TDD”
- “审查代码以查找安全漏洞和最佳实践。在审查PR或审计代码时使用。关键词:review, security, audit, PR”
坏例子:
- “帮助处理代码”(太模糊,无触发器)
- “做测试的东西”(无关键词)
步骤4:创建技能
-
创建目录:
mkdir -p config/claude/skills/<技能名称> -
创建
SKILL.md包含:- YAML frontmatter(名称、描述、可选字段)
- 为Claude提供的清晰指令
- 预期的输出格式
- 如果有帮助,提供示例
-
如果需要,添加支持文件:
REFERENCE.md用于详细文档scripts/用于可执行的辅助程序templates/用于文件模板
步骤5:更新符号链接脚本(如果需要)
如果scripts/link-config.sh尚未处理技能,添加:
# 技能(目录)
mkdir -p ~/.claude/skills
for skill_dir in "$DOTFILES/config/claude/skills"/*; do
if [ -d "$skill_dir" ]; then
skill_name=$(basename "$skill_dir")
ln -sf "$skill_dir" ~/.claude/skills/"$skill_name"
fi
done
步骤6:测试技能
- 运行
./scripts/link-config.sh创建符号链接 - 开始一个新的Claude Code会话
- 使用匹配描述的请求进行测试
- 或者直接调用:
/技能名称
输出
创建技能后:
- 显示创建的文件结构
- 解释技能何时将激活
- 提供会触发它的示例请求
- 提醒运行
./scripts/link-config.sh进行安装
调用控制模式
仅用户调用(对于有副作用的操作):
---
name: deploy
description: 部署到生产环境
disable-model-invocation: true
---
仅Claude调用(背景知识):
---
name: project-conventions
description: 项目编码约定和模式
user-invocable: false
---
用户和Claude都可调用(默认):
---
name: code-reviewer
description: 审查代码以查找问题
---