用途
ably-review 用于审查当前分支相对 main 的改动是否符合 ably-new-command 技能中定义的规范与约定。与扫描整个代码库的 ably-codebase-review 不同,该技能仅作用于当前分支上发生变化的文件,因此速度快、聚焦明确,适合在提交 PR 之前使用。
主要能力
该技能结合两类工具进行检查:
- LSP(用于需要类型系统感知的场景):goToDefinition 解析命令实际继承的基类;findReferences 沿继承链追踪方法的所有调用方;hover 显示解析后的类型、继承成员与完整类型层级;documentSymbol 结构化列出类中的方法与属性。
- grep/read(文本匹配即可满足的场景):检查 this.error() 调用、this.fail() 与 logCliEvent() 中的组件字符串大小写、this.fail() 中多余的 new Error(...) 包装、this.log() 外层的 shouldOutputJson 守卫、formatSuccess() 结尾的句号、formatProgress() 中手写的 ...、应使用 formatResource() 的 chalk.cyan()、引号包裹的资源名、静态示例数组中的 --json / --pretty-json、flag 展开(如 ...productApiFlags、...durationFlag、...clientIdFlag)、waitUntilInterruptedOrTimeout 的使用、缺失的测试文件、subscribe 测试文件中的 --duration flag、mock 辅助函数导入等。
使用方式
该技能按步骤执行:
- 步骤 0:验证 LSP 前置条件。检查工具列表中是否存在 LSP 工具,若不存在则提示安装 claude plugin add anthropic/claude-code-lsp 并重启 Claude Code;检查 typescript-language-server,若未找到则执行 npm install -g typescript-language-server typescript。
- 步骤 1:识别改动文件。运行 git diff main...HEAD --name-only 获取改动文件列表,并过滤出相关文件(src/commands//*.ts、src//-base-command.ts、src/flags.ts、src/utils/output.ts、test/unit/commands/**/.ts、test/helpers/**/*.ts);同时运行 git log main..HEAD --oneline 了解改动范围。若与 main 相比没有改动,则告知用户并停止。
- 步骤 2:阅读参考技能文件,包括 .claude/skills/ably-new-command/SKILL.md、references/patterns.md、references/testing.md。
- 步骤 3:审查改动文件。对每个改动的命令文件运行相关检查;当有多个命令文件改动时可并行审查,1–2 个文件则顺序审查。检查项覆盖基类、错误处理、输出格式、字段完整性、flag 架构、JSON 输出、Control API 辅助函数、生命周期、静态示例与命令描述;对测试文件检查 5 个必需 describe 块(help、argument validation、functionality、flags、error handling)及 mock 使用等;对新命令文件应用 ably-new-command 的完整清单;对改动的基类或工具验证不破坏既有模式。
- 步骤 4:检查缺失的测试覆盖,为每个新增或修改的命令文件查找对应测试文件。
- 步骤 5:输出发现结果,按文件组织,先给出摘要表格,再逐文件列出问题(类别、规则、证据、建议修复、判定 TRUE DEVIATION 或 ACCEPTABLE EXCEPTION),最后给出总体评估。
适用场景
适用于 Ably CLI 仓库中在提交 PR 前对当前分支改动进行规范一致性审查,尤其是新增或修改命令文件、基类、工具函数与单元测试时。
限制
该技能仅审查当前分支相对 main 的改动,不覆盖整个代码库;依赖 LSP 工具与 typescript-language-server,缺少时需先安装并重启;部分检查(如错误码提示)需要联网获取官方文档;具体收费、价格、平台支持等信息暂未提供。