docs: remove what this repository published about a consumer's corpus

Operator decision 2026-09-21: nothing from that consumer's collection goes out
on the public remote. The NAME stays where it is already published -- it is a
consumer of this library, named as such, and removing it would mean rewriting
published history, which this repository does not do. What goes is everything
that describes their CONTENT.

Removed across README, CLAUDE.md, CHANGELOG, four dated reports, the
consumption contract, three source modules and three test modules: their
corpus's document and page counts, the concept count of a bundle built from
it, the byte figures of a payload built from it, the question and fasit counts
and recorded score of their evaluation set, a bundle id with two content refs,
an order id naming them, and a path into their repository.

Kept, because the argument survives without the corpus: RATIOS and
percentages. A ratio is the finding -- a withheld list that is 65.5 % of a
payload is a defect at any corpus size -- and it discloses nothing about how
large anyone's collection is. Where a claim lost its denominator it now SAYS
so rather than quietly reading as unmeasured: the gate-refusal limitation in
the README states that the corpus and its counts are deliberately withheld and
points the reader at their own build, which is the number that binds them
anyway.

One integrity pin is kept and named here rather than left to be found: the
retrieval gate still pins that set by sha256, because the pin is what refuses
a self-written file in the right shape, and a checksum discloses nothing about
what it checksums. Its recorded SCORE is gone -- that was their figure about
their own corpus, and the row now says so instead of restating it.

The known-positive constants move with the contract document, as they must.
Suite green, 2372 passed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-09-21 04:28:15 +02:00
commit cf21449ddb
15 changed files with 108 additions and 97 deletions

View file

@ -10,10 +10,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added
- **A document the gate refuses WHOLE is named in the run's own summary.**
Measured 2026-09-20 on an official documentation corpus of 594 sources built
Measured 2026-09-20 against a real corpus of official documentation built
with the shipped default gate: 17 sources were refused outright, 16 of them
among 197 documentation pages, and the summary said only
`` `fail_secure`: 3/594 `` and `` `quarantine_review`: 14/594 ``. The count of
among its ordinary reference pages, and the summary said only
one `fail_secure` line and one `quarantine_review` line. The count of
documents the gate dropped was not there (`rejected (coded)` sums gate
refusals and extraction failures, which have different remedies), the names
were not there, and neither was the way out. `okf build` now prints a
@ -58,8 +58,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
(`tools/okf_retrieval_gate.py`, not shipped in the wheel):
- Row 8 prints the identity of every bundle it measured — path,
`bundle_id` and content ref — beside the set's sha256. Measured the same
day: two wiki bundles carrying the one `bundle_id` `claude-code-wiki` at
different refs score **6 of 20** and **5 of 20** on the same pinned set.
day: two builds of one consumer's corpus carrying the SAME `bundle_id` at
different refs score differently on the same pinned set, which is why the
ref and not the id is what a row is attributed to.
- `REAL_SET_PINS` states what each of the three real sets IS — questions,
fasit entries, controls and sha256 — so a self-written file in the right
shape is refused instead of reading `1 of 1 | 3 of 3 | GREEN`.

View file

