SuperAPI AI 工具集

ai-code-review

编程与开发

查看项目

更新于 10-16 05:04

技能介绍

用途:对 HEAD 与用户指定基点(提交 SHA、分支名、标签、main、HEAD~5 等)之间的差异进行双轴审查。一个轴是 Standards:代码是否符合本仓库文档化的编码规范;另一个轴是 Spec:代码是否忠实实现来源议题或规格。两轴由并行子代理分别执行,避免互相污染上下文,最后由本技能汇总双方结论。

过程:

  1. 确定基点。用户所说即基点;未指定则询问。记录 git diff <fixed-point>...HEAD(三点,与 merge-base 比较)及 git log <fixed-point>..HEAD --oneline。继续前先用 git rev-parse <fixed-point> 确认基点可解析且 diff 非空,否则应在此处失败。
  2. 定位规格来源,顺序为:提交信息中的议题引用(如 #123、Closes #45、GitLab !67),经 docs/agents/issue-tracker.md 的工作流获取;用户作为参数传入的路径;Obsidian 跟踪器可从 $OBSIDIAN_AI_VAULT 解析出的本地路径读取;docs/、specs/ 或 .scratch/ 下匹配分支名或功能的规格文件。找不到则询问用户;若确无规格,Spec 子代理跳过并报告“no spec available”。若 docs/agents/issue-tracker.md 缺失,提示用户运行 /ai-setup-skills。
  3. 收集规范来源:仓库中记录编码方式的文件,如 CODING_STANDARDS.md 或 CONTRIBUTING.md;此外 Standards 轴始终携带一组固定的 Fowler 代码坏味道基线(即使仓库未记录规范)。两条约束:仓库规范优先于基线;每条坏味道都只是标注性启发(如“可能的 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. 并行启动两个子代理,分别提供 diff 命令、提交列表、规范来源或规格内容,以及各自简报(Standards 需引用规范文件与规则、区分硬性违规与判断项、忽略工具已覆盖项;Spec 需引用规格行)。
  5. 汇总:以 ## Standards 与 ## Spec 两个标题分别呈现报告,不合并、不重排。结尾用一行给出各轴发现总数及各自最严重问题,不跨轴选唯一胜者。

为什么分两轴:变更可能通过一轴而失败另一轴——符合全部规范但实现错误(Standards 通过、Spec 失败),或完全按议题实现但破坏项目约定(Spec 通过、Standards 失败);分开报告可防止一轴掩盖另一轴。

限制:需用户提供或确认基点;Spec 轴依赖能找到规格,否则跳过;具体平台、收费与价格信息暂未提供。