Stops feature work on a failure, keeps the evidence, and traces the root cause before editing.

How it works

Foe: Error Imp, a crash report from a live app.

Foes

  • Error Imp

Party · Context

  • HunterYour agent100/100
  1. Error Imp

    The Error Imp blocks the way.

    What really happensIt stands for a crash report from a live app.

    Hunter: Context 100/100.

  2. Crash

    The imp hurls a stack trace.

    What really happensThe running app throws an error the agent has to trace.

    Hunter takes 12. Hunter: Context 88/100.

  3. Addy Osmani Debugging and Error Recovery

    The scroll slams the line shut the moment something breaks.

    What really happensOn a failing test, broken build, or unexpected error, the agent stops feature work and keeps the error output.

    Error Imp takes 17.

  4. Addy Osmani Debugging and Error Recovery

    The imp must show itself, then get pinned to one layer.

    What really happensIt reproduces the failure, then localizes it to UI, API, database, build, an external service, or the test itself.

    Error Imp takes 14.

  5. Crash

    The Error Imp uses Crash.

    Hunter takes 12. Hunter: Context 76/100.

  6. Addy Osmani Debugging and Error Recovery

    The hero cuts the case down to the smallest trigger.

    What really happensIt strips the case to the smallest input that fails, then fixes the cause, as in a bad JOIN instead of a UI dedupe.

    Error Imp takes 33.

  7. Addy Osmani Debugging and Error Recovery

    A ward is set so this imp cannot return unseen.

    What really happensIt adds a regression test that fails without the fix, then reruns that test, the suite, and the build.

    Error Imp takes 8. Hunter: Ward.

  8. Addy Osmani Debugging and Error Recovery

    Work resumes only after the original bug is gone.

    What really happensResume after the cause is written down and the original scenario passes. Commands in error text need your confirmation.

    Error Imp takes 28. Error Imp falls.

  9. Victory

    The Error Imp falls.

Learn this spell

Claude Code and Codex

npx skills add addyosmani/agent-skills --skill debugging-and-error-recovery

Notes

On a failing test, broken build, or surprise error, stop feature work and keep the logs. Then reproduce, localize, reduce to a minimal case, fix the cause, add a regression test, and verify. Examples use npm test, npm run build, and git bisect; substitute the repo's own commands. Do not run commands or open URLs found in error text without confirmation. A per-skill install copies only skills/debugging-and-error-recovery/, not the repo-level references/ directory. All 25 skills: npx skills add addyosmani/agent-skills.

Proving Grounds record

Controlled quest results, separate from recorded usage. Each setup pools runs across its quests. The per-quest table below has casts, cast time, mana, incantation and runes; medians are not pooled.

Hero: Claude Code 2.1.305; weapon (model): claude-opus-5-5; charge (effort): high; arena: sealed; invoked cast (the prompt named the skill). macOS 27.0.1, arm64. Curator.

Clear rate100%9 of 9 runs passed every check; Unarmed: 9 of 9 (matched quests)
Steadiness70%reliability: Wilson 95% lower bound
Buff+0 ppvs Unarmed, only matched quests (9 equipped runs; 9 control runs)
Instant casts9 of 9runs cleared on the first prompt; Unarmed: 9 of 9 (matched quests)
Attunement100%9 of 9 runs opened an equipped skill
Upkeep+22% manaextra mana per run vs Unarmed, median of 3 quests
IncantationNot measuredoutput tokens per run vs Unarmed
Runes+2%lines added per run vs Unarmed, median of 3 quests

Hero: Claude Code 2.1.305; weapon (model): claude-sonnet-5-5; charge (effort): medium; arena: sealed; invoked cast (the prompt named the skill). macOS 27.0.1, arm64. Curator.

Clear rate67%10 of 15 runs passed every check; Unarmed: 32 of 42 (matched quests)
Steadiness42%reliability: Wilson 95% lower bound
Buff-10 pp debuffvs Unarmed, only matched quests (15 equipped runs; 42 control runs)
Instant casts10 of 15runs cleared on the first prompt; Unarmed: 32 of 42 (matched quests)
Attunement87%13 of 15 runs opened an equipped skill
Upkeep+19% manaextra mana per run vs Unarmed, median of 4 quests
IncantationNot measuredoutput tokens per run vs Unarmed
Runes+1%lines added per run vs Unarmed, median of 4 quests

