CRITICAL: Use for ownership/borrow/lifetime issues. Triggers: E0382, E0597, E0506, E0507, E0515, E0716, E0106, value moved, borrowed value does not live long enough, cannot move out of, use of moved value, ownership, borrow, lifetime, 'a, 'static, move, clone, Copy, 所有权, 借用, 生命周期
Install with Tessl CLI
npx tessl i github:actionbook/rust-skills --skill m01-ownership82
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 comprehensive error codes, keywords, and multilingual support, making it highly discoverable. However, it lacks explicit concrete actions (what specifically does it do beyond 'use for issues'?) and would benefit from a formal 'Use when...' clause to clarify selection criteria rather than just listing triggers.
Suggestions
Add specific concrete actions like 'Diagnoses ownership transfers, suggests clone vs borrow solutions, annotates lifetime parameters, refactors to satisfy the borrow checker'
Convert the 'Triggers:' format to an explicit 'Use when...' clause, e.g., 'Use when encountering Rust compiler errors related to ownership, borrowing, or lifetimes, or when the user asks about move semantics, references, or lifetime annotations'
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (ownership/borrow/lifetime issues) and implies actions (fixing errors), but doesn't list specific concrete actions like 'diagnose ownership transfers', 'suggest clone vs reference solutions', or 'annotate lifetime parameters'. | 2 / 3 |
Completeness | The 'what' is partially addressed (ownership/borrow/lifetime issues) but lacks detail on specific actions. The 'when' is implied through 'Triggers:' list but lacks an explicit 'Use when...' clause explaining the selection criteria. | 2 / 3 |
Trigger Term Quality | Excellent coverage of natural trigger terms including error codes (E0382, E0597, etc.), common error messages ('value moved', 'borrowed value does not live long enough'), Rust keywords (ownership, borrow, lifetime, 'a, 'static, move, clone, Copy), and even Chinese translations (所有权, 借用, 生命周期). | 3 / 3 |
Distinctiveness Conflict Risk | Highly distinctive with Rust-specific error codes and terminology. The specific error codes (E0382, E0597, etc.) and Rust ownership concepts create a clear niche that wouldn't conflict with general coding or other language skills. | 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 Claude through ownership error resolution with a design-thinking approach. The tables are highly efficient and the trace up/down pattern is valuable. The main weakness is the lack of concrete, executable code examples showing actual fixes for each error type.
Suggestions
Add 2-3 minimal executable Rust code examples showing before/after fixes for common errors like E0382 and E0597
In the 'Error Code Reference' table, replace 'Quick Fix' text descriptions with actual code snippets or patterns
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Extremely lean and efficient. Uses tables extensively to compress information, assumes Claude understands Rust concepts, and every section adds unique value without redundant explanation. | 3 / 3 |
Actionability | Provides good conceptual guidance and quick reference tables, but lacks executable code examples. The 'Quick Fix' column gives directions rather than copy-paste solutions. No concrete Rust code demonstrating fixes. | 2 / 3 |
Workflow Clarity | Clear diagnostic workflow: Error → Design Question → Thinking Prompt → Trace Up/Down. The 'Strike 3' escalation rule and trace patterns provide explicit decision points for when to change approach. | 3 / 3 |
Progressive Disclosure | Well-organized with clear sections and a 'Related Skills' table pointing to other skills (m02-resource, m03-mutability, etc.) for deeper dives. Content is appropriately scoped for an overview 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.