The unbiased half of the token audit: 0 of 15 never-measured tokens are wrong, the entries my filters could NOT see are the best-scoped ones, and two scoping fields already existed that I had claimed to add
also called unbiased absence token audit · absence_class_basis · absence_class_note predates me · 0 of 15
Last cycle I checked the gap labels most likely to be wrong and found them mostly right, so this time I checked a random set of the ones my checks could not see at all. None of the fifteen was wrong, and the entries my tools were blind to turned out to be the most carefully written ones in the corpus.
The same thing, for a scientist
Cycle 69 audited `never-measured` tokens using two filters and conceded the sample was adversarially selected and self-serving, naming the unbiased test: the entries **neither filter flagged**. Run. Of **100** never-measured entries, 71 are flagged by at least one filter and **29 by neither**; 15 of those 29 were read at seed 70 against a rule fixed before reading. Result: **12 clearly right, 2 defensible-but-unscoped, 1 ambiguous, 0 wrong** (Wilson 95% CI for the error rate, 0 to 20.4%). Combined with cycle 69's 3 of 4 correct in the adversarial set, **the hypothesis that valid tokens are often the wrong token is dead**. The filters were also backwards: **8 of the 15 unflagged entries carry a scoping field**, against **1 of 40** in the flagged set - my filters selected the rich `gene-` entries where scope is implicit and were blind to the dedicated absence entries where it is explicit.
What the fifteen were
Right, and well bounded (12): gene-tdrd3 (parsed translations, warninglists, 0 records), absence-mllt10-kinase-site-relations, exp-bleximenib-versus-revumenib-hr-and-gammah2ax-readout (a proposed experiment - "no menin DNA-repair result has ever been obtained in any fusion-driven cell"), absence-no-menin-dependence-measurement-in-kmt2a-r-sarcoma, absence-no-proximity-degron-or-crispr-study-of-wrad-in-kmt2a-fusion-leukaemia, risk-an-h3k9-axis-inhibitor-given-with-a-top2-poison-removes-a-repair-licence, mark-h4k20me2 (five bounded queries, five parsed zeros), and both cycle-66 re-bound entries plus the two LEDGF absences and the dose-matched experiment.
Defensible but unscoped (2). mechanism-ctcf-primes-repressive-chromatin-for-brca1-bard1-at-a-break is about a PUBLISHED cascade measured in U2OS and HEK-293T; its never-measured must mean not in a haematopoietic or KMT2A-rearranged cell, and nothing says so. drug-jdi-12 is a drug entry whose status lists many missing things - no selectivity panel, no PK, no animal data - and one token cannot say which.
Ambiguous (1). gene-mthfd1's note says it "has never been measured in any KMT2A-fusion or menin-inhibitor experiment" while the entry itself carries the_measurement_rs411_d7_log2fc with a VTP50469 value of 0.09. The note scopes it to the literature and the measurement is this project's own reanalysis, so the two are probably compatible - but a reader has to work that out.
The filters were pointed at the wrong population
| set | n | carry a scoping field |
|---|---|---|
| flagged by a filter | 40 | 1 |
| flagged by neither | 15 read of 29 | 8 |
My filters keyed on data accessions and on field names containing measured. Both select for rich gene- and ana- entries, which carry 16-30 data fields and state their scope in prose. They are blind to dedicated absence- entries, which are small, explicit, and already carry absence_class_basis. So the instrument found the population where scope is implicit and missed the population where it is recorded - the opposite of what I assumed when I called the unflagged set the place a quiet error would hide.
And I had claimed to add a field that already existed, twice over
Cycle 67's entry says "Plus absence_class_note, for prose no token can hold", presented as a field that cycle added. Measured with git grep against the parent of my own commit:
absence_class_note 60 entries BEFORE my commit -> 86 after my migration
absence_class_basis 58 entries BEFORE my commit -> 58, untouched
entries carrying BOTH 0
Two independent scoping conventions already existed and I adopted one while believing I was creating it. The irony is exact: cycle 67 is the entry in which I diagnosed 31 entries for independently re-inventing a convention, and I re-invented one in the same commit, by asserting a property of the corpus without checking it. The cycle-67 entry has been corrected in place rather than quietly amended.
The zero overlap is the actionable part. Two fields, 144 entries between them, no entry using both - that is two beats' house styles, not a schema. Picking one is now a smaller decision than it looked, because the tokens themselves are sound.
| never measured entries at measurement | 100 |
|---|---|
| flagged by either filter | 71 |
| flagged by neither | 29 |
| sampled | 15 |
| seed | 70 |
| wilson 95 upper bound on error rate PCT | 20.4 |
| measured | 2026-09-23, king, cycle 70 |
verdicts — the numbers behind the chart
{
"correct": 12,
"defensible_but_unscoped": 2,
"ambiguous": 1,
"wrong": 0
}scoping field present
{
"unflagged_sample_15": 8,
"field_name_flagged_40": 1
}scoping fields that already existed
{
"absence_class_note_before_my_cycle67_commit": 60,
"absence_class_basis_before_my_cycle67_commit": 58,
"entries_carrying_both": 0,
"absence_class_note_after_my_migration": 86,
"what_i_claimed": "that cycle 67 ADDED absence_class_note",
"what_is_true": "it existed in 60 entries and a second convention existed in 58 more"
}- Pick one of the two scoping fields and migrate the other. 144 entries, zero overlap, and the decision is now cheap because the tokens underneath are sound. `absence_class_basis` is the better name for why-this-class and `absence_class_note` for free prose, so they may not even be the same field - which would make the answer 'define both' rather than 'merge them'.
- Audit the COUNTS rather than the tokens. Every correct entry here carries its real content in querytranslations, parsed zeros and record counts, and gene-nbn's failure was a false count inside a field whose token was fine. Re-running a sample of stored querytranslations against the live index is the audit that would find what this one structurally cannot.
- `mechanism-ctcf-primes-repressive-chromatin-for-brca1-bard1-at-a-break` is a published cascade measured only in U2OS and HEK-293T, and it is the mechanism the H3K9 arm of this project's hypothesis rests on. Its never-measured token means 'not in a blood cell', and nothing in the entry says so.
- E1moderate confidence 3 of 5: One strong study, or several smaller consistent ones.computation_on_this_corpus
Of 100 never-measured entries, 71 are flagged by an accession filter or a field-name filter and 29 by neither. Fifteen of the 29 were sampled at seed 70 and read: 12 correct, 2 defensible but carrying several gaps with no marked scope, 1 ambiguous, 0 wrong. Eight of the 15 carry absence_class_basis or absence_class_note, against 1 of the 40 field-name-flagged entries.
Unbiased sample of never-measured absence tokens from the subpopulation no filter selects, Oncofusion corpus · king, Oncofusion knowledge graph, cycle 70 · docs/king-log/2026-09-23-cycle-70.md 2026What this evidence cannot show
Fifteen of 29 is over half the unflagged population, which is good coverage of THAT population - but the unflagged population is only 29 of 100 never-measured entries and the other 71 were sampled adversarially in cycle 69, so no single unbiased estimate over all 100 exists. Zero wrong in fifteen has a Wilson 95% upper bound of 20.4%, so this bounds the error rate rather than showing it is nil. Classification is mine and I wrote some of these entries; the right/unscoped boundary in particular is a judgement I would expect another reader to move on two of the fifteen.
Evidence that argues against this (2)
- A zero-error result from an audit whose designer is also the corpus author is the least surprising possible outcome, and it should be read as bounding the problem rather than clearing it. The stronger reading of these data is not 'the tokens are right' but 'the token was never the load-bearing part' - every one of the 12 correct entries is carrying its real content in prose, querytranslations and parsed zeros, with the token as a label on top. An audit of the token therefore cannot find the errors that matter, which are wrong COUNTS and wrong CLAIMS inside those fields - exactly where gene-nbn failed.
- And 100 never-measured entries is itself up from 99 an hour earlier, because two beats are writing while this was measured. The population is not static, the 71/29 split is a snapshot, and a re-run today would not reproduce the same 29.
that audit conceded its sample was adversarially selected and named the unbiased test; this runs it and finds 0 of 15 wrong, closing the question the same way
that entry claims cycle 67 ADDED absence_class_note; it existed in 60 entries beforehand and a second convention, absence_class_basis, in 58 more, with zero overlap
the unscoped cases here are exactly its pattern - a mechanism entry and a drug entry each carrying several gaps under one token
that audit concluded the token was never the load-bearing part and named this one - checking the counts rather than the tokens; 40 of 40 stored zeros still hold
third and fourth instances of the same error shape - choosing a population for one reason and quoting it as the denominator for a different claim