clay-borg/history/260805-design-instrument-response.md
tegwick 04c3a4977f CB-WP-0022 T02: the separate reviewer found the showcase finding was false
First adversarial review in this repo run by a genuinely separate agent.
CB-RES-0006's reviewer opened by conceding it could not be, and called its
own findings "a lower bound on what a genuinely separate reviewer would
find." This is the measurement: the separate reviewer ran git log against
the survey's central example and found 2da19a4 had falsified it four days
earlier, while the author -- who wrote that commit -- quoted the dead
number twice.

Seven challenges: four conceded, two conceded in part, one answered.

C1 changes the design. "GR-E01 is admissible because 4/6/9 against 5/7/9
is a computation anyone can rerun" was a computation already rerun: the
edition import measured 6/9/12, the conclusion inverted, and the scenario
was renamed -unreachable- to -reachable-. That finding was one of the TWO
that passed the reproduction rule. So three wrong premises have now
reached ground-game and the third satisfied an existence test -- existence
is not the property that was missing. The rule gains shape (ground-game's
row-level deal table, promoted from a T04 addendum) and a clause the
survey never contemplated: a reproduction must be able to fail. Ours went
green and stayed admissible.

C1 also caught a defect in flight. T06's payload, status todo, still named
4/6/9 and was queued to send it to ground-game as "no dataset reconciles
them." Withdrawn before sending -- the fourth wrong premise, and the only
one stopped.

C2 withdraws the baseline's precision: design-baseline.py is a
hand-maintained dict counting itself, has_reproduction never checks the
file exists (its YES-control is green against a deleted path), and
Makefile:127 runs only --self-test so the reporting path has no CI. The
direction survives; 33% is not a measured rate and T05 must not build on
it. C3: "six provisional defaults" is five, GR-E01 double-counted. C4:
GroundRules §Underdetermined was never evaluated as a candidate and
already delivers four of five benchmarks -- T03's burden flips to arguing
extension over replacement.

Survived: the rule's affordability, and reuse of the provisional
machinery.

loop-lint: no findings.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-05 15:03:12 +02:00

