CtrlK
BlogDocsLog inGet started
Tessl Logo

m06-error-handling

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

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/m06-error-handling/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 with an impressive list of Rust error handling keywords including Chinese translations, and occupies a clear, distinct niche. However, it reads more like a keyword index than a skill description — it lacks concrete action verbs describing what the skill actually does (e.g., 'implement custom error types', 'choose between Result and panic', 'set up anyhow/thiserror').

Suggestions

Add concrete capability descriptions: e.g., 'Guides implementation of custom error types, error propagation with ?, choosing between panic and Result, and setting up anyhow/thiserror crates.'

Restructure to separate 'what it does' from 'when to use it': e.g., 'Teaches Rust error handling patterns including custom errors, propagation, and recovery. Use when the user asks about Result, Option, unwrap, expect, panic, anyhow, or thiserror.'

DimensionReasoningScore

Specificity

It names the domain ('error handling') and lists relevant types/concepts (Result, Option, Error, anyhow, thiserror, custom error, error propagation), but doesn't describe concrete actions like 'implement custom error types' or 'convert between error types'. The description is more a list of trigger terms than a description of capabilities.

2 / 3

Completeness

The 'when' is addressed via the 'Triggers:' list and 'CRITICAL: Use for error handling', but the 'what does this do' part is weak — it only says 'error handling' without describing specific actions or capabilities the skill provides. The trigger list partially compensates but doesn't fully replace an explicit 'Use when...' clause.

2 / 3

Trigger Term Quality

Excellent coverage of natural keywords users would say: 'Result', 'Option', 'Error', '?', 'unwrap', 'expect', 'panic', 'anyhow', 'thiserror', 'custom error', 'error propagation', plus Chinese equivalents. These are exactly the terms a Rust developer would use when asking about error handling.

3 / 3

Distinctiveness Conflict Risk

Error handling in Rust is a very clear niche. The specific trigger terms (Result, Option, anyhow, thiserror, unwrap, expect, panic) are highly distinctive and unlikely to conflict with other skills. The domain is well-scoped.

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 decision-oriented skill that excels at helping Claude choose the right error handling strategy through clear flowcharts, tables, and thinking prompts. Its main weakness is the lack of executable, multi-line code examples—particularly for thiserror custom error definitions and anyhow context usage, which are the most practically valuable patterns. The references to other skills in the bundle are reasonable but unverifiable without bundle files.

Suggestions

Add a complete, executable thiserror example showing #[derive(Error)] with multiple variants and a From implementation

Add a complete anyhow example showing .context() usage in a function that chains multiple fallible operations with ?

DimensionReasoningScore

Conciseness

The content is lean and efficient throughout. It uses tables extensively to compress information, avoids explaining what Result, Option, or panic are conceptually, and assumes Claude already knows Rust. Every section adds decision-making value rather than tutorial padding.

3 / 3

Actionability

While the decision flowcharts and tables provide clear guidance on *when* to use each pattern, the actual code examples are minimal one-liners in table cells rather than executable, contextual snippets. There are no complete examples showing thiserror derive macros, anyhow usage with .context(), or custom error type definitions—key practical patterns a user would need.

2 / 3

Workflow Clarity

The 'Thinking Prompt' section provides a clear 3-step decision sequence, and the 'Decision Flowchart' gives an explicit branching workflow. For a conceptual/decision-making skill (not a destructive or batch operation), the sequencing is clear and the checkpoints (ask what kind of failure, who handles it, what context is needed) are well-defined.

3 / 3

Progressive Disclosure

The skill references related skills (m13-domain-error, m11-ecosystem, m05-type-driven, m14-mental-model, m09-domain) but no bundle files are provided, so it's unclear if these exist. The 'Trace Up/Down' sections provide navigation but the references feel like they point to a broader system that isn't verified. The content itself is well-structured with clear sections but could benefit from confirmed external references.

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.