一键导入
rust-best-practices
Rust 代码审查规则。当审查 .rs 文件时套用。检查 unsafe 使用、错误处理(unwrap/panic)、所有权与借用、unsafe 块 SAFETY 注释、安全漏洞。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Rust 代码审查规则。当审查 .rs 文件时套用。检查 unsafe 使用、错误处理(unwrap/panic)、所有权与借用、unsafe 块 SAFETY 注释、安全漏洞。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Angular 代码审查规则。当审查 Angular 项目的 .ts 文件(组件/服务/Directive)时套用。检查 DI、RxJS 订阅管理、Signals、Change Detection、模板安全([innerHTML] XSS)。
跨语言通用代码质量规则。当没有匹配的语言特定 skill 时作为 fallback 使用。适用于函数复杂度、命名规范、死代码、魔法数字。
Go 代码审查规则。当审查 .go 文件时套用。检查错误处理、goroutine 生命周期、接口设计、命名惯例、defer 使用。
Java 代码审查规则。当审查 .java 文件时套用。检查异常处理、资源管理(try-with-resources)、Optional 使用、Stream API、安全漏洞。
Python 代码审查规则。当审查 .py 文件时套用。检查类型注解、异常处理、命名规范、函数复杂度、安全漏洞(eval/exec/pickle/yaml.load/os.system)。
React/Next.js 代码审查规则。当审查 JSX/TSX 文件(React 项目)时套用。检查组件设计、Hooks 使用、状态管理、性能、安全(XSS)。
| name | rust_best_practices |
| description | Rust 代码审查规则。当审查 .rs 文件时套用。检查 unsafe 使用、错误处理(unwrap/panic)、所有权与借用、unsafe 块 SAFETY 注释、安全漏洞。 |
| category | style |
| reviewer_type | style |
| languages | ["rust"] |
.rs 文件(非测试文件)#[cfg(test)] 模块、tests/ 目录)→ unwrap() 在测试中是惯用法;测试 assist functions 可放宽复杂度examples/)→ 为了教学目的可能故意简化extern "C" 块)→ unsafe 是必需的;遵循 C 的惯例target/, out/)→ 不审查macro_rules!)→ 宏内部的复杂性是内在的std::process::Command::new(user_input) — 用户控制命令名 → error.arg("-c").arg(userInput) 配合 shell → errorunsafe { ... } 没有 // SAFETY: 注释 → warningtransmute 在非 FFI 代码中 → warning(优先用 safe cast)lib.rs): 禁止 unwrap() / expect() / panic! → 用 ? 或 matchunwrap() 在初始化阶段可接受,请求处理路径不可接受Result 不可用 let _ = 吞掉std::error::Error 用于自定义错误.clone() → 优先传引用 &TVec<T> 而调用方只需遍历 → 返回 &[T] 或 impl IteratorRc<RefCell<T>> 不是设计问题的解决方案for + pushif let / while let 替代单臂 match#[derive(Debug, Clone, PartialEq, Eq, Hash)]True Positive: 代码在生产路径上会导致 panic、unsafety 或违反 Rust 安全保证。Confidence > 0.7。
False Positive:
unwrap() 在 #[test] 函数中(这是惯用法)unsafe 在 FFI 边界(这是必需的)unwrap() 在 main() 或初始化代码中(程序无法恢复时 panic 是合理的)clone() 是为了满足 borrow checker 且性能可接受panic! 在 build.rs 或编译时代码中