该技能用于审查或重构已存在、且带有"外来心智模型"的 Rust 代码,例如从 Java/C# 带来的面向对象与企业式仪式、从垃圾回收语言带来的共享对象图、异常控制流、C 风格循环与哨兵值、分离式 Promise 并发等。它先指出代码所暴露的错误范式,再给出将其收敛回地道 Rust 的重构建议。
每条规则都以真实生产代码库 codex-rs(github.com/openai/codex 的 codex-rs/ 工作区,约 125 个 crate、约 2500 个 Rust 文件)为依据:规则的"正确"一侧即该代码库的实际做法,约束证据来自其工作区 lint 配置(unwrap_used、redundant_clone、needless_collect、await_holding_lock 等约 30 条被拒绝),例外则是该库真实保留的少数情形,因此"何时不适用"并非假设。对能力较强的模型本就能做对的事不设规则。
适用场景包括:按架构而非仅风格审查或重构现有 Rust;拆解移植来的仪式代码(单实现的依赖注入 trait、用 Deref 模拟继承、无状态的 *Manager/*Service 结构体、getter/setter 样板、为每个结构体都加 builder);理顺被对抗的所有权(为通过编译而到处 .clone()、Rc<RefCell<T>> 对象图、自引用结构体尝试);修复贫血数据(布尔/字符串状态机、并列的 Option 字段、承载领域含义的裸原始类型、逃出 serde 边界的 Option 巨构体);移除异常式流程(对预期失败使用 unwrap、哨兵返回值、用 catch_unwind 当 try/catch、在库 API 表面用 anyhow);消除习惯性间接(为封闭集合用 Box<dyn Trait>、装箱回调参数、索引循环与逐步 collect() 链);纠正移植来的并发习惯(在 async fn 中阻塞调用、跨 .await 持有锁守卫、对 CPU 密集型工作做异步任务扇出、fire-and-forget 的 tokio::spawn)。
规则分为七类:企业仪式与伪面向对象(arch-)、对抗而非善用所有权(own-)、贫血与字符串化数据(type-)、异常式控制流(flow-)、习惯性动态分发(dyn-)、命令式迭代(iter-)、来自其他运行时的并发(conc-)。使用时,在审查代码中出现相应气味时读取对应参考文件;每条规则会指出外来模式、解释 Rust 为何排斥它,并用 codex-rs 的真实命名与固定提交的永久链接展示重构。在变更预算允许下优先选择最彻底的重构。示例均可在 Rust 1.86(2021 edition)编译。
如需在编写新 Rust 时决定"该用哪种模式、哪个 crate、哪种纪律",应改用配套的 openai-codex-rust-patterns 技能;本技能是其诊断式、扁平化层的对应物。资料未提供收费、价格或平台限制信息。