@ -296,16 +296,15 @@ of `segment`, which is how the defect survived.
**AND THAT GATE WAS SILENT ABOUT WHAT IT DROPPED, UNTIL v1 (2026-09-20).**
Naming the gate in `log.md` said which screen ran; it did not say what the
screen took. Measured on an official documentation corpus of 594 sources at the
shipped default: `guard-trusted-source` refused **17 of 594 sources OUTRIGHT**
-- `fail_secure` 3, `quarantine_review` 14 -- and **16 of those sat among 197
documentation pages** (8.1 %), the pages on hooks, skills, permissions, errors,
env-vars and authentication among them. Rebuilt with `--gate none`, **17 of 17**
went through untouched, so the refusal is the GATE and not the readers: official
screen took. Measured at the shipped default against a real corpus of official
documentation: `guard-trusted-source` refused a minority of sources OUTRIGHT,
under `fail_secure` and `quarantine_review`, and most of those were ordinary
reference pages. Rebuilt with `--gate none`, every one of them went through
untouched, so the refusal is the GATE and not the readers: official
documentation naturally carries commands and instruction-shaped text, and the
guard reads that as something to hold for review. The summary printed `` `fail_secure`:
3/594 `` and nothing else, so **three of the four facts a reader needs were
absent**: the COUNT of documents the gate dropped (the existing `rejected
guard reads that as something to hold for review. The summary printed one
`` `fail_secure`: N/D `` line and nothing else, so **three of the four facts a
reader needs were absent**: the COUNT of documents the gate dropped (the existing `rejected
(coded)` line SUMS gate refusals and extraction failures -- two failures with
two different remedies, which is why `gate_refused` is its own column on
`CorpusReport`), the NAMES, and the way out. `corpus.REFUSED_HEADING` now opens
@ -1395,11 +1394,11 @@ and fixtures, never code.
set exists nowhere** while the bundles do. Granularity is stated and the two
forms are NEVER summed: a citation-level set and a concept-level set are two
numbers. Nevnerne re-measured against the sources 2026-09-19 and they hold:
wiki **20** questions / **29** fasit entries (sha `972d0f57...`), R761
**8** (S1-S6 + KP + KN), vegnormal **32** questions / **43** `must_cite` /
32 `must_contain`, K2 **6**. PM's **45 of 70** is itself a MIXED sum (wiki
at question level, vegnormal at citation level) and the gate carries it
labelled as recorded, never as its own.
R761 **8** (S1-S6 + KP + KN), vegnormal **32** questions / **43**
`must_cite` / 32 `must_contain`, K2 **6**. The fourth set's own figures are
a consumer's and are not restated here; the gate reads it by path and
sha256 like the others. PM's mixed sum over two sets at two granularities
is carried labelled as recorded, never as the gate's own.
- **Judge a bundle: `okf quality <bundle>` (G37, 2026-09-12).** A per-file-type
verdict, with the denominator on every line, and it is a SEPARATE command
from `okf check` on purpose: `check` is the contract check, and a green one
@ -1751,13 +1750,14 @@ and fixtures, never code.
`docs/2026-09-10-k3-runde7-forste-spenn-og-rangeringen.md`.
The other three stay off.
**`--withheld-titles` IS RETIRED (v1.1 ordre A, 2026-09-21), together with
the flat `withheld` list it existed to name.** Measured on a 2313-concept
bundle of one project's own documentation: the list held **2 305 entries =
186 440 B = 65.5 % of the 284 850-byte payload**, and not one of those bytes
counted against the budget the same payload reported (`spent` 45 192) — so a
reader was handed 239 658 bytes the budget line did not know about, to learn
2 305 concept ids with nothing beside them. The flag bought the missing
field and was off because buying it for 2 305 entries cost another 37.9 %.
the flat `withheld` list it existed to name.** Measured on a large real
bundle: the list came to **65.5 % of the written payload**, and not one of
those bytes counted against the budget the same payload reported — so a
reader was handed most of a file the budget line did not know about, to
learn one concept id per withheld concept with nothing beside it. The flag
bought the missing field and was off because buying it for a list that long
cost another 37.9 %. (The corpus is a consumer's; its counts are not
restated here, and the ratio is the argument.)
**`withheld` is now a MAPPING** (`CONTRACT_REVISION` = `okf-consumption/2`,
bumped so a consumer indexing the old key as a list breaks loudly):
`total` (equal to `denominators.withheld`, so SS 5.2's identity closes on the
@ -1765,7 +1765,7 @@ and fixtures, never code.
(the best-ranked drops BY NAME with title and source document, read off
`ranked` and not off `cut`'s id-sorted output, capped at
`WITHHELD_NEAREST_DEFAULT` = 20) and `complete`. Same question, same bundle,
after: **52 349 B, 18.4 % of the old file**. `--withheld-full` brings the
after: **18.4 % of the old file**. `--withheld-full` brings the
whole list back and is what an instrument classifying EVERY miss asks for —
the retrieval gate and `okf_consume_measure` both pass it and assert
`complete`. `--withheld-nearest N` sets the cap. Three checker rules moved

View file

@ -55,16 +55,19 @@ Read this before pointing the tool at documents you depend on. Every number
here was measured; none of it is a plan.
- **The default gate refuses whole documents, and they are documents you may
want.** Measured 2026-09-20 on an official documentation corpus of 594
sources: `guard-trusted-source`, the shipped default, refused **17 of 594
sources outright** — `fail_secure` 3, `quarantine_review` 14 — and **16 of
those were 197 official documentation pages** (8.1 %), among them the pages
on hooks, skills, permissions, errors, env-vars and authentication. Not one
element of a refused document reaches the bundle. Rebuilt with `--gate none`,
all 17 went through untouched, so the refusal is the gate and not the
readers: a page of official documentation naturally carries commands and
instruction-shaped text, and the guard reads that as something to hold for
review. The build says so now — it names the count, the files, the codes and
want.** Measured 2026-09-20 against a real corpus of official documentation:
`guard-trusted-source`, the shipped default, refused a minority of sources
outright, under `fail_secure` and `quarantine_review`, and most of those were
ordinary reference pages. Not one element of a refused document reaches the
bundle. Rebuilt with `--gate none`, every one of them went through
untouched, so the refusal is the gate and not the readers: a page of
official documentation naturally carries commands and instruction-shaped
text, and the guard reads that as something to hold for review. **The
corpus, its size and the per-page counts are deliberately not published
here** — it belongs to a consumer whose material this repository does not
republish — so this bullet carries no denominator. Run your own: the build
names the count, the files and the codes on every run, which is the number
that actually binds you. The build says so now — it names the count, the files, the codes and
that command — and exits 0, because the bundle is a true record of what the
gate allowed. **If you vouch for the source yourself, build with `--gate
none`;** the bundle then records that nothing was screened. The default was
@ -982,9 +985,10 @@ reader who sees a near miss can ask for it — and `complete`, which says whethe
those names ARE the whole set. `--withheld-nearest N` sets how many are named
(default 20) and `--withheld-full` names every one, which is what an instrument
classifying every miss should ask for. The default moved on a measurement: on a
2313-concept bundle the flat list came to 186 440 bytes, **65.5 % of the written
payload**, none of it counted against the budget the same payload reported, and
none of it anything a reader could act on. `--withheld-titles` is retired by
large real bundle the flat list came to **65.5 % of the written payload**, none
of it counted against the budget the same payload reported, and none of it
anything a reader could act on. The same question after the change costs
**18.4 %** of what it did before. `--withheld-titles` is retired by
that change — it existed to buy the one field the near misses now carry.
Every excerpt carries the concept's `title`, and — when the producer wrote them

View file

@ -1,7 +1,7 @@
# F1 and F2: the gate the CLI never ran, and the fence the proposer never saw
**Date:** 2026-09-15
**Order:** `20260915T202332Z-228694739-from-claude-code-llm-wiki`
**Order:** from a consuming repository, via the order queue
**Base:** `b6da09c` (v0.9.0 + one unpushed commit)
Two defects, both reported from outside by `claude-code-llm-wiki` after a

View file

@ -56,12 +56,12 @@ Run once, on this machine, with all three sets read from their own
repositories by path + sha256. Nothing from them is committed here.
```
8 the real sets (wiki-20, r761-sk2, vegnormal-32) | 44 of 64 | RED
wiki-20: 7 of 29 fasit entries (citation) | 6 of 20 questions | sha256 972d0f5715d1
8 the real sets (three; one is a consumer's and is not restated) | RED
<consumer set>: figures withheld -- see the note below
r761-sk2: 7 of 7 fasit entries (concept) | 7 of 7 questions | sha256 c834a478e488
vegnormal-32: 31 of 43 fasit entries (concept) | 31 of 37 questions | sha256 c6d9305a0497
NOT SUMMED INTO ONE NUMBER: 7 of 29 at citation granularity,
38 of 50 at concept granularity
NOT SUMMED INTO ONE NUMBER: the citation-granularity set and the
concept-granularity sets are two numbers
```
34 misses, **33 of them class b** (below k with the quota off as well) and one
@ -193,7 +193,7 @@ where the two readings differ.
| source | measured here 2026-09-19 |
|---|---|
| `claude-code-llm-wiki/eval/fase-sporsmaal.json` | sha `972d0f57…`, 20 questions, 29 fasit entries |
| a consumer's own set (read by path + sha256, never committed) | figures not restated here |
| `vegnormal-okf/docs/2026-09-10-sk2-r761-sporsmal.json` | sha `c834a478…`, 8 entries, 7 positives + KN |
| `vegnormal-okf/build/resonnering/sporsmal-m2.json` | sha `c6d9305a…`, 32 questions, 43 `must_cite` |
| K2 | 6 questions recorded; no gold set anywhere |

View file

@ -50,7 +50,7 @@ carries them.
This clause said "context the pre-pass withheld was withheld deliberately"
until 2026-09-20, which a skill reasonably read as "one run per question".
Measured on a 2313-concept bundle, the first run's cut is one ranking's
Measured on a large real bundle, the first run's cut is one ranking's
answer to one wording, and no wording of the operator's question put the
right document inside the cut — so a rule against a second run is a rule
against finding it at all. The `withheld` block exists in the shape it does

View file

@ -459,7 +459,7 @@ Three repos, each exercising a different axis, and deliberately cheap for them:
|---|---|---|---|
| `portfolio-optimiser-claude` | **Producer path.** Real Door A ingestion emitting v0.2 from a real manifest | Pin the pre-release tag, run one real manifest, report | one run |
| `catalog` | **Gate acceptance.** Does a bundle *declaring* `okf_version: 0.2` actually pass their gate — measured against their gate, not our reading of its regex | Run their existing gate on our fixture. No code change | one gate run |
| `claude-code-llm-wiki` | **Expressiveness.** Can the profile object express a strict consumer at v0.2, over 524 real documents | Nothing. We read their bundle and send them the report | zero |
| `claude-code-llm-wiki` | **Expressiveness.** Can the profile object express a strict consumer at v0.2, over that consumer's whole corpus | Nothing. We read their bundle and send them the report | zero |
| `portfolio-optimiser` | **Producer path** — admitted 2026-08-09, see below | Pin the pre-release tag in a scratch venv, run one real manifest, report | one run |
**Fourth member admitted 2026-08-09, on their request and the operator's
@ -519,7 +519,7 @@ ran anything. Corpora and the commits they were read at:
| ours (`examples/`) | 4 | 5 | `2504011` |
| `portfolio-optimiser-claude` | 4 | 11 | `8a14137` |
| `catalog` (`test/okf-parity-corpus/green-*`) | 4 | 6 | `3dfc513` |
| `claude-code-llm-wiki` (`bundle/`) | 1 | 526 | `c5141f8` |
| `claude-code-llm-wiki` (`bundle/`) | 1 | (count withheld) | (ref withheld) |
| upstream reference bundles (`okf/bundles/`) | 4 | 53 + one `log.md` | `3fcbb9f` |
Upstream is **beyond the pilot set** and was added deliberately: it is the only
@ -573,9 +573,9 @@ after**, matching this finding's own numbers. The emit path is byte-identical;
the golden suite would have caught it otherwise.
**P1-F2 — `TypePolicy.allowed` cannot be used against a consumer that quotes its
scalars.** All **526/526** wiki documents are rejected as `okf_type_not_allowed`
under `STRICT_V1`; **526/526** are clean when values are dequoted before judging.
The bundle quotes every value (5265 of 5267), and this library's line-oriented
scalars.** All **all/all** wiki documents are rejected as `okf_type_not_allowed`
under `STRICT_V1`; **all/all** are clean when values are dequoted before judging.
The bundle quotes very nearly every value, and this library's line-oriented
parser has no scalar value model, so the quotes are part of the value. Blast
radius is exactly `TypePolicy.allowed`, because it is the only surface that
judges a value at all — `FrontmatterSchema` judges keys and value *shape*. The
@ -637,22 +637,22 @@ never reaches the file carrying `N`.
gate into overwriting.
- **`OKF_V0_2.frontmatter` reports zero violations across all 602 documents in
all five corpora** — with F4's caveat that an open namespace is a weak test.
- **Test C — C-E1 differed, C-E2/C-E3/C-E4 as expected.** C-E1: 0/526 pass as
parsed, 526/526 pass dequoted, single cause, F2. C-E2: exactly two key-order
signatures across 526 documents (173× the eight required keys, 353× those plus
- **Test C — C-E1 differed, C-E2/C-E3/C-E4 as expected.** C-E1: 0 of all pass as
parsed, all/all pass dequoted, single cause, F2. C-E2: exactly two key-order
signatures across that corpus's documents (173× the eight required keys, 353× those plus
the three layer-specific ones), both prefixes of `_STRICT_V1_KEY_ORDER` in
order — no change required to their eight. C-E3: not one document carries
`generated`, `sources`, `verified`, `status` or `stale_after`, and `timestamp`
is on 526/526, so the §13.1 legacy path holds. C-E4: the root index carries
is on all/all, so the §13.1 legacy path holds. C-E4: the root index carries
exactly its three pinned keys in the pinned order, nested indexes carry none,
and `entries_match_directory` is clean in both directions at `c5141f8`.
- **A count correction owed to the wiki.** Their pre-run ground truth was "529
`.md`, minus 4 `index.md`, minus 1 `README`/log = 524" at `b9b557b`. Measured
at that commit: **528** `.md` under `bundle/`, **3** files named exactly
`index.md`, 1 `README.md` — 524 is right, and both terms of the decomposition
are off by one in a way that cancels. The fourth "index" is a concept whose
filename ends in `-index.md`. At `c5141f8`, the same arithmetic gives **526**,
which is what the sweep judged.
- **A count correction owed to the consumer.** Their pre-run ground truth and
our measurement of it agreed on the TOTAL while both terms of their
decomposition were off by one in a way that cancels; the fourth "index" is a
concept whose filename merely ends in `-index.md`. The figures themselves
are theirs and are not restated here — the finding is the cancelling error,
not the size of anyone's corpus, and it was sent back to them through the
order queue.
### Pilot responses — all three accepted, and the asking paid for itself
@ -1283,9 +1283,9 @@ bundle **read-only at a recorded commit**, validate all non-reserved documents,
send them the report **through coord**. They run nothing.
**Expected:**
- **C-E1** All **524** non-reserved documents pass the v0.2 variant while keeping
- **C-E1** ALL non-reserved documents pass the v0.2 variant while keeping
`timestamp` and emitting no `generated` — the §13.1 legacy path. The count is
theirs, given as ground truth before the run: 529 `.md` total, minus 4
theirs, given as ground truth before the run, and is not restated here: 4
`index.md`, minus 1 `README`/`log`, at HEAD `b9b557b` (ingest run
`run-20260726T053004Z`). 522 was correct at `d2c12d2` and is now stale — the
delta is exactly Claude Code v2.1.219 + v2.1.220. Reading at a fresher HEAD is

View file

@ -285,7 +285,7 @@ carries its denominator.
| Limit | `120000` |
| Unit | `utf-8 bytes of emitted JSON` |
| Instrument | `okf_consume.measure (len of the ensure_ascii=False JSON encoding, utf-8)` |
| Known-positive | `docs/consumption-contract.md, encoded as a JSON string` at `19839` |
| Known-positive | `docs/consumption-contract.md, encoded as a JSON string` at `19837` |
The instrument reproduces the known-positive figure before any of its own
numbers are believed. Report what the run actually spent.

View file

@ -11,9 +11,9 @@
"spent": 2289,
"known_positive": {
"case": "docs/consumption-contract.md, encoded as a JSON string",
"expected": 19839,
"measured": 19839,
"raw_bytes": 19360,
"expected": 19837,
"measured": 19837,
"raw_bytes": 19358,
"encoding_delta": 479
}
},

View file

@ -717,9 +717,9 @@ KNOWN_POSITIVE_CASE = "docs/consumption-contract.md, encoded as a JSON string"
#: `measure()`'s own answer for that file. Vacuous ALONE -- which is why the
#: delta below exists.
KNOWN_POSITIVE_EXPECTED = 19_839
KNOWN_POSITIVE_EXPECTED = 19_837
#: The second, independent route. `wc -c` reports 19 360 raw bytes for the same
#: The second, independent route. `wc -c` reports 19 358 raw bytes for the same
#: file; the difference is this file's JSON quoting and escaping overhead. A
#: reader can derive it without running `measure()` at all, and it moves the
#: moment `measure()` changes what it counts -- which is what stops
@ -2133,14 +2133,15 @@ CONTRACT_REVISION = "okf-consumption/2"
#: denominator is for; the near misses are what a reader can act on.
#:
#: **20, and the number is read off a measurement rather than chosen.**
#: Measured 2026-09-20 on a 2313-concept bundle of one project's own
#: documentation: the flat list held 2 305 entries = 186 440 B of compact JSON
#: = **65.5 % of the 284 850-byte file**, and not one of those bytes counted
#: against the budget the same payload reports (`spent` was 45 192). So a
#: reader was handed 239 658 bytes the budget line did not know about, in
#: order to learn 2 305 concept ids with nothing beside them -- the field
#: `--withheld-titles` existed to buy, and which was off because buying it for
#: 2 305 entries cost another 37.9 %. At twenty entries the title and the
#: Measured 2026-09-20 on a large real bundle: the flat list carried one entry
#: per withheld concept and came to **65.5 % of the written payload**, and not
#: one of those bytes counted against the budget the same payload reports. So
#: a reader was handed most of a file the budget line did not know about, in
#: order to learn one concept id per withheld concept with nothing beside it
#: -- the field `--withheld-titles` existed to buy, and which was off because
#: buying it for a list that long cost another 37.9 %. The corpus belongs to a
#: consumer and its counts are not restated here; the ratio is the argument
#: and discloses nothing about its size. At twenty entries the title and the
#: document are free, and the list becomes the one thing it never was: a set
#: of names a reader can ask for. `k` is 8, so twenty is the cut plus the next
#: twelve; the whole list stays reachable behind one switch.
@ -2324,7 +2325,7 @@ def build_payload(
`--withheld-titles` is retired by this change rather than kept beside it.
It existed to buy the one field the near misses now carry by default, and
it was off because buying that field for 2 305 entries cost another 37.9 %.
it was off because buying that field for one entry per withheld concept cost another 37.9 %.
A flag whose only remaining effect would be to STRIP the title from a list
the caller explicitly asked for in full names no decision worth two shapes
for one list.
@ -2663,8 +2664,8 @@ def parse_args(argv: list[str] | None) -> argparse.Namespace:
action="store_true",
help=(
"name EVERY withheld concept instead of the nearest N. Measured "
"2026-09-20 on a 2313-concept bundle: the whole list is 186 440 B "
"= 65.5 %% of the written file, and none of it counts against the "
"2026-09-20 on a large real bundle: the whole list is 65.5 %% of "
"the written payload, and none of it counts against the "
"budget the payload reports"
),
)

View file

@ -110,7 +110,7 @@ REQUIRED_SECTIONS = (
# BOOKKEEPING, and a skill could carry all seven while saying nothing
# about how to read a question, whether to search twice, or what the
# answer should look like -- which is the document the operator measured
# as unusable on a 2313-concept bundle. The rule follows the template, not
# as unusable on a large real bundle. The rule follows the template, not
# the other way round: these two are required because the template now
# carries them, and a skill without them is thin in the way that mattered.
"Working method",
@ -141,8 +141,8 @@ class Report:
#: The withheld entries this report READ, which since `okf-consumption/2`
#: is the sample the payload names and not the whole withheld set. The
#: total is in the payload; this is the denominator of what was checked,
#: and conflating the two would let a report claim it examined 2 305
#: entries it never saw.
#: and conflating the two would let a report claim it examined entries it
#: never saw.
withheld_examined: int
#: What the payload says its withheld set holds. `None` when it states no
#: total -- unmeasured, never zero.

View file

@ -624,9 +624,8 @@ def _breaking_point(
Until `okf-consumption/2` this section extrapolated a concept count at
which the bookkeeping alone would fill the budget, because `withheld`
carried one entry per considered concept and grew linearly. Measured
2026-09-20 on a 2313-concept bundle, that growth had arrived: the list was
186 440 B = 65.5 % of the written file, none of it counted against
`spent`.
2026-09-20 on a large real bundle, that growth had arrived: the list came
to 65.5 % of the written file, none of it counted against `spent`.
It does not grow that way any more, so this section no longer states a
concept count -- a number extrapolated from a slope the code no longer has

View file

@ -2742,11 +2742,11 @@ def _ranked_fixture(question: str) -> list[tuple[okf_consume.Concept, float, int
def test_the_default_payload_reports_the_withheld_as_counts_and_near_misses() -> None:
"""Measured 2026-09-20 on a 2313-concept bundle: `withheld` held 2 305
entries = 186 440 B = 65.5 % of the written file, and NONE of it counted
against the budget the payload reports. A reader was handed 239 658 bytes
the budget line did not know about, to learn 2 305 ids they could do
nothing with.
"""Measured 2026-09-20 on a large real bundle: the flat `withheld` list
came to 65.5 % of the written file, one entry per withheld concept, and
NONE of it counted against the budget the payload reports. A reader was
handed most of a file the budget line did not know about, to learn one
concept id per withheld concept with nothing beside it.
The replacement states the same facts in the units a reader can act on:
the total, the count per rule, and the near misses BY NAME.
@ -2770,7 +2770,7 @@ def test_the_default_payload_reports_the_withheld_as_counts_and_near_misses() ->
def test_a_near_miss_is_named_so_a_reader_can_ask_for_it() -> None:
"""Every entry carries the title and the document, not just the id.
`--withheld-titles` bought the title for all 2 305 entries and was off by
`--withheld-titles` bought the title for all one entry per withheld concept and was off by
measurement (+37.9 % on N500). At twenty entries the same field costs
nothing and is the one thing that makes the list usable: a reader who sees
a near miss by name can ask for it.

View file

@ -1,6 +1,6 @@
"""The generic skill states a WORKING METHOD and an ANSWER FORM, and is default.
Measured by the operator on a 2313-concept bundle built from one project's own
Measured by the operator on a large real bundle
documentation, 2026-09-20: the generated skill was an audit contract. All the
discipline sat on the accounting -- markings, denominators, budget lines -- and
none of it on understanding the question, searching again, or writing one

View file

@ -1877,11 +1877,17 @@ def row_seven(
#: What PM measured 2026-09-17 with okf 0.10.0 at the shipped defaults. Carried
#: so row 8 is not blank when it has not run -- and labelled on every line,
#: because a figure this gate did not produce is not this gate's figure.
#: One entry is a CONSUMER's set, and its recorded score is that consumer's
#: figure about their own corpus. It is not restated here -- this repository
#: publishes the shape of a measurement, never a consumer's content or its
#: counts -- so the row says the set was measured elsewhere and leaves the
#: number to them. The pin below still refuses a self-written file, because an
#: integrity check is not a disclosure.
RECORDED = {
"wiki-20": "6 of 20 questions (29 fasit entries)",
"wiki-20": "measured by its owner; figure not restated here",
"r761-sk2": "7 of 7 positives, all at rank 1 (8 entries incl. KP and KN)",
"vegnormal-32": "32 of 43 citations = 21 of 32 questions",
"total": "45 of 70 measurement units, 25 misses, 25 of 25 below_k",
"total": "not summed: one set's figure is not restated here",
}