ワンクリックで
rust-workflow
Rust 项目工作流增强 - 覆盖 Rust 特有的所有权、生命周期、错误处理模式 自动叠加到 agentic-workflow 上,提供语言专属指导
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Rust 项目工作流增强 - 覆盖 Rust 特有的所有权、生命周期、错误处理模式 自动叠加到 agentic-workflow 上,提供语言专属指导
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
智能体工作流:单入口设计,所有任务从 router 开始 TRIGGER when: 开发、修复、规划、分析、审查、调研、实施 DO NOT TRIGGER when: 简单闲聊
完成阶段 - 收尾工作、自反思和状态更新 当前版本对齐 .workflow_state.json 状态管理 v1.2: 新增可选 learn 技能触发建议与总结摘要复用
调试阶段 - 系统化问题定位和修复 5步调试法:闻味道 → 揪头发 → 照镜子 → 执行 → 复盘 包含压力升级机制和7项检查清单 v1.2: 强化 context-aware 激活、memory_hints 复用与失败升级事件记录
执行阶段 - TDD 开发循环和代码实现 当前版本对齐 .specs/<feature>/tasks.md、.contract.json、run_tracker.py 和 step_recorder.py Reflexion 强化: mid-task reflection checkpoint + AgentSys 子 agent schema 验证 v1.3: 新增 memory_hints/memory_query/memory_intent 复用与阶段摘要回流
深度探索阶段 - 苏格拉底式追问挖掘用户深层想法 通过迭代追问发现谬误、局限、潜能和潜意识中的构思
产品咨询阶段 - 在开始编码前重构产品想法 问正确的问题,确保理解用户真正想要什么
| name | rust-workflow |
| version | 1.0.0 |
| status | implemented |
| description | Rust 项目工作流增强 - 覆盖 Rust 特有的所有权、生命周期、错误处理模式 自动叠加到 agentic-workflow 上,提供语言专属指导 |
| tags | ["language","rust","workflow"] |
| requires | {"tools":["Bash","Read","Write","Grep"]} |
当检测到 Rust 项目时(存在 Cargo.toml),此 skill 的规则叠加。
test -f Cargo.toml && echo "Rust project"
NO unwrap() IN LIBRARY CODE — 只有 main/tests/examples 可用 unwrap(),库代码用 ? 传播
NO UNSAFE WITHOUT COMMENT — unsafe 块必须有安全性注释说明为什么这是安全的
CLIPPY MUST PASS — cargo clippy 必须无 warnings(-D warnings 模式)
NO CLONE TO FIX BORROW — 不能仅为了绕过 borrow checker 而 clone,先理解所有权
cargo build # 编译
cargo test # 测试
cargo clippy -- -D warnings # Lint(视 warning 为 error)
cargo fmt --check # 格式检查
// ✅ 正确 — 用 ? 传播错误
fn read_config(path: &str) -> Result<Config, Box<dyn std::error::Error>> {
let content = std::fs::read_to_string(path)?;
let config: Config = serde_json::from_str(&content)?;
Ok(config)
}
// ❌ 错误 — unwrap 会 panic
fn read_config(path: &str) -> Config {
let content = std::fs::read_to_string(path).unwrap();
serde_json::from_str(&content).unwrap()
}
// 需要多次使用时 — 借用而非移动
fn print_name(name: &str) { println!("{name}"); } // ✅
fn print_name(name: String) { println!("{name}"); } // ❌(消耗所有权)
// 可选修改时 — &mut 借用
fn append_suffix(s: &mut String) { s.push_str("_suffix"); } // ✅
# Step 1 强制诊断
cargo test -- --nocapture 2>&1 | tail -60 # 测试失败(含 println 输出)
cargo build 2>&1 | head -40 # 编译错误(borrow/lifetime)
cargo clippy 2>&1 | head -30 # Lint 警告
rustc --version && cargo --version # 版本信息
| 问题 | 症状 | 修复 |
|---|---|---|
| 生命周期不够长 | borrowed value does not live long enough | 检查数据所有者,考虑 Arc<T> |
| 多重可变借用 | cannot borrow as mutable more than once | 分拆借用作用域,或用 RefCell |
| 移动后使用 | value used here after move | 在移动前 clone 或改为借用 |
Send 未实现 | cannot send ... between threads | 用 Arc<Mutex<T>> 包装 |
| 异步 trait 未支持 | the trait cannot be made into an object | 使用 async-trait crate |
unwrap() / expect() 在库代码中(grep -rn "\.unwrap()" src/)unsafe 块有安全注释cargo clippy -- -D warnings 通过cargo fmt --check 通过///)