What we've argued out so far, and what to build first.
session 2 · 2026-04-14 · sparring mode ON · "make it so" not yet said
This is the state of the framework after sparring. 14 signals parsed from Pierre,
integrated into personas / pipeline invariants / revised build sequence. Three pushbacks
still on the table. First sprint proposed โ one block only.
1. "Log raw + classified every turn" is expensive at scale
Classification = extra LLM call. Per turn ร 20 turns ร 10 sessions/day = 200 extra calls daily. At Haiku cost tolerable (~$0.50/day); at Opus, ugly.
My call: raw always (cheap), classification async in batches at session close by the Librarian. Same output, no inline cost.
2. "GitHub push all the time" โ define all-the-time
Per-turn push = 200/day. GitHub rate limits will bite. Options: per-commit-push (clean history but noisy); per-session-close-push (clean, batched); per-N-commits (middle).
My call: commit per turn (local) โ push at session close. Turn-level rollback via git reset. GitHub stays clean. Override flag available.
3. "Invariants are what they'll be" โ careful here
Fine at pipeline level (grocery flow can evolve). NOT fine at session level. If session purpose can "drift" into whatever, the anchor for drift detection disappears.
My call: session invariants hard (purpose stated, mode locked). Pipeline invariants soft (outcomes can be renegotiated as the company grows).
Revised build sequence โ four blocks
BLOCK 1The spine nothing else works without this
Tailscale pre-flight check (10 min) โ hook verifies tunnel before any brain operation. Fails loud.
Stop hook โ runs after every turn. ๐ Librarian writes turn row to brain (raw only, classification deferred). Appends summary to HANDOFF.md. Updates budget. Flags write failure.
BLOCK 2The compounding without this, sessions are isolated
Auditor skill /done โ invoked on session close. Fires classification of turns in batch. Pierre rates + AI rates. ๐งโโ๏ธ Auditor finds repeated mistakes in brain DB. Proposes changes. Writes final handoff.
๐ฎ Cop drift detector โ background check per turn. AI drift + user drift logged separately as drift_events. 3+ events triggers checkpoint.
BLOCK 3The safety without this, mistakes are permanent
๐พ Archivist โ commit per turn, push at session close. /undo skill for turn-level rollback.
BLOCK 4The cosmetics nice, not blocking
Time hook โ wall clock in statusLine. Claude says "I predict X minutes", logged, compared next time. Calibration loop.
Status bar control board โ budget, turn count, active personas, brain write status, time.
First sprint โ Block 1 only
Three files. All bash. All short. All read/write brain via existing ssh + docker exec pattern.
Rationale: you can't build Auditor without turn logs existing. Can't build drift detection without session state. Can't build rollback without commits. The spine is the only thing with no dependency โ everything else depends on it.
The question back to you
Build Block 1 first, or revise block membership? Still sparring. Say "make it so" to exit sparring and commit to Block 1.