187 lines
9.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 260805 — response to the challenge on CB-RES-0007
One round, per InnerLoop §Step 2. **This review was run by a separate
agent**, unlike CB-RES-0006's, whose challenge opened with a fidelity note
saying it could not be. That note said *"treat the challenges below as a
lower bound on what a genuinely separate reviewer would find."* It was
right, and this is what the difference looks like: the separate reviewer
went to `git log` and found that the survey's showcase example had been
falsified four days earlier by our own commit.
Four challenges conceded, two conceded in part, one answered. **The
load-bearing rule survives but does not survive intact** — it is
insufficient as stated, and C1 is the reason.
---
## C1 — the showcase finding was itself a wrong premise, and it passed the rule — **conceded, and it is larger than the challenge says**
The challenge is correct and I verified every step of it independently
rather than accepting it.
`CB-WP-0022:61` defines admissibility by example:
> *"GR-E01 is admissible because 4/6/9 against 5/7/9 is a computation
> anyone can rerun."*
Commit `2da19a4` (2026-08-04, CB-WP-0021 T01/T02/T05) measured the deal
after the edition import: **6/9/12 against thresholds 5/7/9 — the game is
reachable at every seat count.** The scenario was renamed
`gr-e01-threshold-unreachable-2p.yaml``gr-e01-threshold-reachable-2p.yaml`.
The finding did not merely get a new number. **Its conclusion inverted.**
So the count is not two wrong premises reaching `ground-game`. It is
three, and **the third one was in the 2-of-6 set that passed the
reproduction rule.** The rule's own success case is a false finding that
shipped a green artifact.
**And it was still loaded.** `CB-WP-0022:283`, task T06, status `todo`:
> *"GR-E01 vs GR-S01 — the deal count puts 4/6/9 points in play against
> thresholds of 5/7/9, so either the count or the thresholds are wrong and
> no dataset reconciles them"*
That is queued for transmission to `ground-game` as a finding. Had T06 run
before this review, it would have sent a **fourth** wrong premise
downstream — one asserting no dataset reconciles numbers our own dataset
reconciled on 2026-08-04. The review did not catch a stale citation. It
caught a defect in flight.
**What this forces.** The rule at `CB-WP-0022:53` is an *existence* test:
a finding is admissible if a reproduction exists. Three of three wrong
premises would have passed an existence test, and one did. Existence is
therefore not the property that was missing. T03 must adopt the shape
requirement — `ground-game`'s row-level deal table, GROUND-WP-0004 T02 —
as **part of the rule**, not as the T04 addendum it currently is. And it
needs a second clause the survey did not contemplate: **a reproduction
must be able to fail.** A finding whose artifact has gone green is not a
closed finding until someone says which it is; ours silently became a
counterexample to itself.
`4/6/9` is corrected wherever it appears in this pass's artifacts, and
`evidence/CB-EV-0018:153` is left alone — it is a dated record of what was
believed then, and rewriting evidence is worse than a stale number in it.
## C2 — the baseline is a hand-maintained inventory reporting on itself — **conceded**
`tools/design-baseline.py:16-36` is a literal dict. `n = len(FINDINGS)`
(`:89`). **"6 findings" is a count of rows someone typed.** It is not a
measurement of anything, and the survey presented it as a measured
baseline, in a repo whose §Single source of fact rule exists precisely to
stop typed numbers.
Worse, and the part I would not have found:
- `has_reproduction` (`:38-43`) is `p.startswith("scenarios/")` and
nothing else. **It never checks the file exists.** The self-test's
YES-control (`:63`) passes a path — `gr-e01-threshold-unreachable-2p.yaml`
that `2da19a4` deleted. The positive control for "detection can say
YES" is green against a file that is not there. That is a positive
control that controls nothing, which is the exact class `gates.toml`
exists to catch.
- The same detector **rejects a named test**, which `CB-WP-0022:55-56`
explicitly admits as a reproduction. So `33%` is biased down by the
detector's own narrowness.
- The 4-day figure is two date literals subtracted (`:96-98`). The
reviewer mutated them to 2020-01-01, got **2406 days**, and all five
self-test checks stayed green.
- `Makefile:127` runs `--self-test` only. **The reporting path is never
executed by CI**, so none of the above was ever going to be caught.
**What survives, and it matters that something does.** The *direction* of
every headline number is checkable without the tool: 11 files with no
index is verifiable by reading, and U1U10 being open with 0 of 10 ruled
is verifiable against the hub. The baseline's conclusion — *we have
findings scattered across the repo with no register and no reproductions* —
is not in doubt. **What is withdrawn is its precision**, and any claim
that the 33% is a measured rate.
T05 must not build on this tool. The register itself is the measurement,
and `make design` reports over the register's contents, not over a dict.
## C3 — the arithmetic in the survey's own table — **conceded**
"Six provisional defaults" is **five**. The tool's own line prints
`5 location(s)`; `make coverage` prints 5; the survey table (`:46`) says
6. It was 6 at `2da19a4^` and 5 at HEAD — the survey table was written
against a repo state that had already moved.
And **GR-E01 is double-counted**: it is row 4 in its own right and was a
member of row 5's six. So the `2/6` denominator contains one finding
twice, and both copies are in the numerator. The real figure, on the
survey's own definitions, is not 2/6.
I am not restating a corrected rate here. **The tool that would produce it
is the one C2 just withdrew**, and quoting a new number from a discredited
instrument is how the first one got in.
## C4 — §Underdetermined was never evaluated as a candidate — **conceded in part**
Correct, and it is the omission that embarrasses the survey most, because
§Step 1 asks for the best implementation *in existence* and this one is in
our own repo. The survey went to Magic to discover the Oracle property —
*the fix lands in the source, the annotation is not authoritative* — and
`specs/GroundRules.md:231-233` already states it in our own words:
*"a ruling flips the scenario, not the kernel."*
**Conceded in part, not whole,** and the reviewer marked the honest limit
themselves: 10 U-items owe provisional scenarios, 5 exist, and
`make coverage` never flags the missing five. A section that cannot report
its own gaps is not yet the register. But T03's burden has changed
direction — it must now argue why §Underdetermined should be **extended**
rather than replaced, and the default answer is that it should be.
## C5 — the third thing exists — **conceded as to the argument, not the conclusion**
`specs/InnerLoopReference.md` is 383 lines with two sections literally
headed *"moved from InnerLoop v1.6"*, and `history/` holds 769 lines of
retrospectives. That is content about *how we learn to build this engine*
which was placed where it fit rather than where it belonged. My redundancy
inventory named `evidence/`, `decisions/`, `gates.toml` and workplans, and
**named neither of those** — so the inventory was incomplete and the
argument as written does not stand.
The conclusion probably does, and for a reason the challenge concedes: the
homeless content found homes, and both are load-bearing and read. A third
register would be a third place to look for material that is currently in
two. **T03 records this as argued-and-narrowed rather than settled**, which
is the outcome the declaration asked for when it said this was the
judgment it wanted reviewed rather than assumed.
## C6 — "queue that empties" vs keeping resolved findings — **answered**
Marked weak by the reviewer and it is weak, but it has a real answer.
Magic's property is that a finding **closes when the source changes**. It
is not that the record is deleted. `design-baseline.py:23-25`'s comment —
keep resolved findings or you cannot report a close rate — is compatible:
the *queue* of open findings empties, the *log* of closed ones does not.
T03's lifecycle should say this in one sentence so the next reader does
not re-litigate it.
Falsifier: if the register's default view shows closed findings mixed with
open ones, the queue property is gone regardless of what the lifecycle
says.
## C7 — n=6, all engine-surfaced — **already conceded in §6**
The survey states this limit itself. Nothing to add.
---
## What the review changed
| | before | after |
|---|---|---|
| the rule | reproduction must **exist** | must exist, **have the ruled shape**, and **be able to fail** |
| wrong premises shipped | 2 | **3** — and one passed the rule |
| the baseline | a measured 33% | a hand-maintained inventory; direction stands, precision withdrawn |
| §Underdetermined | not considered | the incumbent T03 must argue against |
| engine-evolution register | redundant | still redundant, on a corrected inventory |
| T06's payload | a finding | **a fourth wrong premise, caught before sending** |
**The strongest thing here is not any single challenge.** It is that a
separate reviewer with no stake ran `git log` against the survey's central
example and found it had been falsified by our own commit four days
earlier — while the author, who wrote that commit, quoted the dead number
twice. CB-RES-0006's review said a same-session reviewer would be a lower
bound. This is how much lower.