m13-domain-error — Claude Code skill: what it does, install
This skill helps design domain error types, recovery rules, and debugging context. Use it when Rust code needs retry, fallback, or clear error boundaries.
npx skills add actionbook/rust-skills --skill m13-domain-error -a claude-codeWhat m13-domain-error does
The skill organizes domain errors by audience and recovery path: user-facing, internal, system, transient, and permanent. It guides decisions about friendly messages, developer diagnostics, operational alerts, retryable failures, and errors that should fail fast.
Its material includes patterns and examples for thiserror, anyhow::Context, tracing, tokio-retry, backoff, and failsafe-rs. It covers exponential backoff, fallback values, circuit breakers, timeouts, bulkheads, and a typed AppError hierarchy with an is_retryable() check.
The skill is marked user-invocable: false, so it is not meant to run as a separate slash command. For a Rust project, check that libraries used by the examples, such as tokio-retry or failsafe-rs, fit the codebase before applying them.
What it helps with
- separate user, developer, and ops errors
- choose retry or fallback for a failure
- model an error hierarchy with
thiserror - add call context with
anyhow::Context - cap retry attempts and backoff delays
Example prompts for the agent
- Design domain error handling for this Rust module. Separate user-facing, internal, and transient failures.
- Review this code and decide where exponential-backoff retry fits, where fallback is safer, and where it should fail fast.
- Create an
AppErrortype withthiserrorand addis_retryable()for temporary service failures.
How to install m13-domain-error
1Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill m13-domain-error -a claude-code2Manually: put the files in place
~/.claude/skills/m13-domain-error/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/m13-domain-error/
1Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill m13-domain-error -a codex2Manually: put the files in place
.agents/skills/m13-domain-error/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill m13-domain-error -a cursor2Manually: put the files in place
.cursor/skills/m13-domain-error/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install actionbook/rust-skills m13-domain-error2Manually: put the files in place
.github/skills/m13-domain-error/SKILL.md1Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill m13-domain-error -a gemini-cli2Platform CLI
gemini skills install https://github.com/actionbook/rust-skills --path skills/m13-domain-errorManually: put the files in place
.devin/skills/m13-domain-error/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add actionbook/rust-skills --skill m13-domain-error -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about m13-domain-error
How do I install m13-domain-error in Claude Code?
Run npx skills add actionbook/rust-skills --skill m13-domain-error -a claude-code, then run npx skills add actionbook/rust-skills --skill m13-domain-error -a claude-code again. The skill is then located at ~/.claude/skills/m13-domain-error/SKILL.md.
What does m13-domain-error do?
It helps design domain errors by audience, recovery option, and debugging context. It also maps cases to retry, fallback, timeout, circuit breaker, or fail-fast handling.
Which libraries and patterns does the skill cover?
Examples use thiserror, anyhow::Context, tracing, tokio-retry, backoff, and failsafe-rs. The material also covers timeouts, circuit breakers, and bulkheads.