In the OpenSpec project, based on completed requirements analysis and engineering architecture design, perform a systematic code review of the code within the specified change-id range. When the user issues commands such as "implement code", "code review", or "please review this change", combine the outputs of request-analysis and project-analysis, inspect according to common review guidelines, propose modification suggestions, and write the review record under design/documents/[change-id]/records/.
本技能用于在 OpenSpec 体系下,对已有或刚实现的代码进行系统化 Code Review,确保:
openspec/changes/[change-id]/specs/*/spec.md 中的 Requirements + Scenarios 一一对应;openspec/project.md 与 design/project-rules/ 中的架构、技术栈、分层、命名与约束;design/documents/changes/[change-id]/records/ 中形成可追溯的 review 记录(建议文件名 [change-id]-code-review.md),与 func-test 验收记录同目录,便于按变更归档。产出物质量约定:评审记录须符合本技能 REFERENCE《评审报告-最小结构与自检》中的最小结构与产出后自检清单,详见 ai-agent-dev-system/skills/code-review/REFERENCE/评审报告-最小结构与自检.md。
触发指令示例:
add-xxx 这个 change 做 code review」前置技能依赖:
request-analysis:已为当前需求(change-id)产出 design/documents/changes/[change-id]/ 与 openspec/changes/[change-id]/ 下的前期资料、变更提案、规范增量与任务拆分。project-analysis:已按需要更新 openspec/project.md 与 design/project-rules/,使工程结构与约定清晰统一。coding-implement(通常):已根据前述文档完成初步编码实现或修改,形成可 review 的代码差异。前置资料来源(review 前需主动阅读):
openspec/changes/[change-id]/proposal.md、design.md、specs/*/spec.md、tasks.md;openspec/project.md 与 design/project-rules/(尤其是分层规范与命名/数据/接口约定);锁定 review 范围与 change-id
change-id 以及待 review 的代码范围(文件/模块/提交);change-id 不明确,应主动询问用户或提示按 OpenSpec 变更目录选择。对齐规范与期望
specs/*/spec.md 中的 Requirements + Scenarios,确认本次变更预期解决的问题与覆盖的场景;design.md 中的关键技术与架构决策,确保 Review 时以其为基准;project-rules/ 与分层规范(如 backend 各层规范、frontend 规范),确认代码是否在正确的层落地。按维度执行 Code Review
code-review/REFERENCE/ 下的通用规范,从以下维度检查代码:
info-database/ 与 info-service-interface/ 的一致性(如涉及数据表或对外接口变更)。给出修改建议与行动项,形成评审判定
问题分级与评审判定:
综合判定:
评审结论与后续动作映射(重要):
| 评审结论 | 是否可以进入下一阶段 | 后续动作 | |---------|-------------------|---------| | ✓ 通过 | ✅ 可以 | 直接进入下一阶段(Step 7: 功能验收) | | △ 有条件通过 | ❌ 不可以 | 必须修复问题清单中的建议,重新评审通过后,才能进入下一阶段 | | ✗ 不通过 | ❌ 不可以 | 必须修复 Blocking 问题,重新评审通过后,才能进入下一阶段 |
⚠️ 重要澄清:「有条件通过」≠ 「可以进入下一阶段」。只有「100% 通过」才是真正的通过。详见
memory/patterns/pattern-review-fix-loop.md
评审修复循环:
首次评审 ──→ 有条件通过/不通过 ──→ 修复问题 ──→ 重新评审 ──→ 通过?──→ 否 → 继续修复
└──────→ 是 → 进入下一阶段
输出 review 记录
design/documents/changes/[change-id]/records/ 下,为本次 review 创建记录文件,建议文件名 [change-id]-code-review.md(与 func-test 验收记录同目录,符合 OpenSpec 1.1 表约定);[change-id]-code-review-重新评审纪要.md)与变更目录的关系
change-id;tasks.md 中追加任务;change-id 与变更目录。与规范文档的关系
project.md / project-rules/ / specs/*/spec.md 不一致,需判断:
与 request-analysis
与 project-analysis
与 coding-implement
code-review,对照编码规范与项目约定进行质量把关;coding-implement 的输入。聚焦本次 change 范围
change-id 直接相关的代码,避免在一次 review 中扩散到无关部分;优先级与反馈方式
遇到不确定项要主动提问
add-mvp-health-food-theme 这个 change 做一次 code review,并出一份记录。」add-mvp-health-food-theme,加载其 proposal.md、design.md、specs/*/spec.md 与 tasks.md;openspec/project.md 与 design/project-rules/,了解 Shopify 主题项目的架构、分层与命名约定;design/documents/add-mvp-health-food-theme/records/add-mvp-health-food-theme-code-review.md 中记录本次 Review 的结论、问题与后续行动项;通过本技能,OpenSpec 项目可以在「需求 → 结构 → 实现」之后增加一个规范化的代码评审环节,让代码质量与文档/架构约定保持长期一致。
首次评审记录(所有评审都必须记录):
design/documents/迭代日志.md- [日期] | [change-id] | code-review | 代码评审完成,综合判定:[通过/有条件通过/不通过],评审纪要路径:[路径]重新评审记录(如首次评审为「有条件通过」或「不通过」,修复后必须重新评审并记录):
- [日期] | [change-id] | code-review | 代码重新评审完成,修复项:[N 项],综合判定:[通过],评审纪要路径:[路径]示例:
# 首次评审(有条件通过)
- 2026-03-16 | check-langgraph-backend | code-review | 代码评审完成,综合判定:有条件通过(2项 Minor),评审纪要路径:design/documents/changes/check-langgraph-backend/records/check-langgraph-backend-code-review.md
# 修复后重新评审(通过)
- 2026-03-16 | check-langgraph-backend | code-review | 代码重新评审完成,修复项:2 项,综合判定:通过,评审纪要路径:design/documents/changes/check-langgraph-backend/records/check-langgraph-backend-code-review-重新评审纪要.md
技能版本: v1.1(2026-03-17 升级:明确「有条件通过」必须修复并重新评审后才能进入下一阶段)
最后更新: 2026-03-17
依赖 REFERENCE: skills/code-review/REFERENCE/评审报告-最小结构与自检.md
关联 Memory: pattern-review-fix-loop, anti-pattern-conditional-pass-as-go, anti-pattern-terminology-drift
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer