Local-first operations console where the UI and the AI work the same files — and a human gate guards 'done'.
The console renders state; Claude Code changes it. Both sides meet in /data — plain JSON files, one per record, no database. The UI writes through API routes with atomic temp-and-rename saves; agent sessions edit the same files with ordinary file tools under a binding contract (CLAUDE.md).
The live loop: a file watcher on /data pushes Server-Sent Events to the browser, so the screen moves the instant either side changes anything — the signature moment is watching an assignment card slide lanes while an agent works.
Assignments are the dispatch mechanism: a card created in the UI lands in inbox/, a session (opened by hand, or spawned headless by the RUN NOW button with a chosen model and effort) claims it into active/, works it, and parks the result in review/. Only the operator moves work to done/ — that gate is enforced in code, not convention. A nightly headless run sweeps the sources and writes the morning briefing.