One Command, Three Gates
hybrid-build-harness, SunriseIntelligence, 4 September 2026

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.

Today: every message passes through the human
Review model Executing model The human Bundle chat tab chat tab copying schedules and workbook pack paste stop paste amendment paste checkpoint edits by hand, one tab open reads, decides copies out copies back looks, says go and repeats
One round moves seven times through the clipboard. Four of those carry no decision, and the executing tab edits the bundle itself, so a slip in a paste is a defect in a contract schedule.
With the harness: files move, the human is asked three times
Review model Executing model Harness Bundle and registers drafts the pack pre-flights, reports applies and asserts every edit, stop and gate on the record pack run exit code 0, 2 or 3 stop report amended pack edits, registers asserts every count first writes the report as a file resumes from the failed item 1 ratify 2 checkpoint go 3 approve
The same round, on the same grid. The four clipboard crossings that carried no decision are gone. The three that carried one are now explicit gates, each recorded with who answered and how long they took.
copied by hand moved as a file or a call a moment the human is asked

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.

Who acts at each point of a round, today and with the harness
Point in the roundTodayWith the harness
Decisions settled, pack writtenReview model with the human in chatReview model, using tools that count against the bundle before it submits
Pack ratified before any buildThe human reads it in the tabThe human sees every old and new wording in full, types the round number
Pack carried to the executorThe human pastesNobody: it is a file
Edits applied, counts assertedExecuting model, by handThe harness, in code, all of a stage or none of it
Checkpoint after the riskiest stageThe human reads the report in the tabThe human reads the report file, one keypress to continue
A stop carried back for an amendmentThe human pastes, twiceNobody: the report becomes the reviewer's next message
Amendment approved, run resumesThe human pastes againThe 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

State of the repo as at 4 September 2026
PieceStateWhat it does
Deterministic coreBuiltParses 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 checkBuiltChecks 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 transcriptsBuiltWhich 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 gatesNot builtThe pre-flight, the run, the three gates, the state machine.
Live model clientNot builtThe SDK connection with streaming, retries and refusal handling.
Render and measureNot builtRulebook Part 5: a page rendered to an image and measured, rather than trusted.
Exit codes the plain run returns, so a script or a person can tell the states apart without reading the report
CodeMeaningWho answers it
0Round complete, report writtenNobody: the bundle goes back to the review model for its own check
2Checkpoint stage complete, report waitingThe human
3Something did not match, stop report waitingThe 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.