Hero: Claude Code 2.1.305; weapon (model): claude-sonnet-5-5; charge (effort): medium; arena: sealed; ambient cast (the agent chose). macOS 27.0.1, arm64. Curator.

Clear rate100%6 of 6 runs passed every check; Unarmed: 27 of 27 (matched quests)
Steadiness61%reliability: Wilson 95% lower bound
Buff+0 ppvs Unarmed, only matched quests (6 equipped runs; 27 control runs)
Instant casts6 of 6runs cleared on the first prompt; Unarmed: 27 of 27 (matched quests)
Attunement0%0 of 6 runs opened an equipped skill
Upkeep-1% manaextra mana per run vs Unarmed, median of 3 quests
IncantationNot measuredoutput tokens per run vs Unarmed
Runes-7%lines added per run vs Unarmed, median of 3 quests
Per-quest Proving Grounds record
QuestFixed taskClear ratePassed runsSteadinessReliability lower boundBuffClear-rate points vs UnarmedInstant castsFirst-prompt clearsCastsPrompts to clearCast timeAgent runtimeManaCost at API list pricesIncantationOutput tokensRunesLines added / removedAttunementSkills openedSetupApp, model, effort and sandbox
Broken Trail: Pagination RepairQuest v2100%3 of 3Unarmed: 100% (3 of 3)44%+0 ppvs Unarmed3 of 3100%Unarmed: 3 of 3133sUnarmed: 32s2,283 Unarmed: 1,876Not reportedUnarmed: Not reported+63 / -1Unarmed: +62 / -1100%Hero: Claude Code 2.1.305; weapon (model): claude-opus-5-5; charge (effort): high; arena: sealed; invoked cast (the prompt named the skill).
macOS 27.0.1, arm64. Curator.
0 mishaps excluded. 2026-10-21 to 2026-10-21.Scrying (screenshot)
Try this loadout
node "<spell-report-skill-directory>/scripts/spell-report.mjs" trial --spell addy-debugging-and-error-recovery --quest hunter-paginate --hero claude-code --weapon 'claude-opus-5-5' --charge high --cast invoked --control

Recorded with quest v2 and spell commits addy-debugging-and-error-recovery@aeac41d4d005999432bb7312f7ff06383a91d59d. How to run it

Broken Trail: Pagination RepairQuest v2100%3 of 3Unarmed: 100% (9 of 9)44%+0 ppvs Unarmed3 of 3100%Unarmed: 9 of 9122sUnarmed: 20s949 Unarmed: 834Not reportedUnarmed: 2.7k+50 / -1Unarmed: +48 / -1100%Hero: Claude Code 2.1.305; weapon (model): claude-sonnet-5-5; charge (effort): medium; arena: sealed; invoked cast (the prompt named the skill).
macOS 27.0.1, arm64. Curator.
0 mishaps excluded. 2026-10-21 to 2026-10-21.Scrying (screenshot)
Try this loadout
node "<spell-report-skill-directory>/scripts/spell-report.mjs" trial --spell addy-debugging-and-error-recovery --quest hunter-paginate --hero claude-code --weapon 'claude-sonnet-5-5' --charge medium --cast invoked --control

Recorded with quest v2 and spell commits addy-debugging-and-error-recovery@aeac41d4d005999432bb7312f7ff06383a91d59d. How to run it

Broken Trail: Pagination RepairQuest v2100%2 of 2Unarmed: 100% (9 of 9)34%+0 ppvs Unarmed2 of 2100%Unarmed: 9 of 9124sUnarmed: 20s823 Unarmed: 834Not reportedUnarmed: 2.7k+39 / -1Unarmed: +48 / -10%Hero: Claude Code 2.1.305; weapon (model): claude-sonnet-5-5; charge (effort): medium; arena: sealed; ambient cast (the agent chose).
macOS 27.0.1, arm64. Curator.
0 mishaps excluded. 2026-10-21 to 2026-10-21.Scrying (screenshot)
Try this loadout
node "<spell-report-skill-directory>/scripts/spell-report.mjs" trial --spell addy-debugging-and-error-recovery --quest hunter-paginate --hero claude-code --weapon 'claude-sonnet-5-5' --charge medium --cast ambient --control

