test(retrieval-gate): three fixtures make M06, M07 and M10 decide a delivery — row 7 14 of 14
Row 7 left three mutants standing after v1.1 (11 of 14, bar 13): the passage signal reading no body, the field signal weighing no title and no path, and a flattened fusion (bm25.RRF_K = 10 000). Each switches off a mechanism the default ranking runs, and each moved 0 ranks, because every synthetic concept was short and opened with its own title -- none of the three ever decided a delivery here. Three bundles, one per mechanism, and one pinned set (set-mechanisms.json): - PASSAGE: a long concept answered in one window of its body, against ten short concepts whose titles carry the question's words. Rank 1; with no body windows it falls out of k (class b). - PATH: a concept named by its path alone, against ten decoys denser in the body. Rank 4 at k = 6; with no title/path weight it falls out of k. - FUSION: gold 1st in the passage signal and 21st in the field signal, one decoy 10th and 11th (rank sum 19 < 20). At RRF_K = 60 the gold leads, and it keeps the lead through K = 180 (measured in steps of 10); flattened, the decoy wins k = 1. Chose separate fixtures over one combined one because each fixture's comment can then name the single mechanism it pins. Verified per question against all 14 mutants: no previously felled mutant is lost. src/ is untouched, MUTANT_BAR and the roster are unchanged, the corpus pin moved with the corpus. Gate: rows 1 and 6 go 10/10 -> 13/13, row 7 11/14 -> 14/14 GREEN, rows 2/3/4 unchanged, GATE RED: rows 5, 8. Suite: 2444 passed, 1 skipped (+3), measured with FORCE_COLOR unset -- with FORCE_COLOR=3 in the environment Python 3.14 colours argparse help and test_each_arm_flag_carries_its_attribution fails, independently of this change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
09d7e6ee08
commit
e503f6abd7
5 changed files with 234 additions and 48 deletions
37
README.md
37
README.md
|
|
@ -84,13 +84,13 @@ here was measured; none of it is a plan.
|
|||
`--no-assets` takes the image path out entirely.
|
||||
- **Three of this repository's own gates are RED, and each red row is a stated
|
||||
finding rather than a bug to be surprised by.** The retrieval gate is red on
|
||||
rows 5, 7 and 8, the MCP gate on row 2, and the content accounting's judge
|
||||
rows 5 and 8, the MCP gate on row 2, and the content accounting's judge
|
||||
on rows 2, 3 and 6. For a user that means: no ranking change has yet been
|
||||
registered against a held-out set (row 5), the real-corpus row is NOT RUN
|
||||
without its private sets and so is red rather than green by omission
|
||||
(row 8), three mechanical mutants of the BM25 ranking survive with 0 ranks
|
||||
moved — the passage body, the title field weight and the fusion constant —
|
||||
so the gate cannot yet tell those parts from their absence (row 7), MCP anchors and concept ids are different
|
||||
without its private set and so is red rather than green by omission
|
||||
(row 8) -- and when it IS run, its judge still requires a delivered excerpt
|
||||
to be the whole concept's bytes, so an excerpt v1.1 cuts to its answering
|
||||
passage counts as a miss even where it carries the citation. MCP anchors and concept ids are different
|
||||
vocabularies so `okf_fetch` cannot be addressed with a set's anchor (row 2),
|
||||
and the accounting still reports real losses on the reference corpus (rows 2,
|
||||
3, 6). The rows and their numbers are under [Judge the
|
||||
|
|
@ -1196,18 +1196,18 @@ set names a consumer's documents and this repository is public. **The corpus
|
|||
is pinned the same way** (`SPECS_SHA256`): every row counts against those
|
||||
documents, so moving them without moving the pin is exit 2.
|
||||
|
||||
**It is RED today, on rows 5, 7 and 8**, and each of those is a
|
||||
**It is RED today, on rows 5 and 8**, and each of those is a
|
||||
finding rather than a defect in the gate:
|
||||
|
||||
| row | what it asks | today |
|
||||
|---|---|---|
|
||||
| 1 | hit@payload, one fasit entry = one unit | 10 of 10 |
|
||||
| 1 | hit@payload, one fasit entry = one unit | 13 of 13 |
|
||||
| 2 | every miss carries exactly one class, each forced by its own fixture | 7 of 7 |
|
||||
| 3 | the `rule` the payload prints for a withheld fasit is the true one | 5 of 5 |
|
||||
| 4 | an uncovered question comes back marked, a covered one does not | 6 of 6 |
|
||||
| 5 | a hold-out set, frozen and with its threshold written first | 0 of 1 |
|
||||
| 6 | every delivery confirmed against the bundle's own bytes | 10 of 10 |
|
||||
| 7 | mechanical mutants of the ranking and the cut, felled | 11 of 14 |
|
||||
| 6 | every delivery confirmed against the bundle's own bytes | 13 of 13 |
|
||||
| 7 | mechanical mutants of the ranking and the cut, felled | 14 of 14 |
|
||||
| 8 | the real set, from path + sha256 | 0 of 1 set, NOT RUN without `--real` |
|
||||
|
||||
**The public rows run on invented material only** (operator decision
|
||||
|
|
@ -1230,13 +1230,18 @@ delivered excerpt answers — facts, no verdict, and the one bar is the gate's
|
|||
own `UNANSWERED_BAR = 2/3` — 3 of 6 to 6 of 6.
|
||||
|
||||
Row 7's mutants patch the code the DEFAULT ranking runs (BM25 since v1.1),
|
||||
and it reports three survivors with what they moved rather than with a shrug:
|
||||
the passage signal reading no body, the field signal weighing no title and no
|
||||
path, and a flattened fusion (`bm25.RRF_K`) each moved **0 ranks and 0
|
||||
deliveries** on these fixtures. Each has a mechanism: the field signal still
|
||||
reads every body, every synthetic body opens with its own title as a heading,
|
||||
and over two signals `K` only reorders a concept whose two ranks lie far apart,
|
||||
which no fixture holds.
|
||||
and it fells all 14. Until 2026-09-22 three survived with **0 ranks and 0
|
||||
deliveries** moved -- the passage signal reading no body, the field signal
|
||||
weighing no title and no path, and a flattened fusion (`bm25.RRF_K`) -- because
|
||||
every synthetic concept was short and opened with its own title, so none of the
|
||||
three ever decided a delivery. Three fixtures now make each one decide one
|
||||
(`set-mechanisms.json`): a long concept answered in one window of its body
|
||||
against short concepts whose titles carry the question's words; a concept named
|
||||
by its path alone against decoys denser in the body; and a concept first in one
|
||||
signal and 21st in the other against a decoy 10th and 11th, which a flattened
|
||||
fusion ranks first because only the rank sum then counts. Each fixture is
|
||||
delivered at the shipped defaults and falls out of `k` with its own mechanism
|
||||
switched off; `src/` did not change.
|
||||
|
||||
Row 8 is never green by leaving something out: it requires every named set and
|
||||
is NOT RUN until it has them — one set of three used to read `6 of 6 GREEN`.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue