Suni's definition of production, in his words: voice memo in, task completed and sent to email, zero prompts, STP. The bottom of the funnel is built and the loop is now proven end-to-end. What remains is the third criterion — a live surface showing what is moving through the pipeline and what is stuck.
Drift drop landed and confirmed clean 2026-07-30. Remaining: the laptop half, and a detector so drift is noticed by the machine rather than by us.
Needs the real state list from a live run; mini-local. Completed cards currently land in Backlog — a correctness defect in the production loop.
Convention, not code — needs a decision on what 'brings its tests' binds.
Ratified: vault goes desktop-only. Upstream of BLD-57. Open: whole vault vs. design tree, and attachment strategy.
A synthetic transaction through the live pipeline. Wants the disposition rails to exist first to be meaningful.
Largely dissolved by BLD-120 — the parser goes away with the mailbox. Do not harden what is being retired.
Scope the consumer to disposition-labelled cards.
Blocked: Requires Suni physically present in DC — the remedy must be proven against a real dead tunnel, and running it remotely severs the session that would observe it. Unblocks on his return to DC.
Cut over while the ledger is empty. Decide the OPS state set alongside BLD-57's sandbox target — both create team structure.
Blocked: Needs Kristin's phone in hand to install and test the Shortcut.
Per-location lock plus anti-drift.
DISSOLVED by BLD-120 — server-side ids cannot collide. Left open deliberately; closes when BLD-120 closes. Do not build.
A network-capable unattended agent writing to the vault. The safety posture IS the build. Deferred behind reliability.
Rolled into the BLD-33 rail set — do not estimate twice.
Comment trigger. Partially subsumed by BLD-59.
Todoist + Calendar + Gmail-draft share a shape — one build, not three. They block loudly with a named dep today, which is the correct failure.
Honey-Do intake for Kristin. Rail exists; needs the disposition clients.
The intake rail. Becomes the capture screen of the app.
RE-SCOPED: adopt native sandboxing rather than building the wall. Blocked by BLD-77.
Comment-as-instruction plus present-engine routing.
DEPRIORITIZED — real and unblocked, but nothing user-visible waits on it. Keeps its priority; does not get a session.
voice-pipeline is the top of the funnel and has no version control at all.
Standing container, never closes — not a build.
Must sweep BOTH relation and prose blockers — BLD-85's was prose, so a relation-only sweep returns clean on the case that motivated it.
Published read-only contractor view. Same renderer as this page.
PROMOTED by BLD-120 — machine-as-assignee is what makes 'who owes this' a query rather than a parse.
focus.json, updated
2026-07-30. Refreshing the browser does not rebuild — re-run build.py.