Require loosening mutations from Hands, and shape the reports

Most later Soul passes found rules the suite could not see rather than
defects, because Hands proved each rule with a revert and Soul with a
loosening. Hands now does both. Reports carry findings, promises and
numbers and nothing else, and a second pass on a cut is scoped to the fix
batch. Operator-approved after a cost review of one day's campaigns.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Meta Vens 2026-09-16 20:22:10 +02:00
commit 89a1182961
2 changed files with 47 additions and 6 deletions

View file

@ -73,9 +73,15 @@ Standing rulings: <short list>.
- Delete before adding. No shims.
Every rule the spec or the operator names gets a test that fails under its own
mutation. Run the mutations against the final spelling of the code and restore
mutation, and under two mutations, not one: a revert (delete the check) and a
loosening that keeps the check in place and weakens it (`>=` for `==`, the
first item only, the image without the batch, case-insensitive, off by one).
The revert proves the test sees the rule; only the loosening proves it sees
the rule's edge, and the loosening is what Soul would otherwise write on its
second pass. Run both against the final spelling of the code and restore
afterwards. In the report, define each mutation exactly (what line changed and
how) so Soul can rerun it; a mutation named only "C3" cannot be checked.
how) so Soul can rerun it; a mutation named only "C3" cannot be checked. A
loosening that survives is reported, not hidden and not deleted.
When a claim is "behaviour unchanged", a value captured from the new code is not
evidence. Pin it with a value computed at the base commit.
Detached scripts: confirm the log starts within 60 s; a script that dies on a
@ -135,14 +141,17 @@ boundary with no half-deleted authority, and report what remains.
Don't update the map.
Report:
Report, in this shape and nothing else:
- commits (and which don't build)
- verification output
- mutation results
- verification output, pasted, not summarised
- mutation results: each entry, its exact edit, its killer or SURVIVED
- spec discrepancies you fixed
- forks
- structural delta (lines, dependencies and formats removed or added)
- what remains
No narrative of the pass, no restating the brief, no reasoning about what you
might have done. Self reads the three things above the discrepancies first
and needs them in that order.
```
## Soul: falsify executed work
@ -199,7 +208,15 @@ An inline harness typed for one run is not evidence, and it is where the one
known fake kill came from.
Report each finding as CONFIRMED or PLAUSIBLE, with file:line, a failure
scenario and severity. Then give a short list of the promises that held.
scenario and severity. Then the promises that held, one line of evidence
each. Then the numbers: test counts, entries killed, path delta, script
paths. Nothing else: no narrative of the pass, no reasoning about mutants
that died. Rerun Hands' loosening mutations; design your own only where a
rule has none or the loosening was weak.
<For a second or later pass on the same cut:> scope is the fix batch's diff
plus one rerun of the suite. Do not re-derive the whole cut unless an
invariant moved. Say in one sentence whether the cut closes.
```
## Mind Steward: phase boundary

View file

@ -2,6 +2,30 @@
Record each change to the skill together with the evidence that motivated it.
## 2026-09-16: the loop was burning tokens on gaps, not defects
Evidence: one day of the Eureka pipeline-state and TypeScript QUIC campaigns,
about thirty-five passes. The operator asked how much of the cost was process
and how much the price of a second agent. Roughly half each. The falsifier
earned its half: three High key defects, an unimplemented epoch gate, a
replay regression, a byte-order mark divergence and a false "equivalent"
claim, none of which a green report caught. The other half:
- **Hands wrote revert mutations; Soul wrote loosenings.** Most second and
third Soul passes found not defects but rules the suite was blind to. The
Hands brief now requires both mutations per rule, and Soul reruns Hands'
loosenings before writing its own.
- **Reports were narrative.** Soul passes ran two to three hundred thousand
tokens each. Both briefs now name the report shape and forbid the rest, and
a second pass on a cut is scoped to the fix batch's diff.
- **Two harnesses re-learned each other's lessons.** Epiphany's PowerShell
harness and CultLib's JavaScript runner each hit the sidecar footgun, the
missing control and a control-byte scar on their own. One harness in this
repo is the next change; deferring it to a "skill wiring" cut cost three
rediscoveries in an afternoon.
- **The map committed per event**, about forty times in a day. Per cut from
now on, rulings excepted, since agents read them mid-flight.
## 2026-09-16: agents must be told how to wait, not only to wait
Evidence: Ghostlight L1, the stock lenses