CtrlK
BlogDocsLog inGet started
Tessl Logo

m03-mutability

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, 可变性, 内部可变性, 借用冲突

63

Quality

74%

Does it follow best practices?

Impact

No eval scenarios have been run

SecuritybySnyk

Passed

No known issues

Optimize this skill with Tessl

npx tessl skill review --optimize ./skills/m03-mutability/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

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.

The description excels at trigger term coverage and distinctiveness, providing comprehensive keywords including error codes, type names, natural language error messages, and multilingual terms. However, it fails to describe what the skill actually does—it only states it's 'for mutability issues' without specifying concrete actions like diagnosing, fixing, or explaining. Adding explicit capability verbs would significantly improve it.

Suggestions

Add concrete action verbs describing what the skill does, e.g., 'Diagnoses and fixes Rust mutability and borrowing errors' instead of just 'Use for mutability issues'.

Restructure to separate 'what it does' from 'when to use it', e.g., 'Diagnoses Rust borrow checker errors, suggests refactoring for interior mutability patterns, and fixes mutable/immutable borrow conflicts. Use when...'

DimensionReasoningScore

Specificity

The description names the domain (mutability issues in Rust) and references specific error codes (E0596, E0499, E0502) and types (Cell, RefCell, Mutex, RwLock), but it doesn't describe concrete actions the skill performs—only what it triggers on. There's no mention of what it actually does (e.g., 'diagnoses', 'fixes', 'refactors').

2 / 3

Completeness

The 'when' is well-covered with explicit trigger terms and error codes. However, the 'what' is weak—it says 'Use for mutability issues' but never explains what the skill actually does about those issues (diagnose, fix, explain, refactor). The description focuses almost entirely on triggers rather than capabilities.

2 / 3

Trigger Term Quality

Excellent coverage of natural trigger terms including Rust compiler error codes (E0596, E0499, E0502), natural language phrases ('cannot borrow as mutable', 'already borrowed as immutable'), key Rust types (Cell, RefCell, Mutex, RwLock), and even Chinese translations (可变性, 内部可变性, 借用冲突). These are terms users would naturally use when encountering these issues.

3 / 3

Distinctiveness Conflict Risk

Highly distinctive with very specific Rust compiler error codes, Rust-specific types, and a narrow domain (mutability/borrowing issues). This is unlikely to conflict with other skills due to the precise technical niche it occupies.

3 / 3

Total

10

/

12

Passed

Implementation

77%

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 conciseness and workflow clarity through effective use of tables and decision trees. Its main weakness is the lack of concrete, executable Rust code examples—given that it's triggered by specific compiler errors (E0596, E0499, E0502), showing before/after code transformations would make it significantly more actionable. The cross-references to other skills are useful for navigation but cannot be verified without bundle files.

Suggestions

Add concrete before/after Rust code examples for at least the top 2-3 error codes (E0596, E0499, E0502), showing the problematic code and the fix

Include a minimal executable example of Cell<T> vs RefCell<T> usage to make the interior mutability decision table actionable rather than abstract

DimensionReasoningScore

Conciseness

The content is lean and well-structured using tables and decision trees. It assumes Claude understands Rust's borrow checker and doesn't waste tokens explaining basic concepts. Every section adds value through decision-making frameworks rather than explanations.

3 / 3

Actionability

The skill provides good decision tables and diagnostic questions, but lacks executable code examples. There are no concrete Rust code snippets showing how to apply Cell, RefCell, Mutex, etc. in practice—only type names and abstract patterns. For a skill triggered by specific compiler errors, showing before/after code would significantly improve actionability.

2 / 3

Workflow Clarity

The 'Thinking Prompt' section provides a clear 3-step decision sequence, and the 'Trace Up/Trace Down' sections create explicit diagnostic workflows with clear branching logic. The 'Error → Design Question' table transforms error codes into actionable investigation steps. For a diagnostic/decision skill (not a destructive operation), this level of workflow clarity is appropriate.

3 / 3

Progressive Disclosure

The skill references related skills (m02-resource, m07-concurrency, m09-domain, m15-anti-pattern) but no bundle files are provided to support these references. The content itself is well-organized with clear sections, but the cross-references cannot be verified and there's no indication these files exist in the bundle.

2 / 3

Total

10

/

12

Passed

Validation

90%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation10 / 11 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

10

/

11

Passed

Repository
actionbook/rust-skills
Reviewed

Table of Contents

Is this your skill?

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.