← ClaudeAtlas

code-reviewlisted

Review changes since a fixed point (commit/branch/tag) along two axes — Standards (coding standards) and Spec (matches the spec/issue). Runs parallel sub-agents. Use when reviewing a branch, PR, or work-in-progress changes.
988hj7tczd-oss/skill-tool · ★ 0 · Code & Development · score 73
Install: claude install-skill 988hj7tczd-oss/skill-tool
# Code Review — 双轴审查 对 `HEAD` 与固定点之间的 diff 做双轴审查: - **Standards** — 代码是否符合项目的编码标准? - **Spec** — 代码是否忠实实现了原始 issue / PRD / spec? 两轴并行运行(互相隔离),然后本 skill 汇总结果。 ## 流程 ### 1. 确定固定点 用户指定的就是固定点 — commit SHA、分支名、tag、`main`、`HEAD~5` 等。如果没给,问。 捕获 diff 命令:`git diff <fixed-point>...HEAD`(三点,对比 merge-base)。同时列出 commits:`git log <fixed-point>..HEAD --oneline`。 确认固定点能解析(`git rev-parse <fixed-point>`)且 diff 非空。错误 ref 或空 diff 应该在这里失败,而不是在 sub-agent 里。 ### 2. 确定 spec 来源 按顺序找起源 spec: 1. Commit messages 中的 issue 引用(`#123`, `Closes #45` 等) 2. 用户传入的路径参数 3. `docs/`, `specs/`, `.scratch/` 下匹配分支��或功能的 PRD/spec 文件 4. 都没有 → 问用户 spec 在哪。如果用户说没有,Spec 轴跳过,标注"无 spec 可用" ### 3. 确定 standards 来源 仓库中记录了代码规范的文件,如 `CODING_STANDARDS.md` 或 `CONTRIBUTING.md`。 在此基础上,Standards 轴始终携带以下 **smell baseline**(来自 Fowler《Refactoring》ch.3): - **Mysterious Name** — 函数/变量/类型名不揭示意图 → 重命名 - **Duplicated Code** — diff 中多处出现相同逻辑 → 提取共享 - **Feature Envy** — 方法过度使用其他对象的数据 → 移动方法 - **Data Clumps** — 相同字段/参数总是一起出现 → 打包为类型 - **Primitive Obsession** — 用基本类型表示领域概念 → 创建专属类型 - **Repeated Switches** — 同一类型的 switch/if-cascade 多处出现 → 多态或 map - **Shotgun Surgery** — 一个逻辑变更需要修改多处 → 合并模块 - **Refused Bequest** — 子类不使用继承来的方法 → 用组合替代继承 - **Middle Man** — 类大部分方法只是委派 → 删除中间层 - **Speculative Generality** — 为未来准备的抽象从未使用 → 删除 - **Temporary Field** — 对象的字段只在某些条件下有意义 → 提取为独立对象 - **Message Chains** — `a.b().c().d()` 式长链 → 提取方法 - **Data Class** — 只有 getter/setter 没有行为的类 → 移动行为进来 仓库文档优先;仓库没有时用这个 baseline。每个 smell 是启发式标注,不是硬违规。 ### 4. 并行 sub-a