CRITICAL: Use for error handling. Triggers: Result, Option, Error, ?, unwrap, expect, panic, anyhow, thiserror, when to panic vs return Result, custom error, error propagation, 错误处理, Result 用法, 什么时候用 panic
Install with Tessl CLI
npx tessl i github:actionbook/rust-skills --skill m06-error-handling89
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 Rust error handling keywords and even multilingual support, making it highly discoverable. However, it lacks concrete action descriptions (what the skill actually does beyond 'error handling') and would benefit from an explicit 'Use when...' clause to improve completeness.
Suggestions
Add concrete actions describing what the skill does, e.g., 'Guides implementation of custom error types, error propagation patterns, and choosing between panic and Result'
Add an explicit 'Use when...' clause, e.g., 'Use when implementing error handling in Rust code or deciding between error handling strategies'
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (error handling) and mentions specific types/concepts (Result, Option, Error, anyhow, thiserror), but doesn't describe concrete actions like 'implement custom error types' or 'convert between error types'. | 2 / 3 |
Completeness | The 'when' is indicated by 'CRITICAL: Use for error handling' and the trigger list, but there's no explicit 'Use when...' clause. The 'what' is weak - it lists keywords but doesn't explain what the skill actually does with error handling. | 2 / 3 |
Trigger Term Quality | Excellent coverage of natural terms including Rust-specific keywords (Result, Option, unwrap, expect, panic, anyhow, thiserror), the ? operator, common questions ('when to panic vs return Result'), and even Chinese translations (错误处理, Result 用法). | 3 / 3 |
Distinctiveness Conflict Risk | Highly distinctive with Rust-specific error handling terminology (Result, Option, anyhow, thiserror, unwrap, expect) that clearly separates it from general programming or other language error handling skills. | 3 / 3 |
Total | 10 / 12 Passed |
Implementation
100%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This is an excellent skill file that exemplifies good design. It uses tables and flowcharts to maximize information density while remaining scannable. The 'Error → Design Question' framing elevates this beyond a simple reference by teaching the thinking process, and the trace up/down sections provide clear navigation to related concepts.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Extremely lean and efficient. Uses tables and flowcharts to convey maximum information with minimal tokens. No unnecessary explanations of concepts Claude already knows - assumes competence with Rust fundamentals. | 3 / 3 |
Actionability | Provides concrete, executable patterns with specific code examples (Result signatures, ?, .context()). The decision flowchart and quick reference tables give copy-paste ready patterns for immediate use. | 3 / 3 |
Workflow Clarity | The 'Thinking Prompt' section provides a clear 3-step decision process. The decision flowchart explicitly sequences the thought process with clear branching logic. For a conceptual skill about error handling strategy, this is appropriately structured. | 3 / 3 |
Progressive Disclosure | Well-organized with clear sections progressing from core concepts to implementation details. References to related skills (m13-domain-error, m11-ecosystem, etc.) are clearly signaled and one level deep. Content is appropriately split between quick reference and deeper guidance. | 3 / 3 |
Total | 12 / 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.