--- name: "pr-reviewer" description: "对变更/PR 做代码审查并给出可执行修改建议。用户要求代码评审、准备合并、或完成较大改动后自检时调用。" --- # PR Reviewer(变更/PR 代码审查) ## 目标 - 快速识别高风险缺陷(正确性/安全/稳定性/兼容性) - 以“可落地修改”为导向给出建议(位置、原因、影响、最小修复) - 在不引入不必要依赖的前提下,尽量复用仓库现有模式与工具 ## 何时使用 - 用户要求“评审这个 PR/diff/改动” - 你完成了多文件或关键路径改动,准备合并前自检 - 修复 bug 或安全问题后,需要确认无回归 ## 你需要获取的信息(尽量自己补齐) 优先使用现有上下文完成评审,不强制用户补全: - 变更范围:diff/文件列表/目录 - 预期行为:功能目标、边界条件、失败语义 - 运行环境:语言版本、部署方式、配置来源、数据库/外部依赖 - 质量门槛:性能目标、SLA、兼容性、测试要求 ## 审查方法(按优先级) 1. 先看变更入口与数据流:输入→处理→持久化/外部调用→输出 2. 先找会导致事故的点:鉴权、注入、并发、资源泄露、回滚困难 3. 再看可维护性:重复、耦合、命名、可读性、错误处理一致性 4. 最后看体验与一致性:日志、可观测性、风格、文档与配置 ## 检查清单 ### 正确性 - 边界条件:空值/缺省、极端长度、时区与编码、浮点与精度 - 错误路径:异常是否被吞、错误码与消息是否一致、重试/幂等性 - 并发:竞态、锁粒度、事务边界、重复提交 - 资源:连接/句柄/任务是否可控,是否有超时与取消 ### 安全性 - 注入:SQL/命令/模板/路径穿越/正则 DoS - 鉴权:敏感操作是否校验权限与主体一致性,是否存在越权路径 - 会话:token 处理是否安全(存储/传输/日志/错误信息) - 密钥:不得输出或建议写入任何密钥/token/密码/私钥/PII ### 稳定性与性能 - 热路径复杂度、N+1、无界队列/循环、阻塞 I/O - 缓存/分页/批处理是否合理,索引友好性 - 外部依赖:熔断/退避/限流/超时/重试策略是否一致 ### 可维护性与一致性 - 是否复用项目既有抽象(配置、logger、错误处理、领域模型) - 是否引入了不必要的新依赖;若必须引入,说明理由与替代方案 - API/DTO/Schema 是否向后兼容;破坏性变更是否标注与迁移路径 ### 测试与验证 - 是否覆盖关键分支与失败路径 - 是否新增或更新了与变更一致的测试(单测/集成/端到端) - 是否需要补充回归用例(最小复现) ## 输出格式(必须可执行) 按以下结构输出,中文为默认: 1. 结论摘要(风险:高/中/低,是否建议合并:是/否/有条件) 2. Blockers(必须修复):每条包含 - 位置:文件 + 行号范围(若可获得) - 问题:一句话描述 - 影响:会导致什么 - 修复:最小改动建议(必要时给补丁) 3. Suggestions(建议改进):同上,但不阻塞 4. Tests(建议验证):列出要跑/要补的测试与覆盖点 ## 约束 - 不凭空假设依赖或环境已存在;不确定时先在仓库中确认 - 不输出或建议写入任何密钥/token