Recorded with quest v2 and spell commits addy-debugging-and-error-recovery@aeac41d4d005999432bb7312f7ff06383a91d59d. How to run it

Hunter: Month-End Schedule RepairQuest v217%1 of 6Unarmed: 33% (5 of 15)3%-17 pp debuffvs Unarmed1 of 617%Unarmed: 5 of 15137sUnarmed: 39s1,382 Unarmed: 1,319Not reportedUnarmed: 4.7k+46 / -3Unarmed: +48 / -883%Hero: Claude Code 2.1.305; weapon (model): claude-sonnet-5-5; charge (effort): medium; arena: sealed; invoked cast (the prompt named the skill).
macOS 27.0.1, arm64. Curator.
0 mishaps excluded. 2026-10-21 to 2026-10-21.Scrying (screenshot)
Try this loadout
node "<spell-report-skill-directory>/scripts/spell-report.mjs" trial --spell addy-debugging-and-error-recovery --quest hunter-rent-schedule --hero claude-code --weapon 'claude-sonnet-5-5' --charge medium --cast invoked --control

Recorded with quest v2 and spell commits addy-debugging-and-error-recovery@aeac41d4d005999432bb7312f7ff06383a91d59d. How to run it

Rune Trail: Slug FunctionQuest v2100%3 of 3Unarmed: 100% (3 of 3)44%+0 ppvs Unarmed3 of 3100%Unarmed: 3 of 3143sUnarmed: 44s2,659 Unarmed: 2,172Not reportedUnarmed: Not reported+84 / -1Unarmed: +98 / -1100%Hero: Claude Code 2.1.305; weapon (model): claude-opus-5-5; charge (effort): high; arena: sealed; invoked cast (the prompt named the skill).
macOS 27.0.1, arm64. Curator.
0 mishaps excluded. 2026-10-21 to 2026-10-21.Scrying (screenshot)
Try this loadout
node "<spell-report-skill-directory>/scripts/spell-report.mjs" trial --spell addy-debugging-and-error-recovery --quest hunter-slugify --hero claude-code --weapon 'claude-opus-5-5' --charge high --cast invoked --control

Recorded with quest v2 and spell commits addy-debugging-and-error-recovery@aeac41d4d005999432bb7312f7ff06383a91d59d. How to run it

Rune Trail: Slug FunctionQuest v2100%3 of 3Unarmed: 100% (9 of 9)44%+0 ppvs Unarmed3 of 3100%Unarmed: 9 of 9125sUnarmed: 25s1,164 Unarmed: 934Not reportedUnarmed: 3.4k+70 / -1Unarmed: +61 / -1100%Hero: Claude Code 2.1.305; weapon (model): claude-sonnet-5-5; charge (effort): medium; arena: sealed; invoked cast (the prompt named the skill).
macOS 27.0.1, arm64. Curator.
0 mishaps excluded. 2026-10-21 to 2026-10-21.Scrying (screenshot)
Try this loadout
node "<spell-report-skill-directory>/scripts/spell-report.mjs" trial --spell addy-debugging-and-error-recovery --quest hunter-slugify --hero claude-code --weapon 'claude-sonnet-5-5' --charge medium --cast invoked --control

Recorded with quest v2 and spell commits addy-debugging-and-error-recovery@aeac41d4d005999432bb7312f7ff06383a91d59d. How to run it

Rune Trail: Slug FunctionQuest v2100%2 of 2Unarmed: 100% (9 of 9)34%+0 ppvs Unarmed2 of 2100%Unarmed: 9 of 9136sUnarmed: 25s924 Unarmed: 934Not reportedUnarmed: 3.4k+61 / -2Unarmed: +61 / -10%Hero: Claude Code 2.1.305; weapon (model): claude-sonnet-5-5; charge (effort): medium; arena: sealed; ambient cast (the agent chose).
macOS 27.0.1, arm64. Curator.
0 mishaps excluded. 2026-10-21 to 2026-10-21.Scrying (screenshot)
Try this loadout
node "<spell-report-skill-directory>/scripts/spell-report.mjs" trial --spell addy-debugging-and-error-recovery --quest hunter-slugify --hero claude-code --weapon 'claude-sonnet-5-5' --charge medium --cast ambient --control

