File contents 代码评审
对指定的服务或应用进行全面的代码评审。
PDLC 前置检查(必须执行,不可跳过)
从用户输入中提取功能名称关键词
检查实现代码是否存在 :在 backend/ 和 frontend/ 下搜索与该功能相关的源代码文件(非测试文件)
检查测试是否通过 :找到对应的测试代码并运行,确认测试处于绿灯状态 (全部通过)
未找到实现代码 → 输出以下信息后立即停止,不继续执行 :⛔ PDLC 守卫:未找到与「<功能名>」相关的实现代码。
评审必须基于已有的代码实现。请先运行:
👉 /pdlc-implement <目标>
测试未通过 → 输出以下信息后立即停止,不继续执行 :⛔ PDLC 守卫:「<功能名>」的测试未全部通过,无法进行评审。
请先确保所有测试通过后再提交评审:
👉 /pdlc-implement <目标>(修复失败的测试)
检查通过 → 提取功能ID(从相关设计文档或 PRD 中),继续执行
评审流程
阅读设计文档 : 先阅读 docs/02_design/ 对应子目录下的相关设计文档
阅读编码规范 : 阅读 docs/00_standards/coding/ 目录了解编码规范(未命中 → 报告里提示 consider /pdlc-standard add coding/<topic>)
检查代码实现 : 对照设计文档逐一检查实现是否符合
检查测试覆盖 : 确认测试是否充分覆盖
代码质量自动检查与修复 (必须执行):
按 /pdlc-lint check 逻辑运行项目 lint 工具
若存在可自动修复的问题,按 /pdlc-lint fix 逻辑自动修复
记录修复前后的问题数变化
评审检查项(逐项检查,发现问题立即修复)
设计一致性(对照设计文档)
代码质量
安全检查
性能检查
测试完备性
自动修复(评审中发现的问题,能修则修)
对以下类型的问题直接修复代码,不仅仅记录 :
lint 问题 :运行 lint fix 自动修复格式、规范问题
命名不规范 :自动重命名为符合项目约定的名称
缺失错误处理 :自动补充 try-catch / 错误码返回
缺失日志 :在关键操作处自动添加日志语句
SQL 注入风险 :自动改写为参数化查询
XSS 风险 :自动添加输出转义
缺失分页 :自动为列表接口补充分页逻辑
缺失 CHANGELOG :自动追加变更条目
不可自动修复的问题 (记录到评审报告,标记为需人工处理):
架构层面的设计问题
业务逻辑的正确性争议
需要重大重构的性能问题
评审报告生成
⚠️ 必须创建文件,不可仅在对话中输出。
【必须创建文件】 在 docs/07_reviews/code/ 下创建评审记录:
文件名格式 : <功能ID>-<功能名>-review.md(如 F20260326-090000-user-auth-review.md)
文档顶部必须包含 PDLC 追溯头 :<!-- PDLC-TRACE -->
<!-- 功能ID: F20260326-090000 -->
<!-- 功能名称: user-auth -->
<!-- 阶段: 评审 -->
<!-- 前置文档: docs/02_design/api/F20260326-090000-user-auth-api.md -->
<!-- 创建时间: 2026-03-26T10:30:00 -->
报告内容格式 :## 评审总结
- 评审时间:<ISO 8601>
- 评审范围:<涉及的文件数和代码行数>
- 问题总数:X 项(阻塞: X / 严重: X / 一般: X / 建议: X)
- 自动修复:X 项
- 需人工处理:X 项
## 自动修复记录
| # | 问题类型 | 文件 | 修复内容 |
|---|---------|------|---------|
| 1 | lint | src/xxx.ts | 修复 XX 规则违规 |
## 需人工处理
| # | 严重程度 | 问题描述 | 建议方案 |
|---|---------|---------|---------|
| 1 | 阻塞 | XXX | 建议 XXX |
## 评审检查项结论
- [x] 设计一致性:通过
- [x] 代码质量:通过(X 项已自动修复)
- [ ] 安全检查:X 项需人工确认
修复后验证 :自动修复完成后,重新运行全部测试(命令取自 docs/00_standards/test-commands.yml),确认修复未引入新问题
测试通过 → 评审完成
测试失败 → 回滚修复,将问题标记为需人工处理
写 last_phase_result :checks 取自真跑 test-commands 的 unit/coverage/lint 退出码,不用自检冒充;
退出码三态语义与「命令跑不了 = yml 过期信号」见下方 check 命令规则
--autonomous 下的收尾判定 (呼应非交互契约):
「需人工处理/需人工确认」表中存在阻塞级 项 → 不推进:last_phase_result.ok=false + blocked_reason="评审存在阻塞级待人工项" + 输出 blocked 哨兵,交还人类
仅有非阻塞级人工项 → 记录在案并正常推进到 review_done
要求
问题按严重程度分级:阻塞 / 严重 / 一般 / 建议
能修的问题直接修复 ,不仅仅指出问题
修复后必须验证测试仍然通过
评审目标: $ARGUMENTS
文档评审
对指定的文档进行质量评审,检查完整性、一致性和可操作性。发现问题直接修复,而非仅列出建议。
文档评审检查项
完整性
一致性
可操作性
规范性
文档自动修复规则(发现即修,不仅记录)
缺失章节 :对照模板自动补充,内容根据文档已有信息合理推断
PDLC 追溯头缺失或不完整 :自动补全缺失字段
术语不一致 :统一为文档中首次出现的术语,全文替换
模糊表述 :自动改写为具体、可度量的描述
表格格式问题 :自动修复空列、对齐问题
Markdown 语法错误 :自动修复标题层级、列表缩进
交叉引用路径错误 :检查引用的文件是否存在,不存在则标注警告
缺失示例 :为 API 接口自动补充请求/响应示例
不可自动修复的问题 (记录到评审报告):
业务逻辑的正确性争议
需要与产品确认的需求歧义
涉及跨文档架构调整的问题
文档评审工作流程
识别文档类型 :判断文档属于 PRD / API 设计 / DB 设计 / 架构设计 / 测试计划 / 部署手册
加载对照物 :
加载对应的模板(templates/ 目录)
加载前置文档(从 PDLC-TRACE 中获取路径)
如是设计文档,同时加载 PRD 进行交叉比对
逐项检查 :按上方检查项逐一执行
自动修复 :发现问题直接修改原文档
【必须创建文件】生成评审记录 :在 docs/07_reviews/doc/ 下创建评审记录
修复后仅复查一次(确认修复未引入新问题),不再递归修复 。若复查仍发现问题,记录到评审报告的「需人工确认」中
1 --- 2 name: pdlc-review 3 description: 代码评审 + 文档评审 4 --- 5 6 # 代码评审 7 8 <!-- @include templates/prompts/iron-law.md --> 9 <!-- @include templates/prompts/noninteractive.md --> 10 11 对指定的服务或应用进行全面的代码评审。 12 13 ## PDLC 前置检查(必须执行,不可跳过) 14 15 1. 从用户输入中提取功能名称关键词 16 2. **检查实现代码是否存在**:在 `backend/` 和 `frontend/` 下搜索与该功能相关的源代码文件(非测试文件) 17 3. **检查测试是否通过**:找到对应的测试代码并运行,确认测试处于**绿灯状态**(全部通过) 18 4. **未找到实现代码** → 输出以下信息后**立即停止,不继续执行**: 19 ``` 20 ⛔ PDLC 守卫:未找到与「<功能名>」相关的实现代码。 21 评审必须基于已有的代码实现。请先运行: 22 👉 /pdlc-implement <目标> 23 ``` 24 5. **测试未通过** → 输出以下信息后**立即停止,不继续执行**: 25 ``` 26 ⛔ PDLC 守卫:「<功能名>」的测试未全部通过,无法进行评审。 27 请先确保所有测试通过后再提交评审: 28 👉 /pdlc-implement <目标>(修复失败的测试) 29 ``` 30 6. **检查通过** → 提取功能ID(从相关设计文档或 PRD 中),继续执行 31 32 ## 评审流程 33 34 1. **阅读设计文档**: 先阅读 `docs/02_design/` 对应子目录下的相关设计文档 35 2. **阅读编码规范**: 阅读 `docs/00_standards/coding/` 目录了解编码规范(未命中 → 报告里提示 `consider /pdlc-standard add coding/<topic>`) 36 3. **检查代码实现**: 对照设计文档逐一检查实现是否符合 37 4. **检查测试覆盖**: 确认测试是否充分覆盖 38 5. **代码质量自动检查与修复**(必须执行): 39 - 按 `/pdlc-lint check` 逻辑运行项目 lint 工具 40 - 若存在可自动修复的问题,按 `/pdlc-lint fix` 逻辑自动修复 41 - 记录修复前后的问题数变化 42 43 ## 评审检查项(逐项检查,发现问题立即修复) 44 45 ### 设计一致性(对照设计文档) 46 - [ ] 每个 API 接口的 URL、方法、参数是否与设计文档一致 47 - [ ] 数据库表结构、字段名、类型是否与 DB 设计一致 48 - [ ] 响应格式是否统一遵循 `{ code, message, data }` 49 50 ### 代码质量 51 - [ ] 命名是否规范(变量/函数/类遵循项目命名约定) 52 - [ ] 是否有重复代码可提取为公共方法 53 - [ ] 错误处理是否合理(不吞异常、不用空 catch、有意义的错误信息) 54 - [ ] 日志是否充分(关键操作有日志、不打印敏感信息) 55 56 ### 安全检查 57 - [ ] SQL 注入:是否使用参数化查询/ORM,无字符串拼接 SQL 58 - [ ] XSS:用户输入是否转义后再输出 59 - [ ] 权限控制:接口是否有鉴权,敏感操作是否有权限校验 60 - [ ] 敏感数据:密码是否加密存储、Token 是否有过期机制、日志不含敏感字段 61 62 ### 性能检查 63 - [ ] 数据库查询是否有 N+1 问题 64 - [ ] 列表接口是否有分页 65 - [ ] 是否有不必要的全表扫描(缺失索引) 66 - [ ] 大数据量操作是否有批处理 67 68 ### 测试完备性 69 - [ ] 单元测试覆盖率是否达标(覆盖率达标线**以项目配置为准**:优先取 `docs/00_standards/test-commands.yml` 的 coverage 命令阈值参数(那才是强制点,退出码即判定),其次 `quality-targets.yml`;两者都没有时按 >= 80% 兜底。) 70 - [ ] 核心业务路径是否有完整的测试 71 - [ ] CHANGELOG 是否已更新 72 73 ## 自动修复(评审中发现的问题,能修则修) 74 75 对以下类型的问题**直接修复代码,不仅仅记录**: 76 77 1. **lint 问题**:运行 lint fix 自动修复格式、规范问题 78 2. **命名不规范**:自动重命名为符合项目约定的名称 79 3. **缺失错误处理**:自动补充 try-catch / 错误码返回 80 4. **缺失日志**:在关键操作处自动添加日志语句 81 5. **SQL 注入风险**:自动改写为参数化查询 82 6. **XSS 风险**:自动添加输出转义 83 7. **缺失分页**:自动为列表接口补充分页逻辑 84 8. **缺失 CHANGELOG**:自动追加变更条目 85 86 **不可自动修复的问题**(记录到评审报告,标记为需人工处理): 87 - 架构层面的设计问题 88 - 业务逻辑的正确性争议 89 - 需要重大重构的性能问题 90 91 ## 评审报告生成 92 93 > ⚠️ **必须创建文件,不可仅在对话中输出。** 94 95 **【必须创建文件】** 在 `docs/07_reviews/code/` 下创建评审记录: 96 - **文件名格式**: `<功能ID>-<功能名>-review.md`(如 `F20260326-090000-user-auth-review.md`) 97 - **文档顶部必须包含 PDLC 追溯头**: 98 ``` 99 <!-- PDLC-TRACE --> 100 <!-- 功能ID: F20260326-090000 --> 101 <!-- 功能名称: user-auth --> 102 <!-- 阶段: 评审 --> 103 <!-- 前置文档: docs/02_design/api/F20260326-090000-user-auth-api.md --> 104 <!-- 创建时间: 2026-03-26T10:30:00 --> 105 ``` 106 - **报告内容格式**: 107 ```markdown 108 ## 评审总结 109 - 评审时间:<ISO 8601> 110 - 评审范围:<涉及的文件数和代码行数> 111 - 问题总数:X 项(阻塞: X / 严重: X / 一般: X / 建议: X) 112 - 自动修复:X 项 113 - 需人工处理:X 项 114 115 ## 自动修复记录 116 | # | 问题类型 | 文件 | 修复内容 | 117 |---|---------|------|---------| 118 | 1 | lint | src/xxx.ts | 修复 XX 规则违规 | 119 120 ## 需人工处理 121 | # | 严重程度 | 问题描述 | 建议方案 | 122 |---|---------|---------|---------| 123 | 1 | 阻塞 | XXX | 建议 XXX | 124 125 ## 评审检查项结论 126 - [x] 设计一致性:通过 127 - [x] 代码质量:通过(X 项已自动修复) 128 - [ ] 安全检查:X 项需人工确认 129 ``` 130 131 6. **修复后验证**:自动修复完成后,重新运行全部测试(命令取自 `docs/00_standards/test-commands.yml`),确认修复未引入新问题 132 - 测试通过 → 评审完成 133 - 测试失败 → 回滚修复,将问题标记为需人工处理 134 - **写 `last_phase_result`**:`checks` 取自真跑 test-commands 的 `unit`/`coverage`/`lint` 退出码,不用自检冒充; 135 退出码三态语义与「命令跑不了 = yml 过期信号」见下方 check 命令规则 136 7. **`--autonomous` 下的收尾判定**(呼应非交互契约): 137 - 「需人工处理/需人工确认」表中存在**阻塞级**项 → 不推进:`last_phase_result.ok=false` + `blocked_reason="评审存在阻塞级待人工项"` + 输出 blocked 哨兵,交还人类 138 - 仅有非阻塞级人工项 → 记录在案并正常推进到 `review_done` 139 140 ## 要求 141 142 <!-- @include templates/prompts/output-language.md --> 143 - 问题按严重程度分级:阻塞 / 严重 / 一般 / 建议 144 - **能修的问题直接修复**,不仅仅指出问题 145 - 修复后必须验证测试仍然通过 146 147 评审目标: $ARGUMENTS 148 149 --- 150 151 ## 文档评审 152 153 对指定的文档进行质量评审,检查完整性、一致性和可操作性。**发现问题直接修复,而非仅列出建议。** 154 155 ### 文档评审检查项 156 157 #### 完整性 158 - [ ] 是否覆盖了所有必要章节(对照对应模板 `templates/` 检查) 159 - [ ] 是否有遗漏的功能点或接口 160 - [ ] 非功能需求是否有说明 161 - [ ] 是否有明确的验收标准 162 - [ ] PDLC 追溯头是否完整(功能ID、功能名称、阶段、前置文档、创建时间) 163 164 #### 一致性 165 - [ ] 术语命名是否前后一致(同一概念不用不同名称) 166 - [ ] 数据模型是否与 API 设计一致(字段名、类型) 167 - [ ] 接口参数是否与 PRD 需求对应 168 - [ ] 版本号和日期是否准确 169 - [ ] 文档间交叉引用路径是否正确 170 171 #### 可操作性 172 - [ ] 操作步骤是否具体可执行(无模糊表述如「适当配置」「按需调整」) 173 - [ ] 是否有示例代码或示例数据 174 - [ ] 错误码是否有清晰的处理建议 175 - [ ] 部署步骤是否可复现 176 177 #### 规范性 178 - [ ] 是否符合对应模板格式 179 - [ ] 表格是否完整(无空列、无缺失表头) 180 - [ ] Markdown 语法是否正确(标题层级、列表缩进、代码块语言标注) 181 - [ ] 输出语言是否符合用户对话语言(或用户显式指定的语言) 182 183 ### 文档自动修复规则(发现即修,不仅记录) 184 185 1. **缺失章节**:对照模板自动补充,内容根据文档已有信息合理推断 186 2. **PDLC 追溯头缺失或不完整**:自动补全缺失字段 187 3. **术语不一致**:统一为文档中首次出现的术语,全文替换 188 4. **模糊表述**:自动改写为具体、可度量的描述 189 5. **表格格式问题**:自动修复空列、对齐问题 190 6. **Markdown 语法错误**:自动修复标题层级、列表缩进 191 7. **交叉引用路径错误**:检查引用的文件是否存在,不存在则标注警告 192 8. **缺失示例**:为 API 接口自动补充请求/响应示例 193 194 **不可自动修复的问题**(记录到评审报告): 195 - 业务逻辑的正确性争议 196 - 需要与产品确认的需求歧义 197 - 涉及跨文档架构调整的问题 198 199 ### 文档评审工作流程 200 201 1. **识别文档类型**:判断文档属于 PRD / API 设计 / DB 设计 / 架构设计 / 测试计划 / 部署手册 202 2. **加载对照物**: 203 - 加载对应的模板(`templates/` 目录) 204 - 加载前置文档(从 PDLC-TRACE 中获取路径) 205 - 如是设计文档,同时加载 PRD 进行交叉比对 206 3. **逐项检查**:按上方检查项逐一执行 207 4. **自动修复**:发现问题直接修改原文档 208 5. **【必须创建文件】生成评审记录**:在 `docs/07_reviews/doc/` 下创建评审记录 209 - **文件名格式**: `<功能ID>-<功能名>-<文档类型>-doc-review.md` 210 - **报告格式**: 211 ```markdown 212 ## 文档评审报告 213 - 评审时间:<ISO 8601> 214 - 目标文档:<文档路径> 215 - 文档类型:<PRD/API设计/DB设计/...> 216 - 问题总数:X 项(必须修改: X / 建议修改: X / 可选: X) 217 - 自动修复:X 项 218 - 需人工确认:X 项 219 220 ## 自动修复记录 221 | # | 问题类型 | 修复内容 | 222 |---|---------|---------| 223 | 1 | 缺失章节 | 补充了「非功能需求」章节 | 224 225 ## 需人工确认 226 | # | 严重程度 | 问题描述 | 建议 | 227 |---|---------|---------|------| 228 | 1 | 必须修改 | XXX 需求存在歧义 | 建议与产品确认 | 229 230 ## 检查项结论 231 - [x] 完整性:通过 232 - [x] 一致性:通过(X 项已修复) 233 - [x] 可操作性:通过 234 - [x] 规范性:通过 235 ``` 236 - 修复后仅复查一次(确认修复未引入新问题),**不再递归修复**。若复查仍发现问题,记录到评审报告的「需人工确认」中 237 238 <!-- @include templates/prompts/check-commands.md --> 239 <!-- @include templates/prompts/state-update.md --> 240 <!-- @include templates/prompts/handoff.md -->
kanfu-panda/pdlc-skills/tree/main/skills/pdlc-review commit 8360bf6993
Frequently asked questions How do I install the Pdlc Review skill? Run npx skillmds@latest add kanfu-panda/pdlc-review in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
What does the Pdlc Review skill do? 代码评审 + 文档评审 It is listed under Coding & Dev Tools on SkillMD.
Is Pdlc Review safe to use? This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
Which AI agents work with Pdlc Review? This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Is Pdlc Review free to use? Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
Who published Pdlc Review? kanfu-panda (@kanfu-panda) published this skill. Their other Agent Skills are listed on their SkillMD profile.