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:
parent
6bbf6bd206
commit
89a1182961
2 changed files with 47 additions and 6 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue