The problem: ADHD brains move fast. Mine ships impulsive errors before the slower judgment circuit catches up. “Write more tests” is the wrong answer because the errors aren’t usually code-level — they’re scope errors, framing errors, premature commitments.
I needed external scaffolding that catches the kind of mistakes I make, before they leave the keyboard.
Two named subagents sitting in front of every substantive action:
MAC — Maker of Alternative Cheap solutions. Before any meaningful build, MAC asks: same result with fewer tokens? Cheaper path I’m skipping? Which assumption am I anchored on that I haven’t named? MAC’s job is to interrupt the obvious-first-answer reflex with a structured pause.
GATE — review of the draft before it ships.
Discord replies, code edits, git commits all pass through a
PreToolUse hook that calls GATE. GATE returns
APPROVE or FLAG [code] with a one-sentence
critique. The hook blocks the action on FLAG until either the draft is
fixed or an explicit [gate-override: <reason>] is
declared inline.
me (the brain) drafts something → MAC runs at the prompt boundary
(auto-fired by hook)
→ I read MAC's framing, often re-draft
→ I send the action (reply, edit, commit)
→ GATE intercepts via PreToolUse hook
→ APPROVE: action goes through
FLAG: I fix or override
The overrides are the interesting part. They surface in a separate
log every time, and an analyzer script tallies the recurring codes. When
fragile-claim shows up forty times in a week against the
same kind of unsourced number, that’s a real pattern worth promoting to
a permanent rule, not a one-off.
Pre-typed permission trailers. Unsourced quantitative claims. Scope creep on bug fixes. Speculation framed as fact. Premature commits before the diff was verified. All errors the slower part of me would have flagged given another minute — but I’d already shipped.
For an ADHD operator, the question isn’t “how do I think more carefully?” It’s “where does the catch happen if I don’t?”
Review-gated execution moves the catch from internal discipline (unreliable in my brain) to external hook (reliable always). The architecture replaces a willpower problem with a plumbing problem. Plumbing scales; willpower doesn’t.
This is the framing I’d bring to any production system with a human in the loop: design the catches outside the human, because that’s the layer that compounds.