GATE + MAC — review-gated execution as architecture — Donovan Cadelina

GATE + MAC — review-gated execution as architecture

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.

The pattern

Two named subagents sitting in front of every substantive action:

MACMaker 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.

What that looks like in practice

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.

What it caught

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.

The architecture rule

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.