CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

iii-error-handling

Handle iii engine and SDK errors across Node, Python, Rust, and browser workers. Use when interpreting error codes, retryability, RBAC denial, timeouts, handler failures, or SDK-specific exception surfaces.

Quality

83%

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

SKILL.md
Quality
Evals
Security

Quality

Content

75%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.

A solid, information-dense reference that provides proprietary error-code knowledge with executable multi-language examples and clear retryability rules. The main gaps are the missing browser/observer code examples, the inlined observer table that its own boundaries section defers elsewhere, and a redundant "When to Use" section.

Suggestions

Replace the Browser section's prose with a short executable example showing how to read the engine-provided code/message, matching the Node/Python/Rust pattern.

Compress the Observer Errors table to the few most common codes and defer the full list to iii-observe, consistent with the Pattern Boundaries section that already points there.

Drop the "When to Use" section (it duplicates the frontmatter description) and fold any version-gated notes like "engine older than 0.25" into a clearly labeled version-compatibility note.

DimensionReasoningScore

Conciseness

The body is dense with proprietary knowledge Claude cannot already know (iii engine/SDK error codes, retryability rules) and assumes competence throughout. Minor trims remain: the "When to Use" section restates the frontmatter description, and version-sensitive numbers ("(0.25)", "engine is older than 0.25") sit outside any old-patterns/deprecated framing. Efficient overall, so 4 rather than the every-token-earns-its-place 5.

4 / 5

Actionability

Copy-paste-ready, executable branching examples for Node ("error instanceof InvocationError && error.code === 'FORBIDDEN'"), Python ("except InvocationError as exc"), and Rust ("Err(iii_sdk::Error::Remote { code, message, .. })"), plus per-code handling columns. The Browser section ("Preserve the engine-provided code/message when present") and observer-error handling are prose/table only with no code, which are minor gaps — the 4 anchor rather than fully-executable 5.

4 / 5

Workflow Clarity

The core action is unambiguous and stated upfront ("Agents should branch on the error code instead of matching only message strings"), with a decision path organized across Error Codes → Handler vs Engine → Retryability. There is no explicit validate-then-act sequence for assembling a diagnosis, and no decision tree, so it sits below the 5 anchor's explicit checkpoints while clearly above the 3 anchor's implicit sequence.

4 / 5

Progressive Disclosure

No bundle files exist and the ~125-line body is well-sectioned with clearly signaled one-level-deep deferrals ("For observer states, filters, and owner hooks, prefer iii-observe"; "For SDK-specific exception classes and syntax, prefer iii-sdk-reference"). Minor gap: the full Observer Errors code table (~10 rows plus obs.call codes) is inlined even though the Pattern Boundaries section defers observer detail to iii-observe, so a leaner summary or a reference file would fit better — good structure overall, matching 4 rather than the well-split 5.

4 / 5

Total

16

/

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 "Use when" clause, concrete trigger phrases, and platform specificity. The main improvement lever is sharpening the boundary against sibling iii skills so SDK-exception-syntax questions route to iii-sdk-reference rather than this skill.

DimensionReasoningScore

Specificity

Enumerates several concrete capabilities — "interpreting error codes, retryability, RBAC denial, timeouts, handler failures, or SDK-specific exception surfaces" — plus platform coverage ("Node, Python, Rust, and browser workers"). The lead verb "Handle ... errors" is generic, so coverage is strong but not the multiple distinct concrete actions of the 5 anchor; well above the 1-2 concrete actions of the 3 anchor.

4 / 5

Completeness

Explicitly answers both: what — "Handle iii engine and SDK errors across Node, Python, Rust, and browser workers"; when — "Use when interpreting error codes, retryability, RBAC denial, timeouts, handler failures, or SDK-specific exception surfaces". The "Use when" clause lists concrete trigger phrases, matching the 5 anchor; the 4 anchor requires a 'when' that could be more explicit, which does not apply.

5 / 5

Trigger Term Quality

Good natural keyword coverage: "error codes", "timeouts", "RBAC denial", "retryability", "handler failures" are phrases a user debugging an iii call would actually say. A few common variations are missing (e.g., "exception", "failed invocation", "error message"), which keeps it below the comprehensive synonym coverage of the 5 anchor but clearly above the generic-keyword 3 anchor.

4 / 5

Distinctiveness Conflict Risk

Clear niche ("iii engine and SDK errors") with distinct error-centric triggers, so it will not fire for unrelated skills. Minor overlap remains with closely related iii skills — "SDK-specific exception surfaces" treads on iii-sdk-reference territory and observer errors overlap iii-observe — matching the 4 anchor rather than the minimal-conflict 5 anchor.

4 / 5

Total

17

/

20

Passed

Validation

100%

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

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

iii-hq/iii

Path

skills/iii-error-handling/SKILL.md

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.