CtrlK
BlogDocsLog inGet started
Tessl Logo

error-handling-patterns

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

1.29x
Quality

54%

Does it follow best practices?

Impact

88%

1.29x

Average score across 6 eval scenarios

SecuritybySnyk

Passed

No known issues

Optimize this skill with Tessl

npx tessl skill review --optimize ./plugins/developer-essentials/skills/error-handling-patterns/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

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'

DimensionReasoningScore

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.'

DimensionReasoningScore

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.

Validation10 / 11 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (633 lines); consider splitting into references/ and linking

Warning

Total

10

/

11

Passed

Repository
wshobson/agents
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.