Skip to content
Recluse Studio
← Field notes

Cassette Build Report 062 — The Evidence Report Bypassed Its Own Rules

L04 had 328 passing tests and thirteen working removal controls. Sol showed that its external PASS still could not close the gate.

A monochrome pixel clerk carries a stamped evidence report around the outside of a guarded machine while a spider mechanism points to the unused front gate.
Post-specific field image / square

Scope note: This report covers L04’s machine-evidence gate and its remediation. It closes the controlled machine stage at that revision; physical qualification, acquisition, F4/F5, and the full live matrix remained unrun.

L04 had 328 passing tests. Thirteen component controls survived the accepted tree and failed when their owners were removed or bypassed. The external report said PASS.

The repository rejected it.

I had supplied Sol’s independent review of the frozen candidate and asked Codex to assess the findings, repair what reproduced, append the account, and commit the result. Sol rebuilt the archived tree and checked its seal. Then it ran the ordinary ledger—the authority the repository itself used to decide whether its evidence was current and complete.

That ledger failed.

The tests and removal controls were real, but the external PASS had bypassed validation of the report inside the same frozen source it claimed to close, so Codex’s earlier completion conclusion was wrong. The candidate contained evidence that its governing ledger had not accepted.

This is a less comfortable failure than a broken test. A failed test points toward behavior. Here, the behaviors under test had largely worked. The defect sat in the route from observation to claim. The review system could assemble convincing evidence outside the repository, then carry the word PASS back across the boundary without proving that the repository’s own accounting accepted it.

The external review route could therefore bypass the repository’s completion authority.

The repair began by separating capture from verification. A launched command seals its inputs, dependency graph, operation identity, and timestamp. Success produces CAPTURED, not acceptance. A separate verifier compares the bound result with a replay from the frozen inputs. Review history must include every declared claim, the raw command artifacts, matching results, and one failing discriminator for each passing assertion. A repair must name the original finding, the exact parent that was reviewed, and its direct child with a nonzero executable change.

That last requirement blocks a common form of drift. An agent cannot cite a useful review, patch some later tree, and present the new result as the reviewed object. The child must descend directly from the candidate whose failure was observed.

The public campaign authority now refuses incomplete review envelopes in code:

rows = envelope['assertions']
if (len(rows) != len(manifest['assertions']) or
        {row.get('assertion') for row in rows} != set(manifest['assertions'])):
    reject(self.key, 'review does not resolve the complete frozen assertion set')
evidence = envelope['evidence']
if not isinstance(evidence, dict) or not evidence:
    reject(self.key, 'review has no raw command evidence')

That excerpt appears in tools/campaign.py. Later checks bind each assertion to its trace, challenge, expected and observed result, evidence files, and discriminator. A PASS requires the good path to match and the hostile path to fail.

The same review uncovered five more authority problems: the launch seal did not bind every input; review history could accept an incomplete claim set; remediation lineage could lose its reviewed parent; the fault graph used abstractions instead of the matrix’s actual operations and approvals; and numeric measurements could admit booleans, negative physical writes, or nonfinite results where those values had no meaning.

Codex repaired all six findings. The fault fixture expanded into eighty coordinates and 432 records. Every affected record now binds its source, plan, qualification, operation, and exact action card. Removing any of those identities or substituting another must fail. One numeric validator governs intervals, storage profiles, and thermal windows so a value cannot become valid merely by entering through a different collector.

The repair also failed several times before it earned a new candidate. A thermal function compared its first timestamp before validating the timestamp. One complete run described quiet pytest output while invoking verbose output. A tiny positive duration could produce infinite throughput. A write permission did not yet carry its actual card. A collector did not name the operation whose interval it measured. Codex stopped each dependent run and retained it as incomplete.

The full suite later found one more missing dependency. An isolated schema-generator fixture copied the queue and mathematics authority but omitted the acceptance matrix that the generator now read. The repair added the matrix to that fixture. All nine coupled generator and campaign checks passed.

The final snapshot ran all 328 tests in 556 seconds with no skips. Each of thirteen owners passed its control and failed both deletion and executable bypass. Then, inside that same snapshot, the runner generated the complete accounting report and invoked the ordinary ledger with report verification enabled. The ledger returned zero violations.

Only then did L04 close.

This episode changed how I read evidence volume. Hundreds of tests can still answer the wrong administrative question. Thirteen successful removal experiments can still sit beside a report that has no right to certify them. More evidence does not repair a broken line of authority. It makes the unsupported conclusion look expensive.

My role was to bring Sol’s independent objection back to the builder and insist that the repository decide. Sol’s role was to reproduce the exact frozen candidate rather than critique a moving description. Codex’s role was not to defend the 328 passing tests. It was to preserve their truth, withdraw the conclusion they did not support, and rebuild the path from raw command to accepted claim.

The result was not another layer of prose. A claim now requires capture, replay, a hostile discriminator, direct repair lineage, complete accounting, and acceptance by the ordinary ledger; any failed condition rejects completion.

L04 had already proved that Cassette could run a large controlled gate. The remediation added the missing condition: only a report accepted by the ordinary ledger inside the frozen candidate can close that gate.