命令字典
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
通过构建运行确认代码改动
/verify 是 Claude Code 内置的 bundled skill(预装技能),而非硬编码的 built-in 命令。它通过构建并运行实际应用程序、观测运行时行为来确认代码改动是否有效——明确拒绝以"测试通过"或"类型检查通过"代替验证。
Bundled skill vs. built-in command 的区别
/help、/compact、/clear等是 built-in 命令,永远存在;/verify、/run、/code-review等是 bundled skill,以技能形式预装,可被禁用。
版本要求:Claude Code v2.1.145 或更高版本(此版本同时引入了 /run 和 /run-skill-generator 构成三件套)。
/verify
无需任何前置配置。/verify 会自动从项目文件(README、package.json、Makefile 等)推断应用类型(CLI、server、TUI、browser-driven)并启动应用。首次 cold-start 探索有约 15 分钟的时间预算。
/run-skill-generator 配合(推荐)先用 /run-skill-generator 记录启动配方(一次性操作),之后 /verify 直接复用已记录的步骤,无需重复探索:
/run-skill-generator
执行后会在 .claude/skills/ 下生成一个 per-project 的 run-* skill。其具体目录结构与文件名以 /run-skill-generator 实际产出为准,官方文档未对此作规定。
此后每次在该仓库中运行 /verify(以及 /run)都会自动读取该配方,而无需重新发现启动方式。
| 命令 | 职责 |
|---|---|
/run | 启动应用,让你直观看到改动效果 |
/verify | 启动应用并判定改动是否正确工作,给出结论 |
/run-skill-generator | 记录"如何从零启动此项目"的配方,供前两者复用 |
| 约束 | 说明 |
|---|---|
| 需要可触达的运行时 surface | 纯内部函数没有直接 surface;/verify 会顺着调用链找到 CLI/API/GUI 边界;若构建失败、依赖缺失或完全找不到可观测状态,结果为 BLOCKED(官方原文:Can't reach observable state — build failed, missing deps) |
| Cold-start 时间预算 | 首次无配方探索约 15 分钟,超时则标记 BLOCKED |
| 不等同于 CI | 明确不运行测试套件、不做类型检查、不用 import 调用函数打 log——这些只证明了代码逻辑,不是运行时观测 |
通过项目级或用户级 settings.json 禁用所有 bundled skill(包括 /verify):
{
"disableBundledSkills": true
}
或通过环境变量(v2.1.169 起):
CLAUDE_CODE_DISABLE_BUNDLED_SKILLS=true claude
/verify 在查找如何运行应用时遵循以下优先级:
.claude/skills/ 下名称匹配 verifier-* 的自定义技能.claude/skills/ 下名称匹配 run-* 的技能(由 /run-skill-generator 生成)可以手动编写 verifier-* 技能来精确控制验证行为。
/verify | 测试套件 | /run | |
|---|---|---|---|
| 核心目标 | 运行时行为观测 | 代码逻辑正确性 | 启动并展示应用 |
| 给出结论 | 是(PASS/FAIL/BLOCKED/SKIP) | 是(通过/失败) | 否(仅展示) |
| 需要改动上下文 | 是(读 git diff) | 否 | 否 |
| 探测边界情况 | 是(wrong flags / 异常输入) | 看测试覆盖率 | 否 |
| 可替代 CI | 否 | 是 | 否 |
/verify 跑一遍,确认 fix 在真实运行环境中生效。/verify 不止验证主路径,还会主动尝试错误输入、边缘参数,自动补充人工漏测的场景。/verify 会顺调用链追溯到 public surface,若调用链深,首次探索可能较慢。/verify 会 PASS:两者测量维度不同,/verify 可能在测试全绿时仍然 FAIL(例如 UI 渲染异常、环境变量缺失、端口冲突等)。/verify 是 bundled skill,不存在"卸载"。如需在某个项目中禁用:
// .claude/settings.json
{
"disableBundledSkills": true
}
如需在不禁用其他 bundled skill 的情况下只隐藏 /verify:官方文档目前仅记载 disableBundledSkills 这一全量开关,未文档化针对单个 bundled skill 的细粒度禁用项(据现有来源,未见细粒度配置,若官方后续提供请以官方为准)。
/run、/verify、/run-skill-generator 三件套)disableBundledSkills 与 CLAUDE_CODE_DISABLE_BUNDLED_SKILLS 配置项)