traqr.dev·working document·sheet 04 — guardian
What happens after /ship.
Guardian is the daemon half of the workflow. An agent ships a PR from its slot and moves on; Guardian rebases it, builds it, merges it, syncs the other slots, and writes what it learned back to memory. It merged the pull request that built this page — § 00 walks that exact PR through.
§ 00·one real pr
Twelve minutes, no hands.
The redesign you’re looking at shipped as PR #1803 from an agent’s worktree slot. Guardian picked it up, merged it twelve minutes after it opened, and the production deploy followed forty-one seconds later. Nobody was at the keyboard for any of it.
fig. 1 — reconstructed from the PR’s GitHub record and the deploy notifications. Times UTC, June 10, 2026.
§ 01·the lifecycle
Autonomous, with brakes.
Most of Guardian’s code is about when not to merge. The interesting parts are the failure paths — what gets retried, what gets held, and what gets handed to an agent to fix.
scan + classify
Guardian watches open PRs carrying its label. Each one gets a size and risk classification — small and safe merges fast, riskier work waits longer or waits for a human.
rebase
Onto main, before anything else. A conflict gets up to three resolution attempts; after that the PR is held and escalated with the reason recorded, not silently retried forever.
build
A red build never merges. A CI failure doesn't just stop the line — Guardian dispatches an agent to try to fix it.
merge
Squash-merge via the API. Three real merge failures trip a circuit breaker: the PR is set aside, retried after a cooldown, and a human can clear the breaker with a label. A deploy already in progress doesn't count as a failure — that distinction took a real incident to learn.
post-merge
Sync every other worktree slot (skipping any with a live session in it), close the Linear ticket, extract what the PR taught into memory, and write the snapshot fig. 2 shows.
§ 02·the live record
The receipt it writes itself.
After every merge, Guardian writes a snapshot of what it did to a key-value store. This is the actual record that was sitting there when this page was written. The eight skipped slots had live Claude sessions in them — Guardian doesn’t yank a worktree out from under a working agent.
fig. 2 — guardian:last_merge, read 2026-06-09 11:06 PM ET. Values unedited.
§ 03·install
Part of the harness.
Guardian isn’t a separate install — it arrives configured when the CLI generates your harness, and it pairs with the memory server to write down what each merge taught it.