The relay between the two models becomes a command. The human stays at the three gates that carry judgement.
Today the review model and the executing model each live in a chat tab, and every pack, stop and amendment travels between them by hand. The harness moves that traffic as files, applies the mechanical edits itself, and asks the human only where the rulebook already says a human decides.
The rulebook keeps its three gates. Only the courier changes.
Mark's standing rulebook already names the points where a human must decide. The harness does not add or remove one; it removes the pasting between them.
| Point in the round | Today | With the harness |
|---|---|---|
| Decisions settled, pack written | Review model with the human in chat | Review model, using tools that count against the bundle before it submits |
| Pack ratified before any build | The human reads it in the tab | The human sees every old and new wording in full, types the round number |
| Pack carried to the executor | The human pastes | Nobody: it is a file |
| Edits applied, counts asserted | Executing model, by hand | The harness, in code, all of a stage or none of it |
| Checkpoint after the riskiest stage | The human reads the report in the tab | The human reads the report file, one keypress to continue |
| A stop carried back for an amendment | The human pastes, twice | Nobody: the report becomes the reviewer's next message |
| Amendment approved, run resumes | The human pastes again | The human sees the one-line diff, one keypress |
What changes for the person running it
One command, not two tabs
A round starts with one command in a terminal and ends with a round report. The models are told what they may touch and cannot reach past it.
The mechanical half runs as code
Counting, replacing, registering and stopping are done by the harness, keyless. A model is asked only for what code cannot do: judge a comment, write a wording, read a page.
The record writes itself
Every edit, stop, gate answer and model turn lands in append-only registers inside the bundle, so a fresh session can pick the round up from the files alone.
What you need
Python 3.12 and the repo
Clone, create a virtual environment, install. The keyless selftest proves the core works before any model is involved.
One credential
An API key from the Anthropic Console is the known path. A profile from the Anthropic command-line login also works with the SDK; whether it bills to a claude.ai subscription is not confirmed here.
Claude Code is not required
The loop is a Python command talking to the API through the official SDK. The Claude Code agent files in the repo are an optional front end; nothing depends on them.
What exists today and what is still to build
| Piece | State | What it does |
|---|---|---|
| Deterministic core | Built | Parses a pack, asserts every count in a stage before writing, applies, registers, stops, checkpoints, resumes from the failed item. Keyless. Tested. |
| Reviewer tools and draft check | Built | Checks a draft pack against the bundle before a human sees it and refuses to accept an unclean one; a command does the same with no model. Keyless. Tested. |
| Config, client seam and transcripts | Built | Which models run each role, recorded with every round; every model turn appended to a transcript the round can be rebuilt from. The live client itself is not yet connected. |
| Executor conversation and gates | Not built | The pre-flight, the run, the three gates, the state machine. |
| Live model client | Not built | The SDK connection with streaming, retries and refusal handling. |
| Render and measure | Not built | Rulebook Part 5: a page rendered to an image and measured, rather than trusted. |
| Code | Meaning | Who answers it |
|---|---|---|
| 0 | Round complete, report written | Nobody: the bundle goes back to the review model for its own check |
| 2 | Checkpoint stage complete, report waiting | The human |
| 3 | Something did not match, stop report waiting | The review model, with an amended pack |
The next thing to agree
The pack format is the contract between the two models, and it is generic: exact old text, exact new text, an asserted count, grouped into stages with at least one checkpoint. It fits any build where a change can be stated that way, which covers contracts, reports, bid packs and generated code alike.
What it needs now is one real round, on synthetic material, run against it. That is the point at which the format either holds or gets amended through the rulebook's own loop.