CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

handling-rust-errors

HASH error handling patterns using error-stack crate. Use when working with Result types, Report types, defining custom errors, propagating errors with change_context, adding context with attach, implementing Error trait, or documenting error conditions in Rust code.

76

Quality

96%

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

92%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 well-structured, highly actionable skill body with excellent progressive disclosure and unambiguous routing. The only meaningful weakness is mild token redundancy: the reference descriptions are duplicated between the Quick Start Guide and the References section, and the HashQL exception includes rationale bullets that could be trimmed.

Suggestions

Collapse the Quick Start Guide and the final References section into one list — each reference's 'Use when' description currently appears twice verbatim in the body.

Trim the four bullets explaining why compiler diagnostics need rich formatting (spans, labeled regions, fix suggestions, severity levels) to a single sentence, since Claude already knows what diagnostics provide; the routing table alone justifies the exception.

DimensionReasoningScore

Conciseness

The body is largely lean (DO/DON'T lists, tight code snippets), but the Quick Start Guide bullets duplicate the References section descriptions verbatim (e.g. 'Creating new error types or error enums' appears twice), and the HashQL rationale lists diagnostic capabilities (spans, labels, severity levels) Claude already knows. It fits the 'efficient with minor trim opportunities' anchor rather than score 5's 'every token earns its place'.

4 / 5

Actionability

Concrete, copy-paste-ready Rust snippets with the required imports cover the common cases — creating an error, propagating with change_context/attach, and lazy attach_with — alongside executable rules like 'Import Error from core::error:: (not std::error::)' and 'Import ResultExt as _'. This is not score 4 because the examples span the common cases rather than leaving gaps.

5 / 5

Workflow Clarity

For a reference-routing skill, the navigation workflow is unambiguous: 'Choose the reference that matches your current task' with per-reference 'Use when' clauses, plus a location table cleanly routing the HashQL exception to the diagnostics skill. No destructive or batch operations exist, so no validation cap applies.

5 / 5

Progressive Disclosure

The body is a genuine overview: three well-signaled references (defining-errors.md, propagating-errors.md, documenting-errors.md) that all exist and stay one level deep (they only cross-link to siblings), with detail appropriately split out and quick patterns kept inline. This is not score 4 because the split and signaling are essentially ideal.

5 / 5

Total

19

/

20

Passed

Description

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

An exemplary description: concrete, crate-specific actions, explicit 'Use when' triggers phrased in natural developer language, third-person voice, and a distinct niche. It fully meets the anchor criteria for the top score on every dimension.

DimensionReasoningScore

Specificity

The description names the domain and five concrete actions with real API names: 'defining custom errors, propagating errors with change_context, adding context with attach, implementing Error trait, documenting error conditions'. This matches the comprehensive-coverage anchor; it is not score 4 because there are no notable gaps in the actions listed.

5 / 5

Completeness

It explicitly answers both what ('HASH error handling patterns using error-stack crate') and when ('Use when working with Result types, Report types, defining custom errors...') with concrete trigger phrases, in third-person voice.

5 / 5

Trigger Term Quality

It includes the natural terms a Rust developer would actually say: 'Result types', 'Report types', 'custom errors', 'propagating errors', 'Error trait', 'documenting error conditions', 'Rust code'. Coverage is comprehensive for this domain rather than merely good with a few missing terms.

5 / 5

Distinctiveness Conflict Risk

It carves out a clear niche (error-stack patterns in the HASH codebase) with distinct, crate-specific triggers, minimizing risk of firing for unrelated skills.

5 / 5

Total

20

/

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

relative_links

Relative link issues: 1 suspicious

Warning

Total

15

/

16

Passed

Repository

hashintel/hash

Path

.agents/skills/handling-rust-errors/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.