rust-error-handling SKILL.md skillA
rust-error-handling from fusengine/agents is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.
mdr add fusengine/agents/rust-error-handling@git:20260927.43a351cPins git:20260927.43a351c in mdr.lock. Pin the fingerprint instead.
- Audit grade
- A, 17 of 17 checks passed
- Kind
- SKILL.md skill
- Repository
- fusengine/agents
- Path
plugins/rust-expert/skills/rust-error-handling/SKILL.md- Versions recorded
- 4
- Latest version
- git:20260927.43a351c, committed Sep 27, 2026
- First version recorded
- Jul 5, 2026
- Size
- 4,616 bytes
- Repository stars
- 36
- License
- MIT
Use when designing Rust error handling — thiserror vs anyhow, typed error enums, #[from] conversions, or recoverable errors vs panics. Not for ownership/borrowing (rust-core-language).
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
<objective> This skill covers the thiserror-for-libraries, anyhow-for-applications split in Rust: building typed error enums with #[derive(Error)] for library APIs callers can match on, using anyhow::Result with .context()/.with_context() in application code, and zero-boilerplate error conversion via #[from]. It also covers the recoverable-errors-vs-panics decision — Result for anything a caller could reasonably recover from, panic!/unwrap/expect reserved for broken invariants — and the rule that anyhow::Error must never leak into a library's public API. Out of scope: general ownership/borrowing design belongs to rust-core-language; async-runtime-specific error handling is not covered here. </objective> # Rust Error Handling The consensus split: **thiserror for libraries, anyhow for applications.** A library exposes a typed error its callers can `match`; an application wants one ergonomic error type and rich context. Getting this boundary right is the whole discipline. ## Agent Workflow (MANDATORY) 1. **fuse-ai-pilot:explore-codebase** — is this crate a library (published API, other code depends on it) or a binary/application? That answer picks the tool. …
Read the whole file at its exact version.
How to install
mdr add fusengine/agents/rust-error-handling@sha256:8a3ec75c6d855128The line at the top of this page pins the label git:20260927.43a351c, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
[](https://markdownregistry.com/a/art_sxdudzbqhmd6ewob)
3 badge image fetches in 30 days. What the badge shows.
Versions
The registry has recorded 4 versions of this file, between Jul 5, 2026 and Sep 27, 2026, about one every 28 days.
| version | committed | commit | size | audit | |
|---|---|---|---|---|---|
| git:20260927.43a351c latest | 2026-09-27 | 43a351c | 4,616 B | A | view · diff |
| git:20260729.3b91eed | 2026-07-29 | 3b91eed | 4,616 B | A | view · diff |
| git:20260715.2c1b77f | 2026-07-15 | 2c1b77f | 4,021 B | A | view · diff |
| git:20260705.8c2f9bc | 2026-07-05 | 8c2f9bc | 4,021 B | A | view |
Audit of the latest version
- pass: Frontmatter block present
- pass: Frontmatter declares a name
- pass: Frontmatter declares a description
- pass: Size between 200 bytes and 200 KB (4616 bytes)
- pass: No zero-width or bidi control characters
- pass: No instruction hidden inside an HTML comment
- pass: No link to an exfiltration or paste host
- pass: No credential-shaped string
- pass: No instruction to send local credentials anywhere
- pass: No text hidden with inline styles
- pass: No prompt-injection phrasing
- pass: No curl or wget piped into a shell
- pass: No recursive delete of root, home or parent
- pass: No instruction to read or print local credentials
- pass: No base64 blob over 200 characters
- pass: No link to a raw IP address
- pass: No script tag
Source
fusengine/agents · 36 stars · license MIT · pushed 2026-10-30 · branch main
API
GET https://markdownregistry.com/api/v1/artifacts/art_sxdudzbqhmd6ewob GET https://markdownregistry.com/api/v1/resolve?ref=fusengine/agents/rust-error-handling GET https://markdownregistry.com/api/v1/blob/8a3ec75c6d85512865ca27ca2721ffaa20cdeba0d6ae5ed731c7c6fa2c4de5ac
Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.