Agent skill
rust-borrow-checker
Debug Rust ownership, borrowing, and lifetime errors. Use when encountering borrow checker errors (E0382, E0502, E0597, etc.) or when code won't compile due to ownership issues.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/development/rust-borrow-checker
SKILL.md
<essential_principles> The Rust borrow checker enforces memory safety at compile time through three rules:
- Each value has exactly one owner - When the owner goes out of scope, the value is dropped
- You can have either one mutable reference OR any number of immutable references - Never both simultaneously
- References must always be valid - No dangling references, lifetimes must be sufficient
Understanding these rules is the key to fixing borrow checker errors. </essential_principles>
- Diagnose a borrow checker error (paste the error)
- Fix a lifetime annotation issue
- Fix an ownership transfer problem
- Fix a mutable/immutable borrow conflict
- Understand a specific error code
Paste the compiler error or describe the issue, then I'll route to the appropriate workflow.
<quick_fixes> Common solutions for frequent errors:
E0382 (use of moved value): Clone, use references, or restructure to avoid the move E0502 (cannot borrow as mutable, already borrowed as immutable): Separate the borrows into different scopes, or use interior mutability (RefCell, Mutex) E0499 (cannot borrow as mutable more than once): Split into separate scopes or use indices instead of references E0597 (borrowed value does not live long enough): Extend the lifetime of the owner, or use owned types instead E0506 (cannot assign, already borrowed): Complete borrow before assignment, or use Cell/RefCell </quick_fixes>
<reference_index>
Domain knowledge in references/:
Core Rules:
- ownership-rules.md - The three ownership rules with examples
- borrowing-rules.md - Borrowing and reference rules
- lifetime-syntax.md - Lifetime annotation patterns and elision
Problem Solving:
- common-errors.md - Detailed breakdown of E0XXX errors
- patterns.md - Clone, Rc, Arc, RefCell, Cow patterns </reference_index>
<workflows_index>
| Workflow | Purpose |
|---|---|
| diagnose-error.md | Systematically diagnose any borrow checker error |
| fix-lifetime.md | Resolve lifetime annotation issues |
| fix-ownership.md | Fix ownership transfer problems |
| fix-borrowing.md | Handle borrow conflicts |
| </workflows_index> |
<success_criteria> A fix is complete when:
cargo checkpasses without borrow checker errors- The solution doesn't introduce unnecessary cloning
- The fix maintains the original intent of the code
- Lifetimes are as simple as possible (rely on elision when possible) </success_criteria>
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?