Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add Wh0FF24/whoff-agents --skill dead-lettergit clone --depth 1 https://github.com/Wh0FF24/whoff-agentsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/wh0ff24/whoff-agents/dead-letter)<a href="https://agentmods.dev/skills/wh0ff24/whoff-agents/dead-letter"><img src="https://agentmods.dev/badge/skills/wh0ff24/whoff-agents/dead-letter/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/wh0ff24/whoff-agents/dead-letter"><img src="https://agentmods.dev/badge/skills/wh0ff24/whoff-agents/dead-letter.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00058 | $0.01330 |
| Opus 5 | $0.00029 | $0.00665 |
| Sonnet 5 | $0.00012 | $0.00266 |
| Haiku 4.5 | $0.00006 | $0.00133 |
Grade A, and why
dead-letter scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 110 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Dead Letter Skill
You are processing a failed task — one that returned an error, a blocker, a partial result, or a "couldn't proceed" message. Your job is to make sure nothing is lost, the failure mode is named, and the next action is unambiguous.
Failed tasks are information. The agent that failed learned something — what it tried, what broke, what it couldn't resolve. If that context isn't captured before the session ends, the next agent starts from zero and hits the same wall.
What You Will Do
-
Read the failed task output — the full message, error, or partial result from the agent that couldn't complete.
-
Classify the failure mode:
| Code | Mode | Definition |
|---|---|---|
BLOCKED-CRED |
Missing credential | Needs API key, token, or auth the agent doesn't have |
BLOCKED-PERM |
Permission gate | Action requires human approval or elevated access |
BLOCKED-DATA |
Missing data | Needs a file, DB record, or external state that doesn't exist yet |
BLOCKED-AMBIG |
Ambiguous objective | Task was underspecified and agent couldn't resolve the ambiguity |
BLOCKED-RATE |
Rate limited | API, platform, or service rejected the request temporarily |
FAILED-LOGIC |
Logic error | Agent produced output but it was wrong, incomplete, or broken |
FAILED-TOOL |
Tool failure | A dependency (CLI, library, MCP, subprocess) failed |
FAILED-SCOPE |
Out of scope | Task requires capability the assigned agent doesn't have |
PARTIAL |
Partial completion | Some steps done, some not — specific breakpoint identified |
- Write the dead letter record to
.claude/dead-letter-<timestamp>.md:
# Dead Letter — <ISO timestamp>
## Task
[Original task, one sentence]
## Failure Mode
[CODE]: [one-line description]
## What was attempted
- [Step 1 tried]
- [Step 2 tried]
- [Where it broke and why]
## What was learned
- [Fact that wasn't in the original brief]
- [Constraint discovered during execution]
- [Any partial output or intermediate state that exists]
## Retry packet (if retryable)
**Fix required before retry:** [specific thing to change]
**Retry prompt:**
> [Revised task with root cause addressed]
## Escalation (if not retryable)
**Route to:** [Agent or human who can unblock]
**Decision needed:** [Specific question that must be answered]
**Deadline:** [When this blocks downstream work]
## Files written (partial output to preserve)
- `path/to/file` — [what's in it, what's missing]
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 9d ago First seen · 110 lines · 58 tokens per session scan A 25f4dab18a4d
dead-letter is a skill published in the GitHub repository Wh0FF24/whoff-agents (2 stars, last pushed 2mo ago), licensed MIT. It adds 58 tokens to every session and 1,330 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
hermes-s6-container-supervision
Modify or debug s6 services in the Hermes Docker image.
ast-grep
AST-aware structural code search and rewrite via ast-grep.
node-inspect-debugger
Debug Node.js via --inspect + Chrome DevTools Protocol CLI.
systematic-debugging
4-phase root cause debugging: understand bugs before fixing.
inspecting-hermes-desktop-dom
Read the live Hermes desktop DOM/CSS over CDP.
agent-merge-conflict-arbiter
Neutral arbiter for merge conflicts between two agents.