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

68

Quality

81%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

82%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A compact, well-structured diagnostic skill that assumes Rust competence and delivers decision tables and borrow-conflict trace paths rather than padding. Its chief gap is the absence of a concrete runnable code example and explicit validate-after-fix checkpoints, which keep actionability and workflow_clarity at 4 rather than 5.

Suggestions

Add one short runnable example showing the canonical fix for the most common error (e.g., a small &mut-vs-& snippet resolving E0502) to lift actionability toward copy-paste ready.

Add a validation checkpoint in the Thinking Prompt / Trace Down flow (e.g., 'After applying: cargo check — confirm the borrow error is resolved before moving on') to satisfy the feedback-loop expectation for error-fix workflows.

Consider splitting the large error/reference tables into a reference file and linking to it so the overview stays a true entry point, which would justify a 5 on progressive disclosure.

DimensionReasoningScore

Conciseness

The body is lean and table/decision-tree driven with no padding; it assumes Claude knows Rust and provides only decision guidance (e.g., the Cell vs RefCell split, the borrow-rules diagram) without re-explaining what borrowing or a Mutex is, matching 'lean and efficient; every token earns its place'.

5 / 5

Actionability

It gives concrete, executable decision tables mapping scenarios to specific types (T: Copy → Cell<T>, multi-thread → Mutex<T>), but the decision trees are guidance rather than copy-paste code, and it offers no runnable snippet — mostly executable guidance with the minor gap of no concrete code example.

4 / 5

Workflow Clarity

The 'Thinking Prompt' is a clear numbered sequence (Is mutation necessary? Who controls it? Thread context?) and the Trace Up/Trace Down sections give explicit escalation paths with cross-skill routing; however there are no explicit validation/checkpoint steps after a chosen fix, so it sits just below the explicit-validation anchor of 5.

4 / 5

Progressive Disclosure

No bundle files exist, so this is judged on body structure: the content is cleanly sectioned (Core Question, Error→Design, Thinking Prompt, Trace Up/Down, Quick Reference, Anti-Patterns, Related Skills) with well-signaled cross-skill navigation in the Related Skills table, fitting the 'good structure, minor organization gaps' anchor rather than the one-level-deep file references of 5.

4 / 5

Total

17

/

20

Passed

Description

81%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strongly-scoped, trigger-rich description anchored to specific compiler errors and types, with the main weakness being it lists triggers and types rather than concrete actions Claude performs. The 'CRITICAL:' prefix is slightly assertive but does not harm clarity.

Suggestions

Lead with one concrete verb describing what the skill does (e.g., 'Diagnoses and resolves Rust mutability and borrow-checker errors') before the trigger list to strengthen specificity.

Replace the raw 'Triggers:' keyword dump with a 'Use when the user hits E0596/E0499/E0502 or mentions mutability conflicts, &mut, Cell/RefCell, or Mutex' sentence so the 'when' clause reads as natural guidance.

Drop the 'CRITICAL:' prefix — it adds no semantic signal and risks competing with the actual trigger content.

DimensionReasoningScore

Specificity

The description names the domain (mutability) and enumerates concrete error codes (E0596, E0499, E0502) and specific types (Cell, RefCell, Mutex, RwLock), but does not list discrete concrete actions Claude performs — it reads as a trigger list rather than 'extracts/fills/merges'-style actions, matching the 'names domain and 1-2 concrete actions, not comprehensive' anchor.

3 / 5

Completeness

It explicitly states 'what' (mutability issues / interior mutability) and 'when' ('Use for mutability issues. Triggers: ...'), but the 'when' is a keyword list rather than the cleaner 'Use when ... or when the user mentions ...' phrasing, so it has both what and when with the 'when' slightly less explicit than the 5 anchor.

4 / 5

Trigger Term Quality

It covers both compiler error strings users would paste ('cannot borrow as mutable', 'already borrowed as immutable'), the keyword tokens (mut, &mut), the type names (Cell, RefCell, Mutex, RwLock, Atomic), and bilingual synonyms (可变性, 内部可变性, 借用冲突), giving comprehensive coverage including synonyms and variations.

5 / 5

Distinctiveness Conflict Risk

The error-code and type-specific triggers (E0596, &mut, RefCell, Mutex) carve a clear niche around Rust mutability that is unlikely to fire for unrelated skills, with minimal overlap risk.

5 / 5

Total

17

/

20

Passed

Validation

100%

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

Validation16 / 16 Passed

Validation for skill structure

No warnings or errors.

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.