用途:对 HEAD 与用户提供的固定点之间的 diff 做双轴审查。Standards 轴判断代码是否符合本仓库文档化的编码规范;Spec 轴判断代码是否忠实实现来源 issue/规格。两轴作为并行子代理运行,避免互相污染上下文,再由本技能汇总发现。
主要能力与流程:
- 固定基准点。用户给出的固定点可以是 commit SHA、分支名、标签、main、HEAD~5 等;未指定则询问。记录 diff 命令 git diff <fixed-point>...HEAD(三点,与 merge-base 比较),并用 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/ 下与分支名或功能匹配的规格文件。找不到则询问用户;若用户说没有,Spec 子代理跳过并报告“no spec available”。若 docs/agents/issue-tracker.md 缺失,提示用户运行 /setup-agent-skills。
- 识别规范来源。仓库中记录代码应如何编写的文件,如 CODING_STANDARDS.md 或 CONTRIBUTING.md。此外 Standards 轴始终携带一组固定的 Fowler 代码坏味道基线(Refactoring 第 3 章),即使仓库未记录任何规范也适用。两条约束:仓库规范优先,文档化标准总是胜出,若其认可某基线会标记的做法则抑制该坏味道;基线始终是判断性启发式(如“possible Feature Envy”),不是硬性违规,且跳过工具已强制检查的内容。
- 并行启动两个子代理。Standards 子代理提示包含完整 diff 命令与提交列表、找到的规范来源文件列表、完整粘贴的坏味道基线,要求按文件/hunk 报告违反文档化标准之处(引用标准文件与规则)及发现的基线坏味道(命名并引用 hunk),区分硬性违规与判断性判断,400 词以内。Spec 子代理提示包含 diff 命令与提交列表、规格路径或获取内容,报告规格要求但缺失或部分实现之处、diff 中未被要求的行为(范围蔓延)、看似实现但实现有误的要求,每条发现引用规格原文,400 词以内。
- 汇总。在 ## Standards 与 ## Spec 标题下原样或轻度清理呈现两份报告,不合并、不重排发现,因为两轴刻意分离。最后一行总结:每轴发现总数及每轴最严重问题(如有),不跨轴选唯一赢家。
适用场景:需要同时检查代码规范符合度与规格实现忠实度的代码审查。
限制:需要用户提供固定点;需要仓库中存在规范文档或依赖基线坏味道;Spec 轴依赖可获取的规格来源,缺失时跳过;两轴结果不做合并或重排。