CtrlK
BlogDocsLog inGet started
Tessl Logo

error-handling

Patterns for robust error handling across TypeScript, Python, and Go. Covers typed errors, error boundaries, retries, circuit breakers, and user-facing error messages. Use when designing error types, retries, circuit breakers, or user-facing failure messages in TypeScript, Python, or Go.

62

Quality

73%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./skills/error-handling/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

63%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body delivers genuinely useful conventions — typed error hierarchies, the { error: { code, message } } envelope, retry policy, and a pre-merge checklist — with executable examples in three languages. Its weaknesses are token efficiency (large amounts of standard boilerplate inline) and the lack of progressive disclosure, since everything lives in one long file rather than being split into references.

Suggestions

Split the per-language pattern libraries into references/ files (e.g. references/typescript.md, references/python.md, references/go.md) and keep SKILL.md to the core principles, envelope contract, and merge checklist, signaling each reference clearly from a short overview section.

Trim code Claude can already write from memory — the full ErrorBoundary class and standard exception hierarchies — down to the conventions that matter (base AppError shape with code/statusCode fields, error-code naming) to cut a large fraction of the token cost.

Fix the Go and TypeScript examples so they are copy-paste runnable: add the missing fmt, log/slog, and zod imports and resolve the undefined sql.ErrNoRows and chi.URLParam references in the Go snippet.

DimensionReasoningScore

Conciseness

The content is mostly efficient but spends many lines on boilerplate Claude already knows — a full React ErrorBoundary class, standard exception hierarchies, and generic API-handler scaffolding — where the conventions (error codes, envelope shape, principles) are what actually add value.

3 / 5

Actionability

Concrete, near-complete code in all three languages plus a working withRetry helper, a message map, and a merge checklist. Minor gaps keep it below fully copy-paste ready: the Go example uses fmt, slog, and chi without imports, and z.ZodError appears with no import.

4 / 5

Workflow Clarity

Not a multi-step process skill, but it is clearly organized: activation triggers, five numbered principles, per-language patterns, and an explicit 8-item validation checklist ("Before merging any code that touches error handling") serving as an end-state checkpoint.

4 / 5

Progressive Disclosure

Headers and sectioning are good, but this is a ~378-line monolithic SKILL.md with no reference files. The per-language pattern libraries clearly belong in separate files (e.g. references/typescript.md), with SKILL.md as the overview.

3 / 5

Total

14

/

20

Passed

Description

83%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description with an explicit what-and-when structure, natural trigger terms, and a clearly scoped niche. The only notable gap is the generic "Patterns for robust error handling" framing and the absence of common synonyms like "exceptions".

DimensionReasoningScore

Specificity

The description lists several concrete capabilities ("Covers typed errors, error boundaries, retries, circuit breakers, and user-facing error messages") across three named languages, but the generic lead "Patterns for robust error handling" and the absence of concrete action verbs keep it just below the comprehensive-coverage anchor.

4 / 5

Completeness

It explicitly answers both questions: what it does ("Covers typed errors, error boundaries, retries, circuit breakers, and user-facing error messages") and when to use it ("Use when designing error types, retries, circuit breakers, or user-facing failure messages in TypeScript, Python, or Go") with concrete trigger phrases.

5 / 5

Trigger Term Quality

"error types", "retries", "circuit breakers", "error messages", and "error handling" are phrases users would naturally say. Common synonyms such as "exceptions" or "try/catch" are missing, so keyword coverage is good but not comprehensive.

4 / 5

Distinctiveness Conflict Risk

Error handling is a coherent niche with distinct triggers (circuit breakers, retry logic, failure messages), but as a cross-cutting concern it has minor overlap risk with language-specific or API-design skills rather than minimal conflict.

4 / 5

Total

17

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

Total

15

/

16

Passed

Repository
affaan-m/ECC
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.