/rust-build
Fix Rust build errors, borrow checker issues, and dependency problems incrementally. Invokes the rust-build-resolver agent for minimal, surgical fixes.
> /plugin marketplace add affaan-m/ECC > /plugin install ecc@ecc
How it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/rust-build
Context preview
What this command does when you run it.
Fix Rust build errors, borrow checker issues, and dependency problems incrementally. Invokes the rust-build-resolver agent for minimal, surgical fixes.
Command definition
rust-build.mddescription: Fix Rust build errors, borrow checker issues, and dependency problems incrementally. Invokes the rust-build-resolver agent for minimal, surgical fixes.
Rust Build and Fix
This command invokes the **rust-build-resolver** agent to incrementally fix Rust build errors with minimal changes.
What This Command Does
1. **Run Diagnostics**: Execute `cargo check`, `cargo clippy`, `cargo fmt --check` 2. **Parse Errors**: Identify error codes and affected files 3. **Fix Incrementally**: One error at a time 4. **Verify Each Fix**: Re-run `cargo check` after each change 5. **Report Summary**: Show what was fixed and what remains
When to Use
Use `/rust-build` when:
- `cargo build` or `cargo check` fails with errors
- `cargo clippy` reports warnings
- Borrow checker or lifetime errors block compilation
- Cargo dependency resolution fails
- After pulling changes that break the build
Diagnostic Commands Run
# Primary build check
cargo check 2>&1
# Lints and suggestions
cargo clippy -- -D warnings 2>&1
# Formatting check
cargo fmt --check 2>&1
# Dependency issues
cargo tree --duplicates
# Security audit (if available)
if command -v cargo-audit >/dev/null; then cargo audit; else echo "cargo-audit not installed"; fi
Example Session
User: /rust-build
Agent:
# Rust Build Resolution
## Initial Diagnostics
```bash
$ cargo check
error[E0502]: cannot borrow `map` as mutable because it is also borrowed as immutable
--> src/service/cache.rs:25:5
error[E0308]: mismatched types
--> src/handler/api.rs:42:12
error[E0425]: cannot find value `db` in this scope
--> src/handler/api.rs:58:9
Errors found: 3
Fix 1: Borrow Checker Error
File: src/service/cache.rs:25 Error: E0502 — cannot borrow `map` as mutable because also borrowed as immutable Cause: Immutable borrow still active during mutable insert
// Changed: restructured to end immutable borrow before mutable access
if !map.contains_key("key") {
map.insert("key".into(), default);
}$ cargo check
# 2 errors remaining
Fix 2: Type Mismatch
File: src/handler/api.rs:42 Error: E0308 — mismatched types: expected `usize`, found `&str`
// Changed
let count = params.get("count");
// To
let count: usize = params.get("count")
.and_then(|s| s.parse().ok())
.unwrap_or(0);$ cargo check
# 1 error remaining
Fix 3: Unresolved Name
File: src/handler/api.rs:58 Error: E0425 — cannot find value `db` in this scope Cause: Missing import
// Added
use crate::db;
$ cargo check
# Build successful!
Final Verification
$ cargo clippy -- -D warnings
# No warnings
$ cargo test
running 6 tests
test service::cache::tests::test_insert ... ok
test service::cache::tests::test_get ... ok
test handler::api::tests::test_parse_count ... ok
test handler::api::tests::test_missing_count ... ok
test handler::api::tests::test_db_import ... ok
test handler::api::tests::test_response ... ok
test result: ok. 6 passed; 0 failed; 0 ignored
Summary
| Metric | Count | |--------|-------| | Build errors fixed | 3 | | Clippy warnings fixed | 0 | | Files modified | 2 | | Remaining issues | 0 |
Build Status: SUCCESS
## Common Errors Fixed
| Error | Typical Fix |
|-------|-------------|
| `cannot borrow as mutable` | Restructure to end immutable borrow first; clone only if justified |
| `does not live long enough` | Use owned type or add lifetime annotation |
| `cannot move out of` | Restructure to take ownership; clone only as last resort |
| `mismatched types` | Add `.into()`, `as`, or explicit conversion |
| `trait X not implemented` | Add `#[derive(Trait)]` or implement manually |
| `unresolved import` | Add to Cargo.toml or fix `use` path |
| `cannot find value` | Add import or fix path |
## Fix Strategy
1. **Build errors first** - Code must compile
2. **Clippy warnings second** - Fix suspicious constructs
3. **Formatting third** - `cargo fmt` compliance
4. **One fix at a time** - Verify each change
5. **Minimal changes** - Don't refactor, just fix
## Stop Conditions
The agent will stop and report if:
- Same error persists after 3 attempts
- Fix introduces more errors
- Requires architectural changes
- Borrow checker error requires redesigning data ownership
## Related Commands
- `/rust-test` - Run tests after build succeeds
- `/rust-review` - Review code quality
- `verification-loop` skill - Full verification loop
## Related
- Agent: `agents/rust-build-resolver.md`
- Skill: `skills/rust-patterns/`
Read more
description: Fix Rust build errors, borrow checker issues, and dependency problems incrementally. Invokes the rust-build-resolver agent for minimal, surgical fixes.
Rust Build and Fix
This command invokes the **rust-build-resolver** agent to incrementally fix Rust build errors with minimal changes.
What This Command Does
1. **Run Diagnostics**: Execute `cargo check`, `cargo clippy`, `cargo fmt --check` 2. **Parse Errors**: Identify error codes and affected files 3. **Fix Incrementally**: One error at a time 4. **Verify Each Fix**: Re-run `cargo check` after each change 5. **Report Summary**: Show what was fixed and what remains
When to Use
Use `/rust-build` when:
- `cargo build` or `cargo check` fails with errors
- `cargo clippy` reports warnings
- Borrow checker or lifetime errors block compilation
- Cargo dependency resolution fails
- After pulling changes that break the build
Diagnostic Commands Run
# Primary build check cargo check 2>&1 # Lints and suggestions cargo clippy -- -D warnings 2>&1 # Formatting check cargo fmt --check 2>&1 # Dependency issues cargo tree --duplicates # Security audit (if available) if command -v cargo-audit >/dev/null; then cargo audit; else echo "cargo-audit not installed"; fi
Example Session
User: /rust-build Agent: # Rust Build Resolution ## Initial Diagnostics ```bash $ cargo check error[E0502]: cannot borrow `map` as mutable because it is also borrowed as immutable --> src/service/cache.rs:25:5 error[E0308]: mismatched types --> src/handler/api.rs:42:12 error[E0425]: cannot find value `db` in this scope --> src/handler/api.rs:58:9
Errors found: 3
Fix 1: Borrow Checker Error
File: src/service/cache.rs:25 Error: E0502 — cannot borrow `map` as mutable because also borrowed as immutable Cause: Immutable borrow still active during mutable insert
// Changed: restructured to end immutable borrow before mutable access
if !map.contains_key("key") {
map.insert("key".into(), default);
}$ cargo check # 2 errors remaining
Fix 2: Type Mismatch
File: src/handler/api.rs:42 Error: E0308 — mismatched types: expected `usize`, found `&str`
// Changed
let count = params.get("count");
// To
let count: usize = params.get("count")
.and_then(|s| s.parse().ok())
.unwrap_or(0);$ cargo check # 1 error remaining
Fix 3: Unresolved Name
File: src/handler/api.rs:58 Error: E0425 — cannot find value `db` in this scope Cause: Missing import
// Added use crate::db;
$ cargo check # Build successful!
Final Verification
$ cargo clippy -- -D warnings # No warnings $ cargo test running 6 tests test service::cache::tests::test_insert ... ok test service::cache::tests::test_get ... ok test handler::api::tests::test_parse_count ... ok test handler::api::tests::test_missing_count ... ok test handler::api::tests::test_db_import ... ok test handler::api::tests::test_response ... ok test result: ok. 6 passed; 0 failed; 0 ignored
Summary
| Metric | Count | |--------|-------| | Build errors fixed | 3 | | Clippy warnings fixed | 0 | | Files modified | 2 | | Remaining issues | 0 |
Build Status: SUCCESS
## Common Errors Fixed | Error | Typical Fix | |-------|-------------| | `cannot borrow as mutable` | Restructure to end immutable borrow first; clone only if justified | | `does not live long enough` | Use owned type or add lifetime annotation | | `cannot move out of` | Restructure to take ownership; clone only as last resort | | `mismatched types` | Add `.into()`, `as`, or explicit conversion | | `trait X not implemented` | Add `#[derive(Trait)]` or implement manually | | `unresolved import` | Add to Cargo.toml or fix `use` path | | `cannot find value` | Add import or fix path | ## Fix Strategy 1. **Build errors first** - Code must compile 2. **Clippy warnings second** - Fix suspicious constructs 3. **Formatting third** - `cargo fmt` compliance 4. **One fix at a time** - Verify each change 5. **Minimal changes** - Don't refactor, just fix ## Stop Conditions The agent will stop and report if: - Same error persists after 3 attempts - Fix introduces more errors - Requires architectural changes - Borrow checker error requires redesigning data ownership ## Related Commands - `/rust-test` - Run tests after build succeeds - `/rust-review` - Review code quality - `verification-loop` skill - Full verification loop ## Related - Agent: `agents/rust-build-resolver.md` - Skill: `skills/rust-patterns/`
Your agent can write code, but ECC gives it a coordinated engineering system and toolbox: it plans before it builds, verifies changes with tests, reviews its own work from a fresh context, remembers what matters, and turns repeated wins into reusable skills
Repo: affaan-m/ECC
Other commands on ecc.
- /add-language-rules
Workflow command scaffold for add-language-rules in everything-claude-code.
Open command - /database-migration
Workflow command scaffold for database-migration in everything-claude-code.
Open command - /feature-development
Workflow command scaffold for feature-development in everything-claude-code.
Open command - /aside
Answer a quick side question without interrupting or losing context from the current task. Resume work automatically after answering.
Open command - /auto-update
Pull the latest ECC repo changes and reinstall the current managed targets.
Open command - /build-fix
Detect the project build system and incrementally fix build/type errors with minimal safe changes.
Open command

