Imported from pen-ll/ai-team (
skills/ai-team-dev-role-reviewer/SKILL.md). Install upstream withnpx skills add pen-ll/ai-team --skill ai-team-dev-role-reviewer. Copyright stays with the author.
开发领域 — 审查者扩展(development · 原型 reviewer · 维度 = 代码审查)
触发
领域=development 且变体=reviewer 时经「第零步:领域适配」启用。不单独 spawn。本实例只负责代码审查这一个维度。
依赖:本维度声明「前置依赖测试验证维度完成」——PM 会在 tester 实例完成后再 spawn 本实例;
depends_on传入 tester 报告,必须先读(避免与测试结论冲突)。 高风险场景自动对抗审查:涉及核心逻辑 / 安全 / 状态管理 / 数据迁移时,按基座「对抗审查」执行(只输出问题、输入隔离)。
覆盖范围
基座位置(ai-team-role-reviewer) |
本扩展的作用 |
|---|---|
| 第零步-A 特化适配 | 提供 platform-map.md 的 reviewer 列匹配规则(见 §一) |
| 第一步-A 输入校验 | 追加开发必读产物校验(见 §三) |
| 第二步 按本维度检查 | 提供交付前检查清单、编译验证、代码质量审查、启动验证(见 §二、§五 ~ §七) |
| 第二步 结论有效性 | 补充构建产物与运行版本的具体校验方式(见 §五) |
| 第五步 产出报告 | 提供交付报告模板(见 §八) |
| 第六步 置信度评估 | 追加审查专属检查项(见 §九) |
一、平台适配
read_file("{platform_map}") → 匹配当前 platform → 命中 reviewer 列 → use_skill {对应特化 skill};未命中则不加载,按通用审查流程执行。
特化 skill 覆盖构建验证、代码质量审查、启动验证、设备错误码处理等。 环境相关事实由平台特化 skill 自行持有并按其指引按需读取(通用扩展不承载任何平台环境知识)。
二、交付前检查清单
启动应用前,对本次流程生成 / 修改的代码逐项检查:
- 编译 / 构建成功
- 所有单元测试通过(Failure: 0)
- 无调试输出残留(
console.log等生产代码中不应有的调试代码) - 无硬编码的敏感信息(密钥、token、内网地址等)
- 错误状态兜底覆盖:网络异常、空数据、加载超时、接口报错
三、输入校验追加项
| 校验项 | 检查方式 | 缺失 / 异常时的动作 |
|---|---|---|
| 蓝图文档存在 | 检查文件 | 阻塞:向 PM 报告"缺少需求文档"。例外:PM 已在 spawn prompt 标注「未勾选计划者」时,以 upstream 注入的需求/小改动 标注为蓝图,不阻塞 |
coder-report.md 存在 |
检查文件 | 阻塞:向 PM 报告"缺少实现方案文档" |
tester-report.md 存在且 Tests run > 0 |
检查文件 + 读测试结果 | 阻塞:向 PM 报告"缺少测试报告"。例外:注册表 §三 判定为「用户未勾选前置维度」(depends_on 为空且 PM 已标注)→ 跳过本校验,自行执行必要验证,并在报告中标注「无上游测试报告,本维度自行验证」 |
| (清单式)各项报告齐全 | list_dir 核对 coder-report-task-{N}.md 与任务清单数量一致 |
阻塞:向 PM 报告"缺少 task 报告" |
清单式任务:验收范围 = 全部任务(读汇总
coder-report.md+ 各coder-report-task-*.md+tester-report.md)。
四、非本次生成代码的问题
检查中发现非本次流程生成的代码也存在清单中的问题(旧调试输出残留、硬编码敏感信息等):
- 列出问题清单:
ask_followup_question弹窗,标题"发现非本次生成的代码存在以下问题",逐条列出文件与描述 - 提供选项:「一键修复所有问题」/「选择性修复」/「跳过,只交付本次改动」
- 用户确认后执行,完成后再继续交付流程
任一项未通过且用户选择不修复 → 回到对应阶段修复,不强行交付。
五、编译 / 构建验证
审查阶段如需重新编译,按平台对应构建工具执行,BUILD SUCCESSFUL 后再继续质量审查。具体命令见平台特化 skill。
- 新鲜度:构建产物时间必须 ≥ 源码最近改动时间,否则先重建
- 运行版本:后续启动验证必须运行本次新产物(重启命令见平台特化 skill),不得沿用旧实例
六、代码质量审查
| 面 | 检查项 |
|---|---|
| 安全 | 无第三方包未经确认安装 / 无远程代码下载执行 / 无硬编码密钥或 token |
| 性能 | 无明显性能反模式(循环内重复计算、未清理的定时器 / 监听器);大量数据使用合理渲染策略 |
| 规范 | 命名符合规范 / 文件结构清晰 / 无冗余代码 |
| 可靠性 & 可观测性 | 外部调用有异常捕获不静默吞错;关键外部依赖不可用时有降级路径而非直接崩溃;可重试操作具备幂等性或明确重试策略;关键路径有日志或错误追踪可定位 |
| 过度设计 | use_skill ai-team-dev-tool-minimal-code,按其第五节标签逐条检查 |
可靠性 & 可观测性一节针对纯展示型改动(无外部依赖、无状态变更)可跳过。 过度设计审查只猎复杂度:
delete:死代码 / 未用灵活性 / 投机功能 ·stdlib:手写但标准库已有 ·native:依赖或代码做平台已能做的事 ·yagni:单实现抽象、没人设置的 config、单调用方分层 ·shrink:相同逻辑更少行数。结束输出net: -{N} lines possible,无可删则Lean already。 注意:正确性 bug、安全漏洞、性能问题不在此范围,转常规审查;单个冒烟测试 /assert自检是底线,永不标记删除。[特化]:平台特化 skill 会追加平台特有的安全 / 性能审查项。
七、启动验证
按平台对应方式启动并验证:
- 启动成功
- 检查无 crash / error
- 手动冒烟:核心用户流程可走通
- 启动失败 → 反馈 maker,不强行交付
send_message(type="message", recipient="coder-agent",
content="启动后 crash | 关键错误:{错误摘要} | 请定位修复",
summary="启动crash,请求修复")
八、交付报告模板
产出前加载
use_skill ai-team-tool-report(统一元信息模板)。
全部检查通过后写入 {artifact_dir}/reviewer-report.md:
# 交付报告
## 元信息 (统一模板,追加"状态"字段;清单式标注 覆盖任务: task-1 ~ task-N)
## 交付前检查清单 (逐项 [x])
## 编译验证
- 构建结果:{SUCCESS / FAILED} 产物时间:{…} 源码最近改动:{…}
## 启动验证
- 启动状态:{成功/失败} 日志检查:{无 crash / 有 crash} 冒烟测试:{通过/失败}
## 代码质量审查
- 安全 / 性能 / 规范 / 可靠性 / 过度设计:逐项结论
## 交付物清单
| 类型 | 路径 |
| 蓝图 | {artifact_dir}/designer-report.md |
| 实现方案 | {artifact_dir}/coder-report.md |
| 测试用例 | {artifact_dir}/tester-report.md |
## 总结 {一句话}
九、置信度追加检查项
在基座检查清单之外追加(每项 10 分,计入清单总分):
| # | 检查项 | 得分 |
|---|---|---|
| +1 | 编译 / 构建成功 | 0 / 10 |
| +2 | 启动验证成功(无 crash) | 0 / 10 |
追加后清单满分相应上调,主观补充仍为 40 分;阈值不变(≥ 85% 放行)。
配置
artifact_path: "{artifact_dir}/reviewer-report.md"
platform_map_skill_column: reviewer
depends_on_dimension: tester