关于 meta-command-creator
用于设计可复用斜杠命令和技能的 Claude Code 技能,说明文件位置、参数、frontmatter、工具限制及工作流选择。
主要功能
- 01项目级和个人命令位置
- 02参数与文件引用语法
- 03注入 Bash 输出
- 04frontmatter 选项与工具限制
- 05命令优先级和命名
适用场景
- 01创建可复用的团队工作流
- 02添加由参数驱动的命令
- 03为受控操作限制工具
- 04选择使用命令还是技能
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ oakoss/ agent-skills --skill meta-command-creator安装后在 Claude Code 中输入/meta-command-creator确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/arguments-and-refs.mdcommand-anatomy.mdtemplates.mdscripts/validate-command.py详细介绍
自定义斜杠命令创建器
概述
Claude Code 斜杠命令是带有可选 YAML frontmatter 的 Markdown 文件,可创建可重复使用的 /command 工作流。命令和技能已统一:.claude/commands/ 文件和 .claude/skills/ 目录都能创建斜杠命令。建议使用技能,因为它们支持支持文件等额外功能,但单文件命令仍然可用。
适用场景: 可重复使用的提示词、团队工作流标准化、带防护措施的操作(部署、提交)、多阶段任务、通过 bash 输出动态注入上下文。
不适用场景: 需要多个文件和脚本的复杂功能(请改用完整的技能目录)、一次性提示词、已存在的内置命令(/compact、/help、/init)。
快速参考
| 功能 | 语法 / 位置 | 要点 |
|---|---|---|
| 项目命令 | .claude/commands/name.md | 在 /help 中显示“(项目)” |
| 项目技能 | .claude/skills/name/SKILL.md | 相较于命令更受推荐,支持额外文件 |
| 个人命令 | ~/.claude/commands/name.md | 在所有项目中可用 |
| 个人技能 | ~/.claude/skills/name/SKILL.md | 在所有项目中可用 |
| 插件命令 | <plugin>/skills/name/SKILL.md | 命名空间格式为 plugin-name:skill-name |
| 子目录命令 | .claude/commands/git/commit.md | 在 /help 中显示“(项目:git)” |
| 所有参数 | $ARGUMENTS | 完整参数字符串 |
| 位置参数 | $0、$1、$2 或 $ARGUMENTS[0] | 从 0 开始的索引 |
| Bash 注入 | !`git status` | 在发送提示词前运行,输出会替换占位符 |
| 文件引用 | @src/file.ts | 将文件内容内联到提示词中 |
| 扩展思考 | 在内容中加入“ultrathink” | 触发更深入的推理模式 |
| 会话 ID | ${CLAUDE_SESSION_ID} | 用于日志记录的当前会话标识符 |
| Frontmatter 描述 | description: What it does | 在 /help 列表中显示及供 Skill 工具使用时必填 |
| 工具限制 | allowed-tools: Read, Grep, Glob | 限制工具,无需逐次审批 |
| 仅手动调用 | disable-model-invocation: true | 阻止 Claude 自动触发 |
| 从菜单中隐藏 | user-invocable: false | 仅作为 Claude 加载的背景知识 |
| 参数提示 | argument-hint: [issue-number] | 在自动补全中显示 |
| 模型覆盖 | model: claude-sonnet-4-20250514 | 为此命令指定模型 |
| 子 Agent 执行 | context: fork | 在隔离的上下文中运行 |
| 子 Agent 类型 | agent: Explore | context: fork 时使用内置或自定义 Agent |
优先级顺序
当不同层级中存在同名命令时,优先级较高的位置生效:
- 企业级(托管设置)
- 个人级(
~/.claude/) - 项目级(
.claude/)
插件命令使用命名空间(plugin:name),因此不会冲突。如果技能和命令同名,则技能优先。
常见错误
| 错误 | 影响 | 正确做法 |
|---|---|---|
在命令文件中添加 name 字段 | 对 .md 命令无效 | 名称会根据文件名推断 |
缺少 description frontmatter | 不会显示在 /help 和 Skill 工具中 | 始终包含 description |
使用 category 或 tags 字段 | 会被静默忽略 | 使用子目录进行组织 |
使用 $ARGUMENTS 时未处理空值 | 行为异常 | 检查是否为空,并提供默认值 |
使用 !`bash` 却未设置 allowed-tools | 命令无法执行 | 在 frontmatter 中添加 allowed-tools: Bash(...) |
| 认为项目级命令会覆盖个人命令 | 个人命令优先 | 个人命令优先级更高;重命名以避免冲突 |
使用 context: fork 却未指定任务 | 子 Agent 没有可执行的工作 | 仅对包含明确分步说明的技能进行分叉 |
| 覆盖内置命令名称 | 无法覆盖内置命令 | 使用不同名称(用 /my-help,而不是 /help) |
委派
- 命令模式发现:使用
ExploreAgent 查找.claude/commands/或.claude/skills/中的现有命令 - 复杂工作流技能:对于多文件功能,创建包含
SKILL.md和支持文件的完整技能目录
参考资料
评论
支持 Markdown