Trails Error Format
Use this skill when a change touches error classes, Result.err, CLI/HTTP/MCP rendering, redaction, retry behavior, or host construction boundaries.
Workflow
- Classify the failure boundary:
- Trail runtime failures return
Result.err(new TrailsErrorSubclass(...)). - Surface presentation maps existing
TrailsErrorvalues to surface-specific output. - Construction or programmer errors may throw when the boundary is explicit.
- Trail runtime failures return
- Choose the most specific
TrailsErrorsubclass for runtime failures. - Trace rendering data back to owner exports such as error categories, retryability, and status or code maps.
- Check redaction at the boundary that exposes data to agents, users, logs, or surface clients.
- Verify tests cover both the raw error object and the rendered surface shape when both are public behavior.
Authoritative Sources
plugin/skills/trails/references/error-taxonomy.mddocs/contributing/warden-rules.mdpackages/core/src/errors.tspackages/core/src/transport-error-map.ts- Surface packages: CLI, MCP, HTTP, and Hono.
Advisory Context
- TRL-564 / PR #300 for host-boundary examples.
Must Not
- Do not collapse all throws into bugs; verify whether the throw is a construction or programmer-error boundary.
- Do not add parallel error-code maps when core owner data already exposes the mapping.
- Do not leak raw native
Errorvalues through public runtime Results when a specificTrailsErrorexists. - Do not put surface rendering policy inside trail implementation logic.
Output
Return:
- Runtime, rendering, redaction, or host-boundary classification.
- Expected error subclass and category.
- Owner mapping or rendering source.
- Surface behavior checked.
- Missing tests or follow-up issue.