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

@ -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