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:
parent
245ff64c3d
commit
cf21449ddb
15 changed files with 108 additions and 97 deletions
11
CHANGELOG.md
11
CHANGELOG.md
|
|
@ -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`.
|
||||
|
|
|
|||
44
CLAUDE.md
44
CLAUDE.md
|
|
@ -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
|
||||
|
|
|
|||
30
README.md
30
README.md
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 |
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue