该技能对 HEAD 与用户指定固定点之间的 diff 做两条相互独立的审查轴。
用途:一条轴为 Standards,判断代码是否符合本仓库文档化的编码标准;另一条轴为 Spec,判断代码是否忠实实现来源 issue、PRD 或规格。两轴由并行子代理分别执行以避免上下文互相污染,随后汇总结果。
流程:先固定比较点,用户给出的 commit SHA、分支名、标签、main 或 HEAD~5 等均可;未指定时需询问。用 git diff <fixed-point>...HEAD(三点,与 merge-base 比较)取得 diff,并用 git log <fixed-point>..HEAD --oneline 记录提交列表;继续前用 git rev-parse <fixed-point> 确认引用可解析且 diff 非空。随后按顺序寻找规格来源:提交信息中的 issue 引用(如 #123、Closes #45、GitLab !67),通过 docs/agents/issue-tracker.md 中的工作流获取;用户作为参数传入的路径;docs/、specs/ 或 .scratch/ 下与分支名或功能匹配的 PRD/规格文件;都找不到则询问用户,若无规格则跳过 Spec 子代理并报告 no spec available。
标准来源包括仓库内 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,每项均给出定义与修复方向,并对照 diff 匹配。
并行子代理:一条消息内发起两个 Agent 调用,均使用 general-purpose 子代理。Standards 子代理需包含完整 diff 命令与提交列表、找到的标准来源文件列表,以及完整粘贴的坏味道基线;要求按文件或 hunk 报告违反文档标准之处(引用标准文件与规则)和发现的基线味道(命名并引用 hunk),区分硬性违规与判断题,文档标准覆盖基线,跳过工具已强制项,400 字以内。Spec 子代理需包含 diff 命令与提交列表以及规格路径或内容;报告规格要求中缺失或未完成的部分、diff 中未被要求的行为(范围蔓延)、看似实现但实现有误的要求,每项引用规格原文,400 字以内。
汇总时以 ## Standards 和 ## Spec 两个标题分别呈现报告,不合并、不重排发现。最后给出一行总结:各轴发现总数及各自最严重问题;不在两轴之间选出唯一赢家。两轴分开是因为改动可能通过一轴而失败另一轴:符合所有标准却实现错误内容,或完全按 issue 实现却违反项目约定。除上述内容外,其他安装方式、收费模式、平台支持等资料暂未提供。