code-review
从固定点(commit、branch、tag 或 merge-base)开始,沿两条轴线审查变更——规范(代码是否遵循仓库文档化的编码规范?)和规格(代码是否与原始 issue/PRD 的要求一致?)。两条审查线在并行子 agent 中运行,并以并排方式报告结果。当用户想审查一个分支、PR、进行中的变更,或要求"从…
Skill by devcxl
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/devcxl-code-review
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: agent-building, code-review
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/code-review
What's inside
- Skill name
code-review- Description
- 从固定点(commit、branch、tag 或 merge-base)开始,沿两条轴线审查变更——规范(代码是否遵循仓库文档化的编码规范?)和规格(代码是否与原始 issue/PRD 的要求一致?)。两条审查线在并行子 agent 中运行,并以并排方式报告结果。当用户想审查一个分支、PR、进行中的变更,或要求"从 X 开始审查"时使用。
- License
- MIT
- Instructions
- 88 lines in SKILL.md · view on GitHub
Files (2)
- SKILL.md
- openai.yaml · agents/
SKILL.md (first lines)
# 审查 对 `HEAD` 与用户指定的固定点之间的 diff 进行双轴审查: - **规范**——代码是否符合本仓库文档化的编码规范? - **规格**——代码是否忠实地实现了原始 issue / PRD / 规格? 两条轴线作为**并行子 agent** 运行,互不污染彼此的上下文,然后由本技能汇总双方的发现。 Issue 跟踪器应该已经提供给你了。如果没有,请告诉用户运行 `/setup-matt-pocock-skills`。 ## 流程 ### 1. 确定固定点 用户说的任何东西都可以作为固定点——commit SHA、分支名、tag、`main`、`HEAD~5` 等等。不要随意发挥,直接传入即可。如果用户没有指定,则询问:"以什么为基准进行审查——一个分支、一个 commit、还是 `main`?" 没有得到答案之前不要继续。 捕获 diff 命令:`git diff <fixed-point>...HEAD`(三个点,这样比较的是 merge-base)。同时通过 `git log <fixed-point>..HEAD --oneline` 记录 commit 列表。 在继续之前,确认固定点能解析(`git rev-parse <fixed-point>`)且 diff 非空。错误的引用或空的 diff 应该在此处失败——不应该让两个并行子 agent 来处理。 ### 2. 确定规格来源 按以下顺序查找原始规格: 1. commit 消息中的 issue 引用(`#123`、`Closes #45`、GitLab `!67` 等)——按照 tracker 文档中的工作流来获取。 2. 用户作为参数传入的路径。 3. `docs/`、`specs/` 或 `.scratch/` 下与分支名或功能名匹配的 PRD/规格文件。 4. 如果什么都没找到,询问用户规格在哪里。如果用户说没有,**规格**子 agent 将跳过并报告"无可用的规格"。 ### 3. 确定规范来源 搜索仓库,找出所有记载代码编写规范的文件。若存在 `CODING_STANDARDS.md` 或 `CONTRIBUTING.md`,必须将它们列入来源。 除了仓库记录的内容外,规范轴线始终携带下面的**气味基线(smell baseline)**——一组来自 Fowler《重构》第 3 章的固定代码气味,即使仓库没有任何文档也适用。两条约束规则: - **仓库覆盖规范。** 已文档化的仓库标准永远优先;如果仓库明确认可了基线的某些判定,则压制该气味。 - **始终是判断性问题。** 每个气味都是带标签的启发式判断("可能的特性依恋"),绝不是一个硬性违反——而且和这里的所有标准一样,跳过工具已强制执行的内容。 每个气味的格式为*它是什么* → *如何修复*;将其与 diff 匹配: - **神秘命名(Mysterious Name)**——函数、变量或类型的名称不能揭示其作用或含义。→ 重命名;如果找不到一个诚实的名字,说明设计本身模糊不清。 - **重复代码(Duplicated Code)**——相同的逻辑形态出现在变更中的多个 hunk 或文件里。→ 提取共享形态,从两处调用。 - **特性依恋(Feature Envy)**——方法访问另一个对象的数据比访问自己的更多。→ 将该方法移动到它所依恋的数据上。 - **数据泥团(Data Clumps)**——同一组字段或参数反复结伴出现(一个等待诞生的类型)。→ 将它们打包成一个类型,传递这个类型。 - **基本类型偏执(Primitive Obsession)**——用基本类型或字符串来表示值得拥有自己类型的概念。→ 给该概念一个自己的小类型。 - **重复 switch(Repeated Switches)**——对同一类型反复使用相同的 `switch`/`if` 级联。→ 用多态替换,或使用两者共享的一个映射。 - **霰弹式修改(Shotgun Surgery)**——一个逻辑变更迫使 diff 中散落在许多文件中的修改。→ 将一起变更的内容聚集到一个模块中。 - **发散式变更(Divergent Change)**——一个文件或模块因多个无关原因被修改。→ 拆分,使每个模块因单一原因变更。 - **臆测通用性(Speculative Generality)**——为规格中不存在的需求添加的抽象、参数或钩子。→ 删除;内联回去,直到真实需求出现。 - **消息链(Message Chains)**——调用者不应依赖的冗长 `a.b().c().d()` 导航。→ 将遍历隐藏在第一个对象的一个方法后面。 - **中间人(Middle Man)**——一个类或函数大部分时间只是委托给其他人。→ 砍掉它,直接调用真正的目标。 - **拒绝遗产(Refused Bequest)**——子类或实现者忽略或覆盖了大部分继承的内容。→ 放弃继承,改用组合。 ### 4. 并行启动两个子 agent 同时发出两个子 agent 调用,并在前台运行;汇总它们返回的报告。 **规范子 agent prompt**——包含: - 完整的 diff 命令和 commit 列表。 - 你在步骤 3 中找到的规范来源文件列表,**加上步骤 3 中的气味基线**(完整粘贴——子 agent 没有其他途径获取它)。 - 任务简述:"报告——按文件/hunk 列出——(a) diff 中每一处违反文档化规范的地方:引用规范(文件 + 规则);以及 (b) 你发现的任何基线气味:命名并引用 hunk。区分硬性违规和判断性差异——文档化规范的违规可以是硬性的,但基线气味始终是判断性问题,且已文档化的仓库标准覆盖基线。跳过工具已强制执行的内容。400 字以内。" **规格子 agent prompt**——包含: - diff 命令和 commit 列表。 - 规格文件的路径或获取到的内容。 - 任务简述:"报告:(a) 规格要求但缺失或不完整的需求;(b) diff 中存在但规格未要求的行为(范围蔓延);(c) 看起来已实现但实现可能错误的需求。每一项都引用规格原文。400 字以内。" 如果规格缺失,跳过规格子 agent,并在最终报告中注明。 ### 5. 汇总 在 `## 规范` 和 `## 规格` 标题下呈现两份报告,可以原文呈现或稍作整理。**不要**合并或重新排序发现项——两条轴线刻意分开(参见《为什么要分两条轴线》)。 结尾附一行总结:每条轴线上发现项的总数,以及每条轴线内最严重的单项问题(如果有的话)。不要跨轴线选一个最终获胜者——那正是拆分要防止的重新排序。 ## 为什么要分两条轴线 一项变更可能通过一条轴线的审查而不通过另一条: - 代码遵循了所有规范但实现了错误的功能 → **规范通过,规格失败。** - 代码完全按 issue 要求实现但违反了项目约定 → **规格通过,规范失败。** 分别报告可以防止一条轴线掩盖另一条轴线。
From devcxl/mattpocock-skills-zh, MIT.
More from devcxl/mattpocock-skills-zh
- 0.810score
git-guardrails-claude-code
devcxl
设置 Claude Code 钩子,在危险 Git 命令(push、reset --hard、clean、branch -D 等)执行前将其拦截。当用户想要防止破坏性 Git 操作、添加 Git 安全钩子或在 Claude Code 中阻止 git push/reset 时使用。
SkillAFreshness: A★ 507Claude Code +9 - 0.804score
to-tickets
devcxl
将计划、规范或当前对话拆分为一组 tracer-bullet ticket,每个 ticket 声明其阻塞边(blocking edges),发布到已配置的跟踪器——本地文件中每个 ticket 一个文件以文本表示边,真实跟踪器上以原生阻塞链接表示。
SkillAFreshness: A★ 507Claude Code +9 - 0.804score
setup-pre-commit
devcxl
在当前仓库中设置 Husky pre-commit 钩子,集成 lint-staged(Prettier)、类型检查和测试。当用户想要添加 pre-commit 钩子、设置 Husky、配置 lint-staged、或添加提交时的格式化/类型检查/测试时使用。
SkillAFreshness: A★ 507Claude Code +9 - 0.803score
diagnosing-bugs
devcxl
针对棘手 bug 和性能回归的诊断循环。当用户说"诊断"/"调试这个",或报告某处崩溃/报错/不正常/缓慢时使用。
SkillAFreshness: A★ 507Claude Code +9 - 0.801score
setup-matt-pocock-skills
devcxl
为本仓库配置工程技能——设置其 issue tracker、分诊标签词汇表和领域文档布局。首次使用其他工程技能前运行一次。
SkillAFreshness: A★ 507Claude Code +9 - 0.801score
codebase-design
devcxl
设计深度模块的共享词汇。当用户想要设计或改进模块的接口、寻找深化机会、决定 seam 的位置、让代码更可测试或更易被 AI 导航,或者其他 skill 需要深度模块词汇时使用。
SkillAFreshness: A★ 507Claude Code +9 - 0.801score
migrate-to-shoehorn
devcxl
将测试文件从 `as` 类型断言迁移到 @total-typescript/shoehorn。当用户提到 shoehorn、想要在测试中替换 `as`、或需要部分测试数据时使用。
SkillAFreshness: A★ 507Claude Code +9 - 0.801score
wayfinder
devcxl
规划一大块工作——超过一次 agent 会话能容纳的体量——在你的 Issue 跟踪器上以共享的决策 ticket 地图形式呈现,逐个解决,直到通往目的地的道路变得清晰。
SkillAFreshness: A★ 507Claude Code +9 - 0.801score
tdd
devcxl
测试驱动开发。当用户想以测试先行构建功能或修复 bug、提到 "red-green-refactor",或想要集成测试时使用。
SkillAFreshness: A★ 507Claude Code +9 - 0.801score
setup-ts-deep-modules
devcxl
将 dependency-cruiser 接入 TypeScript 仓库,使每个 package 都是一个深度模块:实现隐藏在子文件夹中,只能通过入口点文件访问。由用户调用。
SkillAFreshness: A★ 507Claude Code +9 - 0.801score
wizard
devcxl
生成一个交互式 bash 向导,引导人类完成只有他们能执行的步骤。适用于配置基础设施、设置凭证或 CI 密钥、操作不熟悉的第三方面板、或执行一次性迁移或切换。不要让代理替自己执行本应由人类完成的步骤。
SkillAFreshness: A★ 507Claude Code +9 - 0.801score
scaffold-exercises
devcxl
创建包含 section、problem、solution 和 explainer 的练习目录结构,且能通过 lint 检查。当用户想要搭建练习框架、创建练习模板或设置新的课程章节时使用。
SkillAFreshness: A★ 507Claude Code +9
Signals
- Stars
- 507
- Forks
- 44
- Open issues
- 1
- Last commit (this folder)
- Oct 8, 2026 (18 days ago)
- Last release
- Oct 20, 2026 (7 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/devcxl/mattpocock-skills-zh
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from devcxl
- 0.810score
git-guardrails-claude-code
devcxl
设置 Claude Code 钩子,在危险 Git 命令(push、reset --hard、clean、branch -D 等)执行前将其拦截。当用户想要防止破坏性 Git 操作、添加 Git 安全钩子或在 Claude Code 中阻止 git push/reset 时使用。
SkillAFreshness: A★ 507Claude Code +9 - 0.804score
to-tickets
devcxl
将计划、规范或当前对话拆分为一组 tracer-bullet ticket,每个 ticket 声明其阻塞边(blocking edges),发布到已配置的跟踪器——本地文件中每个 ticket 一个文件以文本表示边,真实跟踪器上以原生阻塞链接表示。
SkillAFreshness: A★ 507Claude Code +9 - 0.804score
setup-pre-commit
devcxl
在当前仓库中设置 Husky pre-commit 钩子,集成 lint-staged(Prettier)、类型检查和测试。当用户想要添加 pre-commit 钩子、设置 Husky、配置 lint-staged、或添加提交时的格式化/类型检查/测试时使用。
SkillAFreshness: A★ 507Claude Code +9 - 0.803score
diagnosing-bugs
devcxl
针对棘手 bug 和性能回归的诊断循环。当用户说"诊断"/"调试这个",或报告某处崩溃/报错/不正常/缓慢时使用。
SkillAFreshness: A★ 507Claude Code +9 - 0.801score
codebase-design
devcxl
设计深度模块的共享词汇。当用户想要设计或改进模块的接口、寻找深化机会、决定 seam 的位置、让代码更可测试或更易被 AI 导航,或者其他 skill 需要深度模块词汇时使用。
SkillAFreshness: A★ 507Claude Code +9 - 0.801score
tdd
devcxl
测试驱动开发。当用户想以测试先行构建功能或修复 bug、提到 "red-green-refactor",或想要集成测试时使用。
SkillAFreshness: A★ 507Claude Code +9
Cite this page
code-review skill. Agent Mart. https://agentmart.dev/skills/devcxl-code-review (last updated 2026-10-24)