Add subtraction rules: deleted tests and unapplied mutations

Two rules from the Eureka campaign's own cuts. A deletion can take a live
rule's only test with it, so a cut that deletes must list every rule that lost
its test and either delete the rule or pin it in the same cut. And a mutation
whose anchor never matched is not a passing mutation: a multi-line anchor
matched nothing on a CRLF tree, reporting a verdict it had not earned.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Meta Vens 2026-09-16 02:05:16 +02:00
commit 58cfc29b9e
2 changed files with 18 additions and 0 deletions

View file

@ -83,6 +83,13 @@ parse error is silent otherwise.
Shared build caches: record a full path list before building, not only counts,
and delete exactly the new paths afterwards. Counts cannot attribute hardlinked
or rewritten outputs.
A mutation that never applied is not a passing mutation. Make the script fail
loudly when its anchor does not match, and check line endings: a multi-line
anchor silently matched nothing on a CRLF tree for a whole cut, so the verdict
it reported was fiction.
When a cut deletes, list every rule that had a test before and has none after.
A rule that still exists in code with its only test deleted is the failure mode
of subtraction; either the rule goes too, or it gets a test in the same cut.
Commits:
- Small and pushed.

View file

@ -2,6 +2,17 @@
Record each change to the skill together with the evidence that motivated it.
## 2026-09-16: subtraction rules, from the Eureka campaign's own cuts
- **A deletion can take a live rule's only test with it.** Cut 4 deleted a store
module; the epoch guard that survived in another file then passed a `if false`
mutation, and nothing could construct the state needed to reach it. The fix
was to delete the unreachable rule too, not to write a test for state nothing
can build.
- **A mutation that never applied is not a passing mutation.** A multi-line
anchor matched nothing on a CRLF working tree, so one mutation never ran while
reporting success. Scripts must fail loudly on a stale anchor.
## 2026-09-16: an instance owns its mind, and a service owns the state
Operator correction, mid-campaign, after three Soul passes spent propping up a