SuperAPI AI 工具集

code-review

测试与质量

查看项目

更新于 10-15 21:56

技能介绍

用途:对 HEAD 与用户提供的固定点之间的差异做双轴代码审查。Standards 轴判断代码是否符合本仓库文档化的编码规范;Spec 轴判断代码是否忠实实现来源 issue/PRD/规格。两轴作为并行子代理运行,避免相互污染上下文,再由本技能汇总结果。

主要能力与流程:

  1. 固定基准点。用户指定的提交 SHA、分支名、标签、main、HEAD~5 等即为固定点;未指定则询问。记录 diff 命令 git diff <fixed-point>...HEAD(三点,与 merge-base 比较),并用 git log <fixed-point>..HEAD --oneline 记录提交列表。继续前先用 git rev-parse <fixed-point> 确认基准点可解析且 diff 非空,坏引用或空 diff 应在此失败。
  2. 识别规格来源。依次查找提交信息中的 issue 引用(#123、Closes #45、GitLab !67 等,经 docs/agents/issue-tracker.md 的工作流获取)、用户作为参数传入的路径、docs/、specs/ 或 .scratch/ 下与分支名或功能匹配的 PRD/规格文件。找不到则询问用户;若用户表示没有,Spec 子代理跳过并报告“no spec available”。若 docs/agents/issue-tracker.md 缺失,运行 /memo-flow。
  3. 识别规范来源。仓库中记录代码写法的文件,如 CODING_STANDARDS.md 或 CONTRIBUTING.md。此外 Standards 轴始终携带一组固定的 Fowler 代码坏味道基线(Refactoring 第 3 章),即使仓库未记录任何规范也适用。两条约束:仓库规范优先,文档化标准总是胜过基线,若仓库认可某做法则抑制该坏味道;始终是判断性结论,每个坏味道都是带标签的启发式(如“possible Feature Envy”),绝非硬性违规,且跳过工具已强制检查的内容。基线坏味道包括:Mysterious Name、Duplicated Code、Feature Envy、Data Clumps、Primitive Obsession、Repeated Switches、Shotgun Surgery、Divergent Change、Speculative Generality、Message Chains、Middle Man、Refused Bequest,各含“是什么→如何修复”的说明。
  4. 并行启动两个子代理。单条消息中发起两个 Agent 工具调用,均使用 general-purpose 子代理。Standards 子代理提示需包含完整 diff 命令与提交列表、找到的规范来源文件列表,以及完整粘贴的坏味道基线(子代理无法另行获取);其任务为按文件/hunk 报告违反文档化标准之处(引用标准文件与规则)及发现的基线坏味道(命名并引用 hunk),区分硬性违规与判断性结论,跳过工具已强制检查的内容,400 词以内。Spec 子代理提示需包含 diff 命令与提交列表、规格路径或获取到的内容;其任务为报告规格要求但缺失或部分实现的需求、diff 中未被要求的行为(范围蔓延)、看似实现但实现有误的需求,每条发现引用规格原文,400 词以内。规格缺失时跳过 Spec 子代理并在最终报告中注明。
  5. 汇总。在 ## Standards 与 ## Spec 标题下呈现两份报告,可逐字或轻度清理,不合并、不重新排序发现,两轴刻意保持分离。结尾给出一行摘要:每轴发现总数及各自最严重问题(如有),不跨轴选出唯一赢家。

为何分两轴:变更可能通过一轴而失败另一轴。符合所有标准但实现错误内容→Standards 通过、Spec 失败;完全按 issue 要求但破坏项目约定→Spec 通过、Standards 失败。分开报告可防止一轴掩盖另一轴。

适用场景:需要同时评估代码规范符合度与需求实现忠实度的代码审查。限制:需要用户提供固定点;规格缺失时 Spec 轴跳过;基线坏味道仅为判断性启发式;不替代工具已强制检查的内容。