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.
75
54%
Does it follow best practices?
Impact
88%
1.29xAverage score across 6 eval scenarios
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./plugins/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 competent with a clear 'Use when' clause and reasonable domain identification, but it leans toward abstract pattern names rather than concrete actions the skill performs. The trigger terms cover the main concepts but miss common user vocabulary variations. It would benefit from more specific action verbs and additional natural language triggers.
Suggestions
Replace abstract pattern names with concrete actions, e.g., 'Implements try-catch blocks, converts exceptions to Result/Either types, adds retry logic with exponential backoff, designs error hierarchies'
Expand trigger terms to include common user phrases like 'try-catch', 'error codes', 'retry logic', 'fallback strategy', 'exception safety', and specific language mentions like 'Rust Result', 'Go error handling'
| 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-level concepts than concrete actions. It doesn't specify what concrete actions the skill performs (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', 'error recovery', 'exception handling', or specific language patterns users might mention. | 2 / 3 |
Distinctiveness Conflict Risk | The focus on error handling patterns is a reasonably distinct niche, but terms like 'designing APIs' and 'application reliability' are broad enough to overlap with API design skills or general software architecture skills. The core error handling focus helps but isn't fully distinctive. | 2 / 3 |
Total | 9 / 12 Passed |
Implementation
42%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 but excessively verbose reference document that explains many concepts Claude already knows (error categories, basic exception handling philosophy). The code examples are high quality and executable, which is its strongest aspect. However, the content would benefit enormously from being split into separate files per language/pattern and trimmed of explanatory content that adds no value for Claude.
Suggestions
Remove the 'Core Concepts' and 'Error Categories' sections entirely — Claude already knows what exceptions, Result types, and recoverable vs unrecoverable errors are.
Split language-specific patterns into separate files (e.g., python-errors.md, typescript-errors.md) and reference them from a concise overview in SKILL.md.
Trim the 'When to Use This Skill' list to 2-3 items or remove it — the description already covers this.
Add a brief decision workflow: 'When implementing error handling → 1. Choose pattern (exceptions vs Result) → 2. Implement hierarchy → 3. Add retry/circuit breaker if external calls → 4. Verify error messages are actionable.'
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Extremely verbose at ~400+ lines. Explains basic concepts Claude already knows (error categories, what exceptions are, what Result types are, recoverable vs unrecoverable errors). The 'When to Use This Skill' and 'Core Concepts' sections are largely unnecessary padding. Multiple full implementations across 4 languages when patterns are well-known. | 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 and the comprehensive process_order example show a reasonable workflow, but there are no explicit validation checkpoints or feedback loops for when to apply which pattern. The skill reads more like a reference catalog than a guided workflow. | 2 / 3 |
Progressive Disclosure | Monolithic wall of text with no references to external files. All content is inline despite being far too long for a single SKILL.md. Language-specific patterns and universal patterns should be split into separate referenced files. | 1 / 3 |
Total | 7 / 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 (633 lines); consider splitting into references/ and linking | Warning |
Total | 10 / 11 Passed | |
70444e5
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.