Rust Skill(for Agents)
适用场景
- Rust 服务端、CLI、异步系统、系统工具
- tokio/axum/actix-web/sqlx/serde 等栈相关任务
- 任务主导词:
rust,tokio,cargo,clippy,thiserror,anyhow
强制执行
- 确认所有权与借用边界:任何数据流变更先确认 Move、Borrow、生命周期。
- 先做小补丁:优先修复最小路径,不提前引入新抽象。
- 错误语义分层:业务错误、参数错误、外部错误分开表达。
- 无回归测试不合入:新行为至少补充一个可复现测试。
编码原则
- 避免生产路径使用
unwrap/expect(仅测试/明确不可能时)。 - 借用/持有规则可读:跨
await避免持有重锁。 - 使用
thiserror定义业务错误,anyhow做应用层聚合。 - 不在核心逻辑散落
String与&str转换,统一边界。 - 并发场景首选所有权转移清晰、避免过度克隆。
Result链路保留上下文并在边界统一落地。
常用命令(仓库常见)
cargo fmt --checkcargo check --workspacecargo test --workspacecargo clippy --workspace -- -D warnings
架构与质量建议
- 模块边界保持稳定:修改公共接口时同步评估调用方影响。
- 异步调用与超时:外部调用加超时与重试策略。
- 性能优化:通过基准测试或
criterion评估后再改;避免过早优化。
Skill 协作
- Rust 基础任务只加载本 skill。
- 所有权、trait、unsafe、FFI 与性能任务补充
rust-pro。 - Tokio、任务生命周期、取消与背压任务补充
rust-async。 - 通用测试方法在任务明确涉及 testing 时加载
testing。
目录与项目事实
- 遵循现有 Cargo workspace 和 crate 成员关系。
- 绿地默认使用 Cargo 的
src/、tests/、examples/、benches/布局。 - 创建或移动文件时加载
project-structure,不复用历史客户项目目录作为全局模板。
反模式(避免)
panic!替代错误链传播。- 并发场景无约束 clone 大对象。
- 通过
Option/Result直接unwrap触发崩溃。 - 单文件承载业务、持久化和网络三层逻辑。
优先级
若通用建议与项目真实编译、依赖或更具体规则冲突,以项目事实为先并记录差异。