Use when designing domain error handling. Keywords: domain error, error categorization, recovery strategy, retry, fallback, domain error hierarchy, user-facing vs internal errors, error code design, circuit breaker, graceful degradation, resilience, error context, backoff, retry with backoff, error recovery, transient vs permanent error, 领域错误, 错误分类, 恢复策略, 重试, 熔断器, 优雅降级
56
64%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/m13-domain-error/SKILL.mdQuality
Discovery
64%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 essentially a 'Use when' trigger followed by a keyword dump. While the keyword coverage is impressively thorough (including multilingual terms), the description completely lacks a statement of what the skill actually does — what concrete outputs or guidance it provides. It reads more like a search index than a skill description.
Suggestions
Add explicit capability statements before the keywords, e.g., 'Designs domain error hierarchies, implements retry/backoff strategies, configures circuit breakers, and categorizes errors as transient vs permanent with appropriate recovery patterns.'
Expand the 'Use when' clause to be more descriptive, e.g., 'Use when designing error handling architecture for a domain, implementing resilience patterns, or categorizing errors into hierarchies with recovery strategies.'
Reduce the keyword list to the most distinctive terms and integrate them naturally into capability sentences rather than listing them as raw keywords.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | The description names the domain ('domain error handling') and implies actions like error categorization, recovery strategy design, retry/fallback patterns, and circuit breaker implementation, but these are listed as keywords rather than described as concrete actions the skill performs. | 2 / 3 |
Completeness | It has a 'Use when' clause ('Use when designing domain error handling'), but the 'what does this do' part is essentially absent — there's no description of what the skill actually produces or performs. The keywords hint at capabilities but don't explicitly state them as actions. | 2 / 3 |
Trigger Term Quality | Excellent coverage of natural keywords users would say, including 'domain error', 'retry', 'fallback', 'circuit breaker', 'graceful degradation', 'error recovery', 'backoff', 'retry with backoff', 'transient vs permanent error', and even Chinese equivalents. These are terms developers would naturally use when seeking help with error handling patterns. | 3 / 3 |
Distinctiveness Conflict Risk | The focus on domain error handling with specific patterns like circuit breaker, retry with backoff, and error hierarchies provides some distinctiveness, but 'error handling' is a broad topic that could overlap with general coding skills, resilience/infrastructure skills, or API design skills. | 2 / 3 |
Total | 9 / 12 Passed |
Implementation
64%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This skill provides solid, actionable guidance for domain error handling with good executable Rust examples and well-structured reference tables. Its main weaknesses are some content redundancy (overlapping anti-patterns/mistakes sections, restated categorization logic) and a lack of a clear end-to-end implementation workflow with validation checkpoints. The trace up/down navigation pattern adds conceptual overhead without proportional value.
Suggestions
Merge 'Common Mistakes' and 'Anti-Patterns' tables into a single section to reduce redundancy and save tokens.
Add a brief step-by-step workflow for implementing error handling in a new service (e.g., 1. Categorize errors → 2. Define enum → 3. Add context → 4. Test error paths), with explicit validation checkpoints.
Simplify or remove the 'Trace Up/Trace Down' sections — they reference layer numbers and module codes without enough context to be useful in isolation.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Generally efficient with good use of tables, but some redundancy between sections (e.g., 'Thinking Prompt' largely restates the 'Error Categorization' table, and 'Anti-Patterns' vs 'Common Mistakes' overlap significantly). The 'Trace Up/Trace Down' sections add navigational overhead without much actionable content. | 2 / 3 |
Actionability | Provides fully executable Rust code examples for both error hierarchy (thiserror enum with is_retryable method) and retry pattern (tokio_retry with ExponentialBackoff). The quick reference table maps recovery patterns to concrete implementations and crates. | 3 / 3 |
Workflow Clarity | The 'Thinking Prompt' section provides a decision sequence for designing errors, and the categorization table is clear. However, there's no explicit workflow for implementing error handling end-to-end with validation checkpoints — the skill presents patterns but doesn't sequence them into a clear process with verification steps. | 2 / 3 |
Progressive Disclosure | References to related skills (m06-error-handling, m07-concurrency, etc.) are present and clearly signaled in the 'Related Skills' and 'Trace Down' sections. However, the 'Trace Up/Trace Down' navigation pattern is somewhat confusing with its layered architecture references, and no bundle files exist to validate the referenced paths. | 2 / 3 |
Total | 9 / 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 |
|---|---|---|
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 10 / 11 Passed | |
fa60f79
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.