CB-WP-0030: a control for the wrong-subject family
Some checks failed
ci / check (push) Failing after 4s
Some checks failed
ci / check (push) Failing after 4s
Seven claims in this project have been wrong the same way — the arithmetic right, the subject wrong. Four reached a document or another repo. ADR-0018 states the rule: a measured claim names the variable it depends on and shows the measurement moving with it. GameDesign §1.4 adds it as a fourth admissibility clause; the existing three are untouched. Honest yield is 3 clear + 1 partial of 7. It misses a count never made and a claim that is not a number, and D3 names those so nobody stops looking. The tempting fix — closing facts-check's 62 untagged literals — would have caught 1 of 7 and is deferred as separate work rather than bundled. loop-lint gains check_sensitivity_stated over arithmetic register rows, mutation-proven red on F17 and green when restored, with four self-test controls. It checks presence, never adequacy, and says so in its output. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
ffd2279e16
commit
d7279483f6
6 changed files with 503 additions and 6 deletions
|
|
@ -81,6 +81,38 @@ admissible, remained in the register, and remained queued for transmission
|
|||
to `ground-game` for four days, because nothing treated a passing artifact
|
||||
as a signal. It was stopped by an adversarial review, not by a control.
|
||||
|
||||
### 1.4 It must move when its subject moves
|
||||
|
||||
> **A measured claim names the variable it depends on, and shows the
|
||||
> measurement moving with it.** A number that does not move when its
|
||||
> subject moves is measuring something else.
|
||||
|
||||
ADR-0018. This is the fourth clause and the first three are unchanged —
|
||||
each was bought by an earlier mistake and a rewrite would drop what they
|
||||
paid for.
|
||||
|
||||
**Why it exists.** Seven claims in this project have been wrong the same
|
||||
way: the arithmetic right, the subject wrong. Two of them were caught only
|
||||
because someone varied something —
|
||||
|
||||
- a per-node cost that **fell** as branching **rose** (no per-node cost
|
||||
can), and
|
||||
- a win rate attributed to *the game* that collapsed to 0% under a second
|
||||
policy on the same deals.
|
||||
|
||||
**Both were already printed when they shipped.** Nobody looked at whether
|
||||
the number moved the way its subject demanded.
|
||||
|
||||
**Where it binds:** register findings whose claim is arithmetic, and
|
||||
anything leaving the repo. **Not every number everywhere** — a rule that
|
||||
binds everywhere is obeyed nowhere.
|
||||
|
||||
**What it does not catch, stated so nobody stops looking:** a count that
|
||||
was never made (there is no sensitivity to state), and a claim that is not
|
||||
a number. **No syntactic gate detects a wrong subject in general.** It is
|
||||
a semantic error; `loop-lint` checks that a sensitivity line is *present*,
|
||||
never that it is *adequate*.
|
||||
|
||||
## 2. Kinds
|
||||
|
||||
Five (ADR-0012 D4). **No kind exists without a finding that instantiates
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue