Master error handling patterns across languages including exceptions, Result types, error propagation, and graceful degradation to build resilient applications. Use when implementing error handling, designing APIs, or improving application reliability.
71
58%
Does it follow best practices?
Impact
95%
1.39xAverage score across 3 eval scenarios
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./tests/ext_conformance/artifacts/agents-wshobson/developer-essentials/skills/error-handling-patterns/SKILL.mdQuality
Discovery
67%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 is structurally sound with a clear 'Use when' clause and identifies a specific domain (error handling patterns). However, it reads more like a course title than an actionable skill description—it says 'Master error handling patterns' rather than describing concrete actions Claude performs. The trigger terms are adequate but could be more comprehensive with common user vocabulary.
Suggestions
Replace 'Master error handling patterns' with concrete actions like 'Implements try-catch blocks, converts exceptions to Result/Either types, adds retry logic and fallback mechanisms'
Add more natural trigger terms users would say, such as 'try-catch', 'error codes', 'retry logic', 'exception handling', 'crash recovery', or specific language mentions like 'Rust Result', 'Python exceptions'
Narrow the 'Use when' clause to reduce overlap—replace 'designing APIs' with more specific triggers like 'when adding error handling to existing code' or 'when choosing between exceptions and Result types'
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (error handling) and lists some patterns (exceptions, Result types, error propagation, graceful degradation), but these are more category labels than concrete actions. It doesn't specify what it actually does with these patterns (e.g., 'converts try-catch blocks to Result types', 'adds retry logic'). | 2 / 3 |
Completeness | Clearly answers both 'what' (master error handling patterns including exceptions, Result types, error propagation, graceful degradation) and 'when' (Use when implementing error handling, designing APIs, or improving application reliability) with an explicit 'Use when...' clause. | 3 / 3 |
Trigger Term Quality | Includes relevant terms like 'error handling', 'exceptions', 'Result types', 'error propagation', and 'graceful degradation', which are reasonably natural. However, it misses common user phrases like 'try-catch', 'error codes', 'retry', 'fallback', 'crash', 'bug handling', or specific language patterns users might mention. | 2 / 3 |
Distinctiveness Conflict Risk | The error handling focus is a reasonably distinct niche, but terms like 'designing APIs' and 'improving application reliability' are broad enough to overlap with API design skills or general code quality/resilience skills. The cross-language scope also makes it less distinct. | 2 / 3 |
Total | 9 / 12 Passed |
Implementation
50%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This skill is a comprehensive reference catalog of error handling patterns across multiple languages, with excellent executable code examples. However, it is far too verbose for a SKILL.md — it explains concepts Claude already knows (error categories, basic exception philosophy), and inlines hundreds of lines of language-specific code that should be in separate reference files. The content would be significantly improved by trimming to essential patterns and leveraging progressive disclosure.
Suggestions
Remove the 'Core Concepts' section (error categories, error handling philosophies) — Claude already knows these fundamentals. Jump straight to actionable patterns.
Move language-specific implementations into separate reference files (e.g., references/python-errors.md, references/typescript-errors.md) and keep only one primary language example inline with links to others.
Remove the 'When to Use This Skill' section — it lists obvious scenarios that add no value.
Trim the 'Common Pitfalls' and 'Best Practices' sections to only non-obvious guidance that Claude wouldn't already know.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Extremely verbose at ~400+ lines. Explains basic concepts Claude already knows (error categories, what exceptions vs result types are, recoverable vs unrecoverable errors). The 'When to Use This Skill' section lists obvious scenarios. Multiple full implementations across 4 languages is excessive when Claude already knows these patterns. | 1 / 3 |
Actionability | All code examples are fully executable and copy-paste ready across Python, TypeScript, Rust, and Go. Custom exception hierarchies, retry decorators, circuit breakers, and Result type implementations are complete and concrete. | 3 / 3 |
Workflow Clarity | The best practices section provides a good comprehensive example (process_order), and patterns are clearly sequenced. However, there's no explicit workflow for when/how to apply these patterns in a project — it reads more like a reference catalog than a guided workflow with validation checkpoints. | 2 / 3 |
Progressive Disclosure | References to external files are listed at the bottom, which is good. However, the main file is monolithic with extensive inline code across 4 languages that should be split into separate reference files. The skill would benefit from a concise overview with links to language-specific guides. | 2 / 3 |
Total | 8 / 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.
Validation — 10 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
skill_md_line_count | SKILL.md is long (642 lines); consider splitting into references/ and linking | Warning |
Total | 10 / 11 Passed | |
47823e3
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.