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 with Tessl CLI
npx tessl i github:actionbook/rust-skills --skill m03-mutability82
Does it follow best practices?
If you maintain this skill, you can automatically optimize it using the tessl CLI to improve its score:
npx tessl skill review --optimize ./path/to/skillValidation for skill structure
Discovery
72%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
This description excels at trigger term coverage with specific error codes, compiler messages, and multilingual support, making it highly discoverable. However, it lacks concrete action verbs describing what the skill actually does (diagnose, fix, explain, refactor) and reads more like a keyword list than a complete skill description.
Suggestions
Add concrete actions at the start describing what the skill does, e.g., 'Diagnoses and fixes Rust mutability and borrowing errors' before the trigger list.
Restructure to follow the pattern: '[What it does]. Use when [triggers]' rather than leading with 'CRITICAL: Use for'.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (mutability issues) and lists relevant concepts (Cell, RefCell, Mutex, RwLock, interior mutability) but doesn't describe concrete actions like 'diagnose', 'fix', or 'refactor'. | 2 / 3 |
Completeness | The 'when' is partially addressed via 'CRITICAL: Use for mutability issues' and 'Triggers:', but there's no explicit 'what does this do' - it lists triggers without explaining what actions the skill performs. | 2 / 3 |
Trigger Term Quality | Excellent coverage of natural trigger terms including error codes (E0596, E0499, E0502), exact error messages ('cannot borrow as mutable', 'already borrowed as immutable'), Rust types, and even Chinese translations (可变性, 内部可变性, 借用冲突). | 3 / 3 |
Distinctiveness Conflict Risk | Highly distinctive with specific Rust error codes, exact compiler messages, and specialized types (Cell, RefCell, Mutex, RwLock) that clearly carve out a niche for Rust mutability/borrowing issues. | 3 / 3 |
Total | 10 / 12 Passed |
Implementation
85%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This is a well-structured diagnostic skill that excels at guiding decision-making around Rust mutability patterns. Its strength lies in the clear decision tables and trace-up/trace-down navigation. The main weakness is the lack of executable code examples - while the conceptual guidance is excellent, adding concrete code snippets would make it more immediately actionable.
Suggestions
Add minimal executable code examples for each interior mutability type (Cell, RefCell, Mutex) showing basic usage patterns
Include a concrete before/after code example for at least one common error (e.g., E0502 borrow conflict resolution)
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Extremely lean and efficient. Uses tables and compact notation throughout. No unnecessary explanations of concepts Claude already knows - assumes competence with Rust fundamentals while providing precise decision guidance. | 3 / 3 |
Actionability | Provides clear decision tables and error mappings, but lacks executable code examples. The guidance is conceptual rather than copy-paste ready - no actual Rust code snippets showing Cell/RefCell/Mutex usage patterns. | 2 / 3 |
Workflow Clarity | Clear decision trees with 'Trace Up' and 'Trace Down' sections providing explicit navigation paths. The 'Thinking Prompt' offers a structured 3-step process for evaluating mutability needs before implementation. | 3 / 3 |
Progressive Disclosure | Well-organized with clear sections and tables. References to related skills (m02-resource, m07-concurrency, etc.) are one level deep and clearly signaled. Content is appropriately structured for a reference skill. | 3 / 3 |
Total | 11 / 12 Passed |
Validation
75%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 12 / 16 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
description_trigger_hint | Description may be missing an explicit 'when to use' trigger hint (e.g., 'Use when...') | Warning |
metadata_version | 'metadata' field is not a dictionary | Warning |
license_field | 'license' field is missing | Warning |
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 12 / 16 Passed | |
Table of Contents
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.