exomind-team/exomind/m03-mutability
Claude Code and agent skill by exomind-team/exomind
Trust tier 3
- community
Source check pending
Checking that the SKILL.md file is still in the repository.
CRITICAL: Use for mutability issues. Triggers: E0596, E0499, E0502, cannot borrow as mutable, already borrowed as immutable, mut, &mut, interior mutability, Cell, RefCell, Mutex, RwLock, 可变性, 内部可变性, 借用冲突
Install
npx vskill@latest install exomind-team/exomind/m03-mutabilitySKILL.md
Mutability
Layer 1: Language Mechanics
Core Question
Why does this data need to change, and who can change it?
Before adding interior mutability, understand:
- Is mutation essential or accidental complexity?
- Who should control mutation?
- Is the mutation pattern safe?
Error → Design Question
| Error | Don't Just Say | Ask Instead | |
|---|---|---|---|
| E0596 | "Add mut" | Should this really be mutable? | |
| E0499 | "Split borrows" | Is the data structure right? | |
| E0502 | "Separate scopes" | Why do we need both borrows? | |
| RefCell panic | "Use try_borrow" | Is runtime check appropriate? |
Thinking Prompt
Before adding mutability:
- Is mutation necessary?
- Maybe transform → return new value
- Maybe builder → construct immutably
- Who controls mutation?
- External caller →
&mut T - Internal logic → interior mutability
- Concurrent access → synchronized mutability
- What's the thread context?
- Single-thread → Cell/RefCell
- Multi-thread → Mutex/RwLock/Atomic
Trace Up ↑
When mutability conflicts persist:
| Persistent Error | Trace To | Question | |
|---|---|---|---|
| Repeated borrow conflicts | m09-domain | Should data be restructured? | |
| RefCell in async | m07-concurrency | Is Send/Sync needed? | |
| Mutex deadlocks | m07-concurrency | Is the lock design right? |
Trace Down ↓
From design to implementation:
Borrow Rules
Quick Reference
| Pattern | Thread-Safe | Runtime Cost | Use When | |
|---|---|---|---|---|
&mut T | N/A | Zero | Exclusive mutable access | |
Cell<T> | No | Zero | Copy types, no refs needed | |
RefCell<T> | No | Runtime check | Non-Copy, need runtime borrow | |
Mutex<T> | Yes | Lock contention | Thread-safe mutation | |
RwLock<T> | Yes | Lock contention | Many readers, few writers | |
Atomic* | Yes | Minimal | Simple types (bool, usize) |
Error Code Reference
| Error | Cause | Quick Fix | |
|---|---|---|---|
| E0596 | Borrowing immutable as mutable | Add mut or redesign | |
| E0499 | Multiple mutable borrows | Restructure code flow | |
| E0502 | &mut while & exists | Separate borrow scopes |
Interior Mutability Decision
| Scenario | Choose | |
|---|---|---|
| T: Copy, single-thread | Cell<T> | |
| T: !Copy, single-thread | RefCell<T> | |
| T: Copy, multi-thread | AtomicXxx | |
| T: !Copy, multi-thread | Mutex<T> or RwLock<T> | |
| Read-heavy, multi-thread | RwLock<T> | |
| Simple flags/counters | AtomicBool, AtomicUsize |
Anti-Patterns
| Anti-Pattern | Why Bad | Better | |
|---|---|---|---|
| RefCell everywhere | Runtime panics | Clear ownership design | |
| Mutex for single-thread | Unnecessary overhead | RefCell | |
| Ignore RefCell panic | Hard to debug | Handle or restructure | |
| Lock inside hot loop | Performance killer | Batch operations |
Related Skills
| When | See | |
|---|---|---|
| Smart pointer choice | m02-resource | |
| Thread safety | m07-concurrency | |
| Data structure design | m09-domain | |
| Anti-patterns | m15-anti-pattern |
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/m03-mutability/SKILL.md
Popularity
- Repository stars
- 4
- 7-day trend score
- 0
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/exomind-team/exomind/m03-mutability)