phase11: worker B's adjudication makes the fragment check DISJOINT — 0 of 555

The first version of the fragment check fired on any nonzero sp offset and flagged 2 of the
555 registered regions. Worker B read its own hit (0x800B704C) before committing and showed
it is a LEGAL FRAMELESS LEAF WITH EIGHT ARGUMENTS: in o32 the callee's sp is unchanged at
entry, so sp+16..sp+28 IS the caller's outgoing area -- arguments 4-7 -- and reading it
before any addiu sp,sp,-N is exactly what a frameless >4-argument leaf looks like. Its
evidence: exactly one jr ra, zero jal, zero addiu sp,sp,-N, zero sw ra/lw ra across all 324
bytes, and no callee-saved register touched.

Excluding the incoming argument area (sp+0..sp+31) and flagging only a negative offset or an
offset beyond the 8-argument area makes the check DISJOINT:
  registered regions flagged:  2 of 555  ->  0 of 555
  suspects across 4 partitions:  5  ->  1
The one remaining suspect is worker A's 0x800C3490.

This is the cleanest example in the phase of a worker ADJUDICATING a tool's output rather
than obeying it -- B was explicitly told 'advisory, do not skip', read the row anyway, and
its adjudication turned a noisy heuristic into a precise one.
This commit is contained in:
Christopher Williams
2026-09-24 10:18:50 -04:00
parent 74199d1ab3
commit 46c260c252
2 changed files with 43 additions and 10 deletions
+22 -5
View File
@@ -1800,11 +1800,28 @@ signal is:
Worker A scanned its 256 rows and got 11 first-instruction hits, of which **only `0x800C3490`**
trips the real rule.
**Implemented as `./tools/sf3_rank --fragments`, which scans any partition set.** Measured across
all four partitions it finds **5 suspects**; measured against the **555 registered regions it flags
2** (`0x800923E8`, `0x80099DC4`), so it is **advisory, not an exclusion** — sufficient-but-not-complete
in exactly the way the trapping check is. **A hit means "read this before spending a spelling", never
"skip it".**
**Implemented as `./tools/sf3_rank --fragments`, which scans any partition set.**
**WORKER B THEN ADJUDICATED ITS OWN HIT AND MADE THE CHECK DISJOINT.** The first version fired on
any nonzero `sp` offset and flagged **2 of the 555 registered regions**. Worker B read `0x800B704C`
before committing and showed it is a **legal frameless leaf with EIGHT arguments**: in o32 the
callee's `sp` is unchanged at entry, so **`sp+16..sp+28` IS the caller's outgoing area — arguments
4–7** — and reading it before any `addiu sp,sp,-N` is exactly what a frameless >4-argument leaf looks
like. Its evidence: exactly one `jr ra`, zero `jal`, zero `addiu sp,sp,-N`, zero `sw ra`/`lw ra`
across all 324 bytes, and no callee-saved register touched.
**So the incoming argument area (`sp+0..sp+31`) is excluded**, and only a **negative** offset or an
offset **beyond** the 8-argument area is a real fragment. With that qualification:
| | before | after |
|---|---|---|
| registered regions flagged | 2 of 555 | **0 of 555** |
| suspects across four partitions | 5 | **1** |
**The check is now disjoint from the corpus** and the one remaining suspect is worker A's
`0x800C3490`. This is the cleanest example in the phase of a *worker adjudicating a tool's output
rather than obeying it* — B was told "advisory, do not skip", read the row anyway, and its
adjudication is what turned a noisy heuristic into a precise one.**
**The value is the reading phase, not the match:** a fragment costs a full structural derivation and
can never close, so flagging it saves a worker's whole reading budget.