用途:对当前 Git 索引(暂存变更)做三轴审查——标准(是否符合仓库文档化的编码规范)、规格(是否忠实实现原始任务/规格)、测试(测试是否遵循 unity-tdd 指导并在约定接缝处充分验证暂存行为)。三轴以并行子代理运行,避免相互污染上下文,再由本技能汇总结果。
主要能力与流程:
- 确定审查集:用 git status --short 查看状态,用 git diff --cached 获取审查差异,用 git diff --cached --name-status 记录暂存文件列表,涵盖新增、修改、删除、重命名。若无暂存变更,只报告 No staged changes to review. 并停止,不启动子代理。暂存差异即审查边界;用 git show :<path> 读取暂存内容,使部分暂存文件按索引状态而非工作区状态审查;未暂存与未跟踪变更不在范围内。
- 定位规格来源:优先用户传入路径,其次 docs/、specs/、.scratch/ 下匹配分支名或特性的规格文件;找不到则询问用户,若确无规格,Spec 子代理跳过并报告“no spec available”。
- 定位标准来源:仓库中记录代码写法的文件(如 CODING_STANDARDS.md、CONTRIBUTING.md)。此外标准轴始终携带 Fowler 代码坏味道基线(《重构》第 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 等。
- 定位测试来源:完整阅读 unity-tdd/SKILL.md、tests.md、mocking.md 作为审查参考;查找已记录的接缝约定、术语表与 ADR。覆盖发现须限于约定接缝与自动化测试边界;接缝约定不可用时报告该限制,而非假设所有公共接口都需测试。人工试玩缺口不属此轴。仅在有证据确立开发顺序时评估测试先行与垂直切片。
- 并行启动适用子代理,各自提示词包含暂存差异命令与文件列表、边界与索引读取说明,以及对应来源与简报(每份报告 400 词以内)。
- 汇总:按 ## Standards、## Spec、## Testing 标题原样或轻度清理呈现,不合并、不重排发现;结尾一行总结每轴发现总数与各轴最严重问题,不跨轴选唯一赢家。
适用场景:提交前对暂存变更做多维度审查,尤其需要区分“符合规范但做错事”“做对事但违反约定”“正确且合规但测试空洞”等情形。
限制:仅审查暂存区,未暂存与未跟踪变更不在范围;无暂存变更即停止;规格缺失时 Spec 轴跳过;接缝约定缺失时测试覆盖结论受限;测试先行顺序无法仅凭暂存差异判定。具体安装方式与运行命令暂未提供。