Four JARBUS v2 upgrades are on the table and sixteen days of sabbatical remain — at most one gets built. Today's lesson is the triage: the criteria for picking, and why the evidence points at a scoped daily brief.
The Jul 21 audit's verdict was 'sound at the core, unwitnessed at the surface' — the engine ran through your break, but no surface could answer 'what is true right now.' The audit also documented the abandonment pattern: solo systems die when the operator loses sight of them, not when the code breaks. Whatever you fund in the next sixteen days should be the thing that keeps that from happening after Aug 15, when your attention drops to minutes per day.
The four candidates, one breath each. Fail-loud contract: no automation may fail into a log file — failure fires a 🚨 Things task, and a placeholder artifact is never reported as a delivery. Declarative route registry: replace the 11 hardcoded intent handlers in route.py with a routes.yaml file, so adding a route is a data edit with a declared risk level and autonomy setting. Witness layer: STATUS.md, the ledgers, and project state become generated views over reporter.py's event stream (data/jarbus-events/*.jsonl), so the describing layer can never drift from reality again. Signal architecture: three channels — a deterministic daily brief (notify), a decisions-only push queue (question), and a weekly opportunity radar (review).
Triage on a bounded runway uses three questions. One: does it still pay off on Sep 15, when you're back at work and giving this system minutes a day instead of hours? Two: how much of it already exists — what fraction is a new build versus wiring up bricks already laid? Three: what does the audit's own sequencing law say? Its Phase 1 is signal BEFORE structure, with the stated reason that the brief is what keeps the operator engaged while everything else waits — losing sight of the system is the documented first domino of abandonment.
Scored that way, the field separates fast. Fail-loud is already half-shipped this month — the alert dedup ledger (commit d9b37fc, Jul 28's lesson) and plan-day's retry wrapper (a727e1b) were its first two bricks; finishing it is cleanup, not a fund-one pick. The routing registry is the biggest lift and the trap: it feels like 'real engineering' but only pays off in a future where v2 development continues. The full witness layer and the full three-channel architecture are each 2–3+ sessions. But ONE channel — the deterministic daily brief, generated from the event stream that reporter.py already writes — is a bounded build that doubles as witness-layer v0 and is precisely the re-onboarding surface your post-sabbatical self needs. That's the rec: fund the brief, scoped to one channel.
Before picking, audit what's already landed toward each upgrade — the raw material changes the math:
git -C ~/Claude/PDB log --oneline --since='2026-07-24' | head -4
cat ~/Claude/PDB/data/alert-state.json
ls ~/Claude/PDB/data/jarbus-events/ | tail -3
With sixteen days left, fund the surface that tells you the truth every morning — everything else can drift and be recovered; an unwitnessed system cannot.