CB-WP-0022 T04 follow-up: trim the workplan back under the loadability limit

loop-lint flagged 429 lines against the ~400 limit, and it was right about
the cause: the T02/T03/T04 completion records restated content that
ADR-0012, GameDesign.md and the challenge/response trail already carry.
Trimmed to pointers plus the one sentence each that is not written down
elsewhere.

400 lines, loop-lint clean. No content lost from the artifacts that own
it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
tegwick 2026-08-05 15:08:53 +02:00
parent b4f51effad
commit 5092684de5

View file

@ -60,17 +60,13 @@ contradiction, a recorded game the reader can replay, or a named test.
*"This feels unbalanced"* is a note, not a finding. **The SOLVE inertness
is admissible because a recorded session shows three no-ops.**
> **The example that stood here was GR-E01, and the adversarial review
> killed it (C1, 2026-08-05).** *"4/6/9 against 5/7/9 is a computation
> anyone can rerun"* was a computation that had already been rerun:
> `2da19a4` measured **6/9/12 against 5/7/9** and renamed the scenario
> `-unreachable-``-reachable-`. The finding's conclusion inverted, and
> it was one of the two findings that **passed** this rule.
>
> So existence is not the property that was missing — three wrong premises
> have now reached `ground-game`, and the third satisfied an existence
> test. T03 must adopt the shape requirement as part of the rule, plus a
> clause the survey never contemplated: **a reproduction must be able to
> **The example that stood here was GR-E01, and the review killed it
> (C1).** *"4/6/9 against 5/7/9 is a computation anyone can rerun"* had
> already been rerun: `2da19a4` measured **6/9/12**, and the scenario was
> renamed `-unreachable-``-reachable-`. The conclusion inverted — and
> it was one of the two findings that **passed** this rule. So existence
> is not what was missing. See [ADR-0012](../decisions/ADR-0012-the-design-instrument.md)
> D3: the rule gains **shape**, and **a reproduction must be able to
> fail.** Ours went green and stayed admissible.
This is what would make clay-borg a design tool rather than a suggestion
@ -200,30 +196,22 @@ commit — quoted the dead number twice.
**Seven challenges: four conceded, two conceded in part, one answered.**
- **C1 lands hardest and changed the design.** The rule's showcase finding
was false and had *passed* the rule. Existence is not the missing
property; **shape** and **falsifiability** are. Folded into §The
load-bearing rule above, and it is T03's to settle.
- **C1 also caught a defect in flight** — T06's payload, `todo`, still
named the dead number. Withdrawn above before sending.
- **C2 withdrew the baseline's precision.** `tools/design-baseline.py` is a
hand-maintained dict counting itself (`:16-36`, `:89`); `has_reproduction`
(`:38-43`) never checks the file exists, so the self-test's YES-control
(`:63`) is green against a path `2da19a4` deleted. `Makefile:127` runs
only `--self-test`, so the reporting path has no CI. The direction
stands — 11 files, no index, 0 of 10 ruled are all checkable without the
tool — but **33% is not a measured rate and T05 must not build on it.**
- **C3**: "six provisional defaults" is five, and GR-E01 is double-counted
in the `2/6`. No corrected rate is quoted here; the instrument that would
produce it is the one C2 withdrew.
- **C4**: `§Underdetermined` was never evaluated as a candidate, and it
already delivers four of five benchmarks including the Oracle property
the survey went to Magic to find. **T03's burden flips: argue why it is
extended, not replaced.**
was false and had *passed* the rule, so existence is not the missing
property — **shape** and **falsifiability** are. It also **caught a
defect in flight**: T06's payload, `todo`, still named the dead number.
Both folded in above.
- **C2 withdrew the baseline's precision.** `design-baseline.py` counts
itself, its reproduction check never stats the file, and `Makefile:127`
runs only `--self-test`. Direction stands; **33% is not a measured rate.**
- **C3**: "six provisional defaults" is five; GR-E01 is double-counted.
- **C4**: `§Underdetermined` was never evaluated as a candidate and already
delivers four of five benchmarks. **T03's burden flips: argue extension,
not replacement.**
- **C5**: the engine-evolution "third thing" is visible in
`specs/InnerLoopReference.md` and `history/`'s retrospectives, neither of
which my redundancy inventory named. Conclusion narrowed, not settled.
- **Survived**: the reproduction rule's *affordability*, and §4's reuse of
the provisional machinery. Both with stated falsifiers.
which my inventory named. Narrowed, not settled.
- **Survived**: the rule's *affordability*, and reuse of the provisional
machinery — both with stated falsifiers.
## Task: decide
@ -252,36 +240,27 @@ state_hub_task_id: "a2e85810-e949-4ea0-81fc-36b912af326c"
**Done 2026-08-05.**
[ADR-0012](../decisions/ADR-0012-the-design-instrument.md), nine
decisions. The two that were not on this list are the two the review
forced:
decisions. The two not on this list are the two the review forced:
- **D2 — `§Underdetermined` *is* the register; nothing parallel is built.**
C4's point, checked and conceded: against the survey's own five
benchmarks the incumbent already delivers four, including the Oracle
property the survey went to Magic to find and we had written down
ourselves eight days earlier (`GroundRules.md:231-233`). What it lacks
is reproductions. So the pass **extends** a section instead of building a
register — no new file, no new schema.
- **D3 — admissibility is three clauses, not one.** Exists, has the ruled
shape (row-level table, never a sum), **and can fail.** The third is
C1's: GR-E01's artifact went green when the edition landed and the
finding stayed admissible and stayed queued, because nothing said a
passing artifact was a signal. **A green reproduction is an alarm.**
Against the survey's own five benchmarks the incumbent already delivers
four, including the Oracle property the survey went to Magic to find and
we had written ourselves eight days earlier (`GroundRules.md:231-233`).
What it lacks is reproductions. So this pass **extends** a section — no
new file, no new schema.
- **D3 — admissibility is three clauses.** Exists, has the ruled shape
(row-level table, never a sum), **and can fail.** GR-E01's artifact went
green and the finding stayed admissible and stayed queued, because
nothing said a passing artifact was a signal. **A green reproduction is
an alarm.**
The rest: **D1** INTENT gains property 4, *Instrument* — applied, with the
falsifier in the text. **D4** five kinds, each forced by an existing
finding, and a sixth appearing during backfill means the taxonomy was
invented. **D5** lifecycle with `applied` meaning *the source changed*, the
queue emptying while the log accumulates, and **withdrawals reported, not
deleted** — GR-E01 is why. **D6** notes admitted but never reportable, with
a 30-day expiry on the existing age machinery; refusing them would have
thrown away the only class of finding the engine cannot produce itself,
which is CB-WP-0025's entire input. **D7** no engine-evolution register,
on an inventory C5 corrected — argued and narrowed, not settled. **D8**
`design-baseline.py` retired, not extended; kept as a dated snapshot
because deleting it erases the evidence for how 33% got in. **D9** the
finding and its artifact stay here; ground-game gets a generated file
under its own workplan, citing the reproduction by path.
The rest, in one line each: **D1** INTENT gains property 4, *Instrument*,
applied with its falsifier. **D4** five kinds, each forced by an existing
finding. **D5** `applied` means the source changed; withdrawals are
reported, not deleted. **D6** notes admitted but never reportable, 30-day
expiry. **D7** no engine-evolution register, on an inventory C5 corrected.
**D8** `design-baseline.py` retired. **D9** the artifact stays here,
ground-game gets a generated file under its own workplan.
## Task: specify
@ -331,32 +310,24 @@ and it must cost almost nothing or it will not be done.
**Done 2026-08-05.** [specs/GameDesign.md](../specs/GameDesign.md) v1.0.
**It is not a register, and says so in its second line** — ADR-0012 D2 put
the register in `§Underdetermined`, so this spec says what may go in it,
what a reproduction must *show*, and how a finding dies.
that in `§Underdetermined`.
**§1.2 had to be written against evidence rather than principle.** A
finding must now print the rows behind any number it claims, and the spec
carries the table of what shipped instead: a sum, a green scenario, and a
condition named without checking which one fired. *"12" was arithmetically
defensible and still wrong about the game* — that sentence is the whole
requirement.
**§1.2 is written against evidence rather than principle**: a finding must
print the rows behind any number it claims, and the spec carries the table
of what shipped instead — a sum, a green scenario, and a condition named
without checking which one fired. *"12" was arithmetically defensible and
still wrong about the game.*
**§1.3's target is `0` reproductions that have gone green while open.**
That is the metric GR-E01 would have tripped four days before a human
caught it.
**No baseline rate is quoted.** C2 withdrew the 33%, and the first honest
denominator is T05's backfill — quoting a new number from a discredited
instrument is how the first one got in.
**§1.3's target is `0` reproductions gone green while open** — what GR-E01
would have tripped four days before a human caught it. **No baseline rate
is quoted**; the first honest denominator is T05's backfill.
**The trial protocol costs one flag.** `cb-play --record` already writes a
finished game as a scenario and `record.rs`'s round trip is its own test,
so a trial is that plus a sibling `.md` in the player's own words. The
rule that makes it safe: an observation is a **note** until it has a
reproduction, and a trial log is where findings are *noticed*, not a
finding source. The maintainer's *"I felt it was too easy but then we
lost"* is the case it is shaped around — forcing that into a schema at the
moment of observation would lose it.
finished game as a scenario, so a trial is that plus a sibling `.md` in
the player's own words. An observation is a **note** until it has a
reproduction — the maintainer's *"I felt it was too easy but then we
lost"* is the case it is shaped around, and forcing that into a schema at
the moment of observation would lose it.
## Task: build it, and backfill what is already known