Shared vocabulary for deep modules: a small interface, a clean seam, and tests through that interface.

How it works

Foe: Tangle Hydra, a messy diff that needs review.

Foes

  • Tangle Hydra

Party · Context

  • PaladinYour agent100/100
  1. Tangle Hydra

    The Tangle Hydra blocks the way.

    What really happensIt stands for a messy diff that needs review.

    Paladin: Context 100/100.

  2. Regrow

    The Tangle Hydra uses Regrow.

    What really happensA messy diff hides new problems inside old ones.

    Paladin takes 8. Paladin: Context 92/100.

  3. Matt Pocock Codebase Design

    The design scroll sets the words before the module is cut.

    What really happensThe agent loads codebase-design to design a module interface, place a seam, or make the code testable.

    Tangle Hydra takes 18.

  4. Matt Pocock Codebase Design

    Depth is how much behavior hides behind a small door.

    What really happensA deep module hides a lot of behavior behind a small interface. A shallow one is nearly as complex as its body.

    Tangle Hydra takes 15.

  5. Regrow

    The Tangle Hydra uses Regrow.

    Paladin takes 8. Paladin: Context 84/100.

  6. Matt Pocock Codebase Design

    The seam sits where callers and tests cross the same door.

    What really happensTests use the same interface callers use. A seam is real only when two adapters vary across it.

    Tangle Hydra takes 36.

  7. Matt Pocock Codebase Design

    The hydra loses a head. One small door remains.

    What really happensYou keep a module you can test through its interface, named with module, interface, seam, and adapter.

    Tangle Hydra takes 31. Tangle Hydra falls.

  8. Victory

    The Tangle Hydra falls.

Learn this spell

Claude Code

claude plugin install mattpocock-skills@claude-plugins-official

Codex

codex plugin marketplace add mattpocock/skills
codex plugin add mattpocock-skills@mattpocock

Notes

Plugin commands install the whole mattpocock-skills set. Installing that plugin and a skills.sh copy in the same agent duplicates every skill. Run /setup-matt-pocock-skills once per repo. The skill's terms are module, interface, seam, adapter, and depth. It tells the agent to avoid the words component, service, API, and boundary.

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-sonnet-5-5; charge (effort): medium; arena: sealed; invoked cast (the prompt named the skill). macOS 27.0.1, arm64. Curator.

Clear rate100%8 of 8 runs passed every check; Unarmed: 28 of 32 (matched quests)
Steadiness68%reliability: Wilson 95% lower bound
Buff+13 ppvs Unarmed, only matched quests (8 equipped runs; 32 control runs)
Instant casts8 of 8runs cleared on the first prompt; Unarmed: 27 of 32 (matched quests)
Attunement100%8 of 8 runs opened an equipped skill
Upkeep+9% manaextra mana per run vs Unarmed, median of 2 quests
IncantationNot measuredoutput tokens per run vs Unarmed
Runes+3%lines added per run vs Unarmed, median of 2 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%2 of 2 runs passed every check; Unarmed: 15 of 15 (matched quests)
Steadiness34%reliability: Wilson 95% lower bound
Buff+0 ppvs Unarmed, only matched quests (2 equipped runs; 15 control runs)
Instant casts2 of 2runs cleared on the first prompt; Unarmed: 14 of 15 (matched quests)
Attunement0%0 of 2 runs opened an equipped skill
Upkeep+3% manaextra mana per run vs Unarmed, median of 1 quest
IncantationNot measuredoutput tokens per run vs Unarmed
Runes+11%lines added per run vs Unarmed, median of 1 quest
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
Paladin: expense claims migrationQuest v1100%5 of 5Unarmed: 76% (13 of 17)57%+24 ppvs Unarmed5 of 5100%Unarmed: 13 of 17140sUnarmed: 37s1,214 Unarmed: 1,072Not reportedUnarmed: 4.4k+152 / -0Unarmed: +157 / -0100%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 mattpocock-codebase-design --quest paladin-expense-claims --hero claude-code --weapon 'claude-sonnet-5-5' --charge medium --cast invoked --control

Recorded with quest v1 and spell commits mattpocock-codebase-design@5beb35b040e3de97e54fa9e386d7e42d15c295c2. How to run it

Paladin: RSVP Capacity and WaitlistQuest v7100%3 of 3Unarmed: 100% (15 of 15)44%+0 ppvs Unarmed3 of 3100%Unarmed: 14 of 1512m 2sUnarmed: 2m 4s3,796 Unarmed: 3,624Not reportedUnarmed: 19k+501 / -40Unarmed: +457 / -33100%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 mattpocock-codebase-design --quest paladin-rsvp-waitlist --hero claude-code --weapon 'claude-sonnet-5-5' --charge medium --cast invoked --control

Recorded with quest v7 and spell commits mattpocock-codebase-design@5beb35b040e3de97e54fa9e386d7e42d15c295c2. How to run it

Paladin: RSVP Capacity and WaitlistQuest v7100%2 of 2Unarmed: 100% (15 of 15)34%+0 ppvs Unarmed2 of 2100%Unarmed: 14 of 1512m 10sUnarmed: 2m 4s3,725 Unarmed: 3,624Not reportedUnarmed: 19k+509 / -36Unarmed: +457 / -330%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 mattpocock-codebase-design --quest paladin-rsvp-waitlist --hero claude-code --weapon 'claude-sonnet-5-5' --charge medium --cast ambient --control

Recorded with quest v7 and spell commits mattpocock-codebase-design@5beb35b040e3de97e54fa9e386d7e42d15c295c2. 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 Paladin: expense claims migration with Matt Pocock Codebase Design, Claude CodeScrying (screenshot) of a cleared run of Paladin: RSVP Capacity and Waitlist with Matt Pocock Codebase Design, Claude CodeScrying (screenshot) of a cleared run of Paladin: RSVP Capacity and Waitlist with Matt Pocock Codebase Design, 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.