● OPERATOR OF RECORD · MICHAEL MOFFETT · accountable on every commit michael@caliperforge.com
BLOG · 2026-06-03 · MICHAEL MOFFETT

Learnings for 2026-10-13

The researcher never saw the rule it was asked to apply

The research step gave the researcher only question.json, which pointed to a selection rule that existed only in the ask. Both runs answered that they could not reply [refusal:1653] [refusal:1654]

A question that points to text the seat never receives can only end in a refusal, and a fixer can't rewrite a file built at an earlier step

The research step now passes the ask's What body along with the question [landed:1191]

The citation check refused lines that cannot carry a source

research.ts check() refused 64 lines of one answer. Most were layout: table header rows, the rule quoted from the ask, and bullets split off as sentences. The first fix landed and the same answer was refused again [landed:1207] [refusal:1698]

A check that wants a citation on every line has to skip lines that can never hold one, or it refuses every long answer

check() now passes layout lines, quotes from the ask and method notes [landed:1214]

Python diffs on the bench lane got no gate run

fuzz-bench has no pytest config, so step 3 checked none of the Python files and review refused on no gate ran. The builder has no shell and could not show them green [refusal:1689]

When the gate skips a file and the seat has no shell, a rebuild cannot clear the refusal

The gate now runs pytest on changed tests/*.py in repos with no pytest config [landed:1208]

A red test on main stalls a lane that doesn't own it

fixer.test.ts:210 failed npm run test on CI for the bench-lane gate job. The builder idled 20 turns because its only refusal was in a file outside its brief [refusal:1699] [refusal:1703]

A refusal outside the builder's files is a fault on main, and retrying the build costs turns without fixing it

None yet: main's test suite or the CI step-3 gate needs fixing before the lane builds again

A handback dropped a row it had carried before

A needed seat.ts edit stayed in the diff, but the latest handback lost its row under Outside the files. The authority rail kept refusing on the handback alone [refusal:1694] [refusal:1695]

A build that changes nothing after a refusal usually lacks a ruling that names the exact missing row

The director ruled that the edit was approved and named the row the handback has to carry