SuperAPI AI 工具集

command-development

编程与开发

查看项目

更新于 10-16 05:28

技能介绍

用途

Command Development 用于在 Claude Code 中创建和编写斜杠命令。斜杠命令是包含提示词的 Markdown 文件,用户调用后其内容成为 Claude 的指令。命令的价值在于:可复用(一次定义多次使用)、一致性(标准化常见工作流)、可分享(在团队或项目间分发)、高效(快速访问复杂提示词)。该技能适合需要把重复性提示词固化为命令的场景。

命令的基本概念

命令是写给 Claude 的指令,不是写给用户的说明。当用户调用 /command-name 时,命令内容变成 Claude 的指令,因此应写成对 Claude 的行动要求。

命令与技能(skill)通过同一个 Skill 工具调用,区别在于组织复杂度:命令位于 commands/ 目录,是单个 .md 文件,不含附带资源,适合快速提示词和简单工作流;技能位于 skills/name/ 目录,采用 SKILL.md 加可选资源(scripts/、references/、examples/),适合复杂知识和打包资产。当需要脚本、参考文件或渐进式披露时,可将命令升级为技能。

调用控制对两者均适用:disable-model-invocation: true 表示仅用户可调用(用于部署、提交等有副作用的操作);默认情况下 Claude 和用户都可调用。

命令位置

  • 项目命令:.claude/commands/,在特定项目中可用,在 /help 中标记为 (project),适合团队工作流和项目专属任务。
  • 个人命令:~/.claude/commands/,在所有项目中可用,在 /help 中标记为 (user),适合个人工作流和跨项目工具。
  • 插件命令:plugin-name/commands/,安装插件后可用,在 /help 中标记为 (plugin-name),适合插件专属功能。

文件格式与 frontmatter 字段

命令是扩展名为 .md 的 Markdown 文件,基础命令无需 frontmatter。可通过 YAML frontmatter 添加配置,字段包括:

  • description:在 /help 中显示的简要描述,类型为字符串,默认取命令提示词首行,建议 60 字符以内的清晰可操作描述。
  • allowed-tools:指定命令可使用的工具,类型为字符串或数组,默认继承会话。可写具体工具(Read, Write, Edit)、限定范围的 Bash(Bash(git:*))或 *(所有工具,少用)。
  • model:指定命令执行所用模型,类型为字符串,取值可为简写(sonnet、opus、haiku)或完整模型 ID(例如 claude-sonnet-4-5-20250929),默认继承会话。简写名称使用各模型系列当前的默认版本。
  • argument-hint:记录预期参数以支持自动补全,类型为字符串,默认无。
  • disable-model-invocation:阻止 Skill 工具以编程方式调用命令,类型为布尔值,默认 false。

动态参数

  • $ARGUMENTS:把全部参数捕获为单个字符串。例如 /fix-issue 123 会展开为 “Fix issue #123 ...”。
  • 位置参数 $1、$2、$3:分别捕获单个参数。例如 /review-pr 123 high alice 对应 $1=123、$2=high、$3=alice。
  • 可混用位置参数与剩余参数,例如 “Deploy $1 to $2 environment with options: $3”。

文件引用

使用 @ 语法把文件内容纳入命令。例如 “Review @$1 for: ...” 时,Claude 会在处理命令前读取指定文件。也支持多文件引用(如同时比较 @src/old-version.js 与 @src/new-version.js)和静态文件引用(如 @package.json、@tsconfig.json)。

命令中的 Bash 执行

命令可内联执行 bash 以动态收集上下文,语法是在反引号前使用 [BANG] 前缀。工作方式:在 Claude 看到命令之前,Claude Code 先执行 [BANG] 代码块,bash 输出替换整个表达式,Claude 收到展开后的实际值。例如命令文件中包含当前分支与变更文件数的命令,最终 Claude 收到的是带实际值(如“3 changed files on branch feature/add-auth”)的文本。该语法属于加载时上下文注入,命令在加载时执行,输出成为提示词中的静态文本,与 Claude 在运行时通过 Bash 工具执行命令不同。它适用于收集 git 状态、环境变量、配置文件等影响起始状态的上下文。技能文档中的示例有意省略 [BANG] 前缀,是因为技能内容加载进 Claude 上下文时 [BANG] 加命令名会实际执行;编写真实命令文件时应加上该前缀。

命令组织

  • 扁平结构:直接放在 .claude/commands/ 下,适合 5–15 个命令、无明确分类的情况。
  • 命名空间结构:使用子目录分组,如 ci/、git/、docs/,在 /help 中显示命名空间,便于查找相关命令,适合 15 个以上命令且有明确分类的情况。

最佳实践

  • 命令设计:单一职责;描述清晰;需要时用 allowed-tools 明确依赖;始终提供 argument-hint;采用动词-名词命名(如 review-pr、fix-issue)。
  • 参数处理:校验参数、提供默认值、说明格式、处理边界情况。
  • 文件引用:使用明确路径、处理文件缺失、使用项目相对路径、考虑用 Glob 工具匹配模式。
  • Bash 命令:限定范围(用 Bash(git:) 而非 Bash())、使用安全命令、处理错误、保持快速。
  • 文档:添加注释、提供示例、列出依赖、标注破坏性变更。

常见模式

  • 审查模式:通过 git diff 获取变更文件并逐项审查代码质量、缺陷、测试覆盖、文档需求。
  • 测试模式:运行指定测试文件并分析结果、为失败提供修复建议。
  • 工作流模式:围绕 PR 编号执行获取、审查、检查、批准或请求修改的完整流程。

故障排查

  • 命令不出现:检查目录、.md 扩展名、Markdown 格式,重启 Claude Code。
  • 参数不生效:检查 $1、$2 语法、argument-hint 是否匹配、是否存在多余空格。
  • Bash 执行失败:检查 allowed-tools 是否包含 Bash、反引号内命令语法、先在终端测试、确认所需权限。
  • 文件引用不生效:检查 @ 语法、路径有效性、是否允许 Read 工具,使用绝对或项目相对路径。

插件相关特性与集成

插件命令可通过环境变量 ${CLAUDE_PLUGIN_ROOT} 获取插件绝对路径,用于引用插件文件、执行插件脚本、加载插件配置、访问插件模板,便于跨安装和跨系统移植、避免硬编码路径。插件命令从 commands/ 目录自动发现,支持子目录命名空间。插件集成方面可与 Agents、Skills、Hooks 等组件组合,形成多组件、分阶段的工作流。此外还包括校验模式(参数校验、文件存在性、插件资源、错误处理)以及使用 AskUserQuestion 进行交互式用户输入等模式。

限制

资料中未说明该技能的具体收费方式、价格、支持的平台范围或效果保证,这些信息暂未提供。