用途
该技能用于对 Rust/WebAssembly 开源项目进行彻底的代码审查,目标是在合并前识别真正重要的问题:缺陷、安全漏洞、性能问题,以及可维护性方面的隐患,并给出可执行的反馈。
主要能力
审查按优先级分为三档:
- 关键(必须修复):安全漏洞(如 SQL 注入、路径穿越等)、数据损坏(竞态条件、丢失更新)、内存安全(unsafe 代码违规、未定义行为)、逻辑错误(结果错误、遗漏边界情况)。
- 重要(应当修复):错误处理(panic、静默失败)、性能问题(本可 O(n) 却写成 O(n²))、API 设计(破坏性变更、易用性差)、测试覆盖(缺少关键测试)。
- 建议(可选):风格一致性(命名、格式)、文档(缺失文档、注释不清)、简化(过度复杂的代码)、面向未来的可扩展性。
审查清单覆盖五个维度:
- 正确性:逻辑覆盖所有情况、处理边界情况(空值、null、最大值)、恰当处理错误条件、并发访问安全、必要的状态变更具备原子性。
- 安全:存在输入校验、无注入漏洞、密钥不被记录或暴露、文件路径经过校验、权限被检查。
- Rust 特有:无不必要的 clone、恰当使用引用与所有权、错误类型信息充分、库代码中不使用 unwrap()、unsafe 代码有文档且尽量少。
- 性能:热路径无不必要分配、使用合适的数据结构、异步代码中无阻塞、在有益处时使用缓存。
- 可维护性:代码可读且自解释、函数职责单一、依赖有正当理由、测试覆盖改动。
使用方式
反馈采用固定格式:
- 问题:Issue(简述)、Location(如
file.rs:123)、Severity(Critical | Important | Suggestion)、Problem(错在哪、为何重要)、Suggestion(如何修复),并附修改前后代码对比。 - 提问:Question、Location、Context。
- 通过:Looks good(具体指出做得好的地方)、Note(次要观察)。
每次 PR 审查需逐条使用固定的 Agent PR 检查清单:
- [ ] cargo fmt --check clean
- [ ] cargo clippy --all-targets --all-features clean
- [ ] 所有 #[allow(...)] 注解都有说明理由的注释
- [ ] 已添加/更新测试;包含边界情况与回归测试
- [ ] 若与性能相关:基准脚本 + 前后结果 + 构建配置说明
- [ ] 若涉及 unsafe:记录不变量 + 证明这些不变量的测试
- [ ] 面向公众的变更:docs/README/帮助文本已更新
对应的验证命令:
# Format check
cargo fmt --check
# Clippy check (treat warnings as errors)
RUSTFLAGS="-D warnings" cargo clippy --all-targets --all-features
# Run tests
cargo test --all-features
# Run benchmarks (if perf-related)
cargo bench
审查工作流为:理解上下文(读 PR 描述、理解要解决的问题、查看相关 issue)→ 运行检查清单 → 高层审查(方案是否合理、有无架构问题、范围是否恰当)→ 逐文件详细审查 → 汇总反馈(归类相关评论、排定优先级、明确阻塞项与建议项)。
针对面向用户的 CLI 工具与库,还需检查:错误信息是否说明失败原因与修复方法、是否避免无解释的晦涩错误码、I/O 错误是否包含文件路径、常见错误是否给出建议;--help 是否完整准确、复杂命令是否有示例、新功能是否更新 man page 或 README、破坏性变更是否记入 CHANGELOG;UTF-8 错误是否显式处理、文件不存在与权限错误是否可操作、边界情况(空文件、二进制输入)行为是否有文档。
适用场景
适用于 Rust/WebAssembly 开源项目的 PR 审查,尤其是需要统一审查标准、在合并前拦截安全与正确性问题、以及面向用户的 CLI 工具与库的体验审查。
限制与约束
- 聚焦重要问题而非吹毛求疵;每个问题只评论一次,不重复。
- 需明确指出位置,提供解决方案而非只指出问题;在作者方案合理时予以尊重。
- 必须始终运行 Agent PR 检查清单;对改动代码缺少测试、未记录文档的 unsafe 代码予以阻塞。
- 成功指标包括:合并前发现问题、反馈清晰可执行、审查周转合理、代码质量随时间提升、批准前所有清单项已验证、错误信息对用户可操作、面向用户的代码中无静默 I/O 或 UTF-8 失败。
暂未提供
该技能的安装方式、运行环境要求、支持的平台与收费信息在资料中暂未提供。