Two mechanisms Phase 1 could not supply, both conditional, neither able to block.
Step 5.5 renders the first viewport before composing it in CSS. It fires only
when TOGETHER_API_KEY is present (signal 9); with no key the step does not exist
and nothing else changes. Two comps at 1280x800 built from the direction
contract rather than the brief, varied on one compositional axis so the
comparison means something, one approval point, then build. The prompt carries
the scene sentence, the paper and accent as plain colour words, the display
class rather than a face name, and one negative clause pushing off the category
default, because a prompt that reads like the brief returns the category default
in pixels and that is what R.1 already spent its budget refusing.
The comp gets no vote on the Floor. An image generator will hand back eyebrows,
a gradient ramp and a fake browser window because it has read none of the gates.
Same rule as an archive exemplar: take the composition, not the compliance.
Reproduction is the part that makes the step worth having. A model reliably
believes its recreation succeeded when it did not, and the belief is what stops
it looking, so the built hero is screenshot at the comp's own dimensions and
answered in writing on mass, interval and entry before anything below the fold
exists. Diverging from the comp deliberately is fine. Diverging without noticing
is the failure.
The medium inventory sits under it: every region gets a written implementation
medium before any of it is built, and the gate is that a CSS gradient is not a
texture. Writing CSS against woven cloth or printed grain is how a committed
comp silently becomes a flat page with the same section order.
Step 7 gains a reviewer with no inherited transcript. The thread that walks the
gates is the thread that formed every opinion it is grading and reads the page
as the thing it meant rather than the thing it made, which is the weakest
reviewer available and the one every build has used. The new one gets the
artifact, the screenshots, the contract and the Floor list, and nothing about
why. It answers the question no gate can reach: does the direction contract
describe the page in front of it. Every gate is local, so a page can pass all
fifty-eight while quietly not being what its own stamp claims.
Findings are then scored resolved, partial or unresolved rather than
re-reviewed, unresolved is a legitimate outcome, and two rounds is the ceiling.
Off Claude Code the review runs in-thread and says so, because the user is
entitled to know which one they got.
Read-set cost for a run with no key and no subagents: zero. comp.md loads on
signal 9 only, and the reviewer brief lives in slop-test.md, which already
loaded at Step 7.
Arms: Anthropic baseline, GLM on Together, Kimi on OpenRouter (DeepSeek
and Qwen staged, disabled). Six briefs incl. metric-temptation,
component-scope, and vision-probe probes. Floor-only vs full skill packs
to measure prompt bloat. run-matrix orchestrates gen, shots, score,
judge, report; the repair loop feeds sloplint FAILs back to the model.