---
name: code-reviewer
description: 生成面向 code review 任务的中文 prompt。用于审查代码、文档、配置、PR diff、指定 commit 或发布前风险；默认只生成审查任务 prompt，不直接 review，也不直接修改代码。
---

# code-reviewer

## 技能定位

生成 code review prompt。这个 skill 不直接审查当前代码，也不默认修复问题；它的产物是一份可复制给 Codex/Agent 执行的审查 prompt。

如果用户明确要求“直接 review 当前改动”，可以改用普通审查流程而不是本 skill。若用户要求“审查并修复”，最终 prompt 中也要先要求 findings first，再由用户或任务边界决定是否进入修复。

## Skill 交叉引用规则

如果生成的 code review prompt 需要指向其他 skill，必须使用 `$skill-name` 形式引用，例如 `$project-prompt-creator` 或 `$plan-mode-planner`。不要只写反引号包裹的 skill 名称，也不要把 skill 名称写成普通说明。

## 使用流程

1. 确认用户要的是生成 code review prompt，不是直接审查或直接改代码。
2. 明确审查范围：
   - 当前分支 diff、指定 commit、PR diff、用户指定文件或目录。
   - 审查目标：发布前风险、行为回归、接口契约、文档一致性、安全隐私、测试缺口等。
3. 读取目标项目 `AGENTS.md`、README、测试说明和与审查范围相关的规则。
4. 读取 `references/review-template.md`，按项目类型和审查范围裁剪。
5. 输出一个完整、连续、可复制的 code review prompt。

## 审查重点生成规则

生成 code review prompt 时，不要提供一份固定风险清单让执行者照单审查。固定清单会把审查范围锁死，容易漏掉当前项目真正重要的风险。

最终 prompt 必须要求执行者先建立本轮“项目化风险地图”，再从风险地图生成审查重点。风险地图至少回答：

- 本次改动可能改变了哪些对用户、调用方、维护者或发布流程的承诺。
- 哪些项目不变量、数据状态、交互边界、运行假设或文档承诺可能被破坏。
- 哪些失败模式最难被发现、最难恢复，或者影响面最大。
- 哪些证据足以证明本轮改动没有破坏关键路径。
- 哪些风险来自 `{{项目类型}}`、`{{审查范围}}`、`{{高风险领域}}`、`{{发布审核约束}}`、`{{用户可见文案要求}}` 或用户明确边界。

可以给执行者提供“风险维度示例”，但必须明确它们只是启发，不是完整清单，也不能限制审查范围。生成最终 review prompt 时，应把不适用的示例删除，并要求执行者根据真实仓库补充项目专属风险。

## 输出要求

- 最终 prompt 必须要求审查输出 findings first。
- 默认 code review 只输出审查报告和建议，不直接修改代码。
- 每条 finding 必须包含：严重级别、可跳转 Markdown 相对路径位置、证据、影响、可能的解决方案、验证建议；带行号时统一使用 `[文件名](相对路径#L行号)`，不要把 `:行号` 写进链接目标。
- 每个定位到的问题都要给出可能的解决方案，不能只写“建议修复”。解决方案要说明可行方向、涉及文件、预期影响和需要补充的验证；如果存在多种方案，可以给 1 到 3 个方向，但不要在证据不足时强行拍板。
- 生成的 code review prompt 必须要求审查报告保存为单独 Markdown 文档。用户指定路径时使用用户路径；未指定路径时，要求执行者先根据项目习惯选择合理的 `{{报告目录}}`，例如项目已有 `docs/`、`reports/` 或类似目录，并在执行前说明路径。报告文件名应体现任务主题和日期，但不能写死当前仓库命名。
- 审查报告至少包含：问题清单、严重程度、可跳转 Markdown 相对路径位置、证据摘要、影响说明、可能的解决方案、建议验证方式、是否阻塞合并 / 发布 / 交付、未覆盖风险或测试缺口；文件链接能定位到行号时必须使用 `#L{行号}` 锚点。
- 问题按严重程度排序。
- 如果没有发现问题，也要生成报告，明确说明未发现阻塞项、已检查范围、剩余风险和测试缺口。
- 不要把 review prompt 写成实现 prompt；除非用户明确要求修复，否则只要求审查报告和建议。

## 输出包裹规则

- 最终 code review prompt 必须整体放入一个 Markdown 文本块。
- 如果 prompt 内部包含三反引号，外层使用四反引号或更长围栏。
- 输出代码块前最多写一句中文引导；输出代码块后不要追加额外正文。

## 自检

输出前逐条检查：

1. 是否明确本 skill 生成的是 review prompt，不是直接 review。
2. 是否写清审查目标、范围、对比基准和不直接修改代码边界。
3. 是否把审查重点按项目类型和风险域模板化。
4. 是否要求 findings first、严重程度排序和证据链接。
5. 是否包含没有发现问题时的输出规则和测试缺口说明。
6. 如果 prompt 中交叉引用其他 skill，是否统一使用 `$skill-name` 形式。
7. 是否没有把旧项目的权限、发布、版本或测试约束硬写进通用 prompt。
