SuperAPI AI 工具集

rust-code-review

编程与开发

查看项目

更新于 10-15 21:48

技能介绍

用途:审查 Rust 代码改动(diff)及其调用方,而不是孤立片段或通用清单,优先发现会改变行为、违反不变量、泄露数据、死锁、意外 panic 或破坏公共 API 的缺陷。覆盖所有权、借用、生命周期与析构;unsafe 前置条件与安全封装健全性;错误传播、panic 路径、部分更新与回滚;并发、取消、锁顺序与任务生命周期;公共 API、语义化版本、feature、target 与 MSRV 兼容性;分配、克隆、阻塞、序列化与热路径成本;以及测试、文档、依赖和运行失败路径。用法上先建立审查契约:检查仓库说明、改动文件、符号、调用方、测试、清单、锁文件、MSRV、启用的 feature 和支持的目标,并使用如下命令:git diff --check、cargo metadata --format-version 1、cargo check --workspace --all-targets --all-features、cargo test --workspace --all-targets --all-features、cargo clippy --workspace --all-targets --all-features -- -D warnings。然后沿边界追踪行为,检查引用是否比属主或守卫存活更久、移动/克隆/分配是否改变成本或语义、Option 与 Result 是否保留缺失与失败信息、资源是否在提前返回/取消/panic/关闭时释放、事务与多步变更是否具备所需原子性、重试是否有界且安全、日志与错误是否泄露秘密。Rust 特有风险包括 unsafe 与 FFI(每个 unsafe API 需有文档化安全不变量,保持 unsafe 块最小并显式启用 unsafe_op_in_unsafe_fn,验证来源、有效性、对齐、初始化、别名、布局、展开、所有权转移与释放对称性,手写 Send/Sync 视为 unsafe 契约)、并发(锁顺序,guard 是否跨 .await、回调、阻塞 IO 或用户代码,要求有界队列、过载行为、取消归属、受监督任务与确定性关闭,区分 IO 并发与 CPU 并行)、错误处理(当用户或外部输入可达时标记 unwrap、expect、索引、断言、整数溢出假设与不可达分支,保留结构化库错误,不静默丢弃清理或回滚失败)、API 兼容性(可见性、trait bound、auto trait、对象安全、#[non_exhaustive]、feature 组合、target 特有代码与 MSRV,生成方法、序列化形状、错误变体和公共 feature 名都属 API 表面,持久化或传输格式需显式迁移)。性能需有依据,仅当改动路径上可能显著时才报告分配、克隆、锁或算法问题。测试与文档要求覆盖成功、非法输入、部分进展后失败、取消、并发、feature 与平台变体及公共示例。发现按严重程度排序并给出最紧文件行范围、具体失败条件或调用方路径、影响及最小修复或测试。限制:格式与 lint 配置应转 rust-style-clippy,深度 unsafe 或 ABI 分析转 rust-unsafe-ffi,并发设计转 rust-concurrency,依赖解析转 rust-cargo-build,测试实现转 rust-testing,API 形态决策转 rust-api-design。该技能不收集、存储或传输用户数据;查询私有注册表或外部评审系统前需确认授权。未运行命令不得声称通过,编译成功不等于行为正确,不得把纯风格偏好报告为正确性发现。