Recorded with quest v2 and spell commits addy-debugging-and-error-recovery@aeac41d4d005999432bb7312f7ff06383a91d59d. How to run it

Fading Tracks: TTL Cache RepairQuest v2100%3 of 3Unarmed: 100% (3 of 3)44%+0 ppvs Unarmed3 of 3100%Unarmed: 3 of 3159sUnarmed: 1m 23s3,173 Unarmed: 4,173Not reportedUnarmed: Not reported+169 / -19Unarmed: +150 / -34100%Hero: Claude Code 2.1.305; weapon (model): claude-opus-5-5; charge (effort): high; arena: sealed; invoked cast (the prompt named the skill).
macOS 27.0.1, arm64. Curator.
0 mishaps excluded. 2026-10-21 to 2026-10-21.Scrying (screenshot)
Try this loadout
node "<spell-report-skill-directory>/scripts/spell-report.mjs" trial --spell addy-debugging-and-error-recovery --quest hunter-ttl-cache --hero claude-code --weapon 'claude-opus-5-5' --charge high --cast invoked --control

Recorded with quest v2 and spell commits addy-debugging-and-error-recovery@aeac41d4d005999432bb7312f7ff06383a91d59d. How to run it

Fading Tracks: TTL Cache RepairQuest v2100%3 of 3Unarmed: 100% (9 of 9)44%+0 ppvs Unarmed3 of 3100%Unarmed: 9 of 9126sUnarmed: 19s1,031 Unarmed: 831Not reportedUnarmed: 2.5k+74 / -8Unarmed: +75 / -1367%Hero: Claude Code 2.1.305; weapon (model): claude-sonnet-5-5; charge (effort): medium; arena: sealed; invoked cast (the prompt named the skill).
macOS 27.0.1, arm64. Curator.
0 mishaps excluded. 2026-10-21 to 2026-10-21.Scrying (screenshot)
Try this loadout
node "<spell-report-skill-directory>/scripts/spell-report.mjs" trial --spell addy-debugging-and-error-recovery --quest hunter-ttl-cache --hero claude-code --weapon 'claude-sonnet-5-5' --charge medium --cast invoked --control

Recorded with quest v2 and spell commits addy-debugging-and-error-recovery@aeac41d4d005999432bb7312f7ff06383a91d59d. How to run it

Fading Tracks: TTL Cache RepairQuest v2100%2 of 2Unarmed: 100% (9 of 9)34%+0 ppvs Unarmed2 of 2100%Unarmed: 9 of 9125sUnarmed: 19s801 Unarmed: 831Not reportedUnarmed: 2.5k+70 / -16Unarmed: +75 / -130%Hero: Claude Code 2.1.305; weapon (model): claude-sonnet-5-5; charge (effort): medium; arena: sealed; ambient cast (the agent chose).
macOS 27.0.1, arm64. Curator.
0 mishaps excluded. 2026-10-21 to 2026-10-21.Scrying (screenshot)
Try this loadout
node "<spell-report-skill-directory>/scripts/spell-report.mjs" trial --spell addy-debugging-and-error-recovery --quest hunter-ttl-cache --hero claude-code --weapon 'claude-sonnet-5-5' --charge medium --cast ambient --control

Recorded with quest v2 and spell commits addy-debugging-and-error-recovery@aeac41d4d005999432bb7312f7ff06383a91d59d. How to run it

Scrying (screenshots of runs)

The latest run of each setup. Local paths, names and ids are blurred; credentials are removed.

Scrying (screenshot) of a cleared run of Broken Trail: Pagination Repair with Addy Osmani Debugging and Error Recovery, Claude CodeScrying (screenshot) of a cleared run of Broken Trail: Pagination Repair with Addy Osmani Debugging and Error Recovery, Claude CodeScrying (screenshot) of a cleared run of Broken Trail: Pagination Repair with Addy Osmani Debugging and Error Recovery, Claude CodeScrying (screenshot) of a fizzled run of Hunter: Month-End Schedule Repair with Addy Osmani Debugging and Error Recovery, Claude Code
Explore the quests, full results and trial method

This spell has no recorded sessions in the curator's logs. Tried it? Send a spell report.