Advisory triage stops before the ship button. A pull request moves through typed checks, a comment and a label, then stops; the merge button is human only. Below a confidence floor, a shredder discards the typed answer, while an annotation keeps its shape with a low-confidence badge.

Advisory PR triage that never owns the merge

I once watched a triage bot look alive on a pull request while saying nothing useful. It left a comment. It set a label. The checks looked calm enough that nobody panicked. Under the hood, every shaped answer the classifier had already produced — the kind with a real type, a score, a choice — had been thrown away by a confidence floor, so the public surface collapsed to unknown. The bot was busy. The triage was empty. That is a worse failure than a loud red check, because executives read “the bot reviewed it” and implementers inherit folklore. ...

November 8, 2026 Â· Dave Voyles
Two agent work lanes with separate scratch trays instead of one shared /tmp bin

Per-checkout isolation so parallel agents stop sharing one /tmp

Two coding agents on the same machine will happily invent the same filenames, write the same “temporary” paths, and then argue about whose receipt is whose. I learned that the boring way: launch parallel work, watch tests and push gates read unbound or fixed scratch, and discover that “green” was sometimes just whoever finished last painting over /tmp. The isolation unit was wrong. People reach for product names, container names, even agent display names — anything that sounds like a fence. The fence that actually worked was smaller and duller: the checkout. One worktree, one scheme for artifact classes, receipts that follow that environment, and tests that refuse to collide on a shared fixed path. ...

November 1, 2026 Â· Dave Voyles
Two separate computer desks — a coding laptop desk and a personal-assistant planner desk — each with its own door and a shared one-time check stamp

Two brains, two jobs: Bender engineers, Maya assists

I used to want one agent that could do everything. Write the PR, tidy the calendar, answer Slack, review the diff, remind me about lacrosse pickup — one conversational surface, one “brain,” one place to yell when something was wrong. It felt efficient until the failures started rhyming. Coding work leaned on personal-assistant shortcuts. Calendar noise interrupted engineering focus. A gateway that looked like a helpful front door became a noisy hallway where every request sounded the same, and “the agent is up” — meaning the process is running, the light is on — stopped meaning either job was actually done. ...

September 26, 2026 Â· Dave Voyles