feat(quality): okf quality --fasit, boundary recall against a declared structure
The bundle-only gate returned UNMEASURED and exit 3 on the very arm it was
built for: no metric computable from a bundle alone reaches boundary recall.
`boundary_share` -- declared boundaries that became a concept, over declared
boundaries -- is the one metric measured that orders the arms correctly, and it
needs the publisher's own structure, so it arrives as an input.
Measurement first, threshold after, which is what the order asked for.
P1, the normalisation, derived rather than guessed: stripping all whitespace
and lowercasing reproduces the fasit's own `norm` from its own `title` on
2 761 of 2 761 rows (alphanumerics-only scores 58). P1's own bar is 99 % on the
known-good arm and the literal reading of it reaches 22 of 2 761 -- not because
the normalisation is wrong but because okf's default route moves the numbering
token a publisher glues into a heading over into the concept id. The pair form
(concept's own directory, residual title) reaches 2 737, either reaches 2 759
(99.9 %). Both forms ship and neither is a fallback: `r761-2025-d1` is the
control in the opposite direction at 2 727 literal, 0 paired.
P2, the single corpus, is in the OUTPUT and not only in the document: the bar
is declared `corpora = 1`, every boundary row prints `N = 1 corpus`, and the
line states that `--fasit` is the caller's ASSERTION that this bundle is a
build of the document the fasit describes -- the posture `okf consume --ref`
has. Measured: the K2 reference and `n100-2023` score 0 of 2 761 and read FAIL,
which is the assertion being wrong rather than the bundle being bad.
One bar, at the pinned artifact's own value, 2 759/2 761. It is tight and the
cost is published rather than tuned away: 2 of 4 R761 builds fall under it
(2 752 and 2 727), while any bar between 41.6 % and 98.8 % separates the
known-bad arm from every R761 build measured. The known-bad arm
(`860019-mdb-100`) is 1 148 of 2 761 -- FAIL and exit 1, where the bundle-only
gate gave exit 3.
A fasit is validated at the door: not a list, a row missing `title` or `norm`,
or anything that is not JSON exits 2 with the reason, never a quiet UNMEASURED.
A fasit under five rows is UNMEASURED -- the document floor in the fasit's own
unit.
Without `--fasit` the command is byte-for-byte what it was, held by a test.
`okf check` is untouched; no version bump and no tag. 17 tests red on
assertions before the implementation, the two new doc pins each driven red and
back. Suite 1 869 passed / 1 skipped / 1 870 collected (base 5e5d01c: 1 851).
docs/2026-09-12-g37-terskler.md SS 7 carries the premises re-measured, the
seven bundles, the interval any bar could sit in, and the honesty limits --
including the correction of SS 2's own grep claim, which went false in the
commit that wrote it.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
5e5d01cc0a
commit
b6da09cc97
7 changed files with 868 additions and 16 deletions
38
CLAUDE.md
38
CLAUDE.md
|
|
@ -788,6 +788,44 @@ and fixtures, never code.
|
|||
premises re-measured: `docs/2026-09-12-g37-terskler.md`. README publishes the
|
||||
bars behind `<!-- quality-thresholds: ... -->`, pinned to the code AND the
|
||||
document by `tests/test_docs_promises.py`.
|
||||
**`--fasit <json>` REACHES that defect (G37b, 2026-09-13)** and is the only
|
||||
input this gate takes: one whole-bundle row, `boundary_share` = declared
|
||||
boundaries that became a concept over declared boundaries. It is whole-bundle
|
||||
and never per file type, because a fasit names ONE document's sections and a
|
||||
bundle can spread them over 828 source files -- which the known-bad arm does.
|
||||
**The normalisation was derived before the metric was built**, not guessed:
|
||||
strip all whitespace, lowercase, reproduces the fasit's own `norm` from its
|
||||
own `title` on **2 761 of 2 761** rows (alphanumerics-only scores 58 -- it
|
||||
eats the `.` in `2.1Hovedprosesser`). **A boundary is recovered in EITHER of
|
||||
two forms and neither is a fallback**: the concept's normalised title equal to
|
||||
`norm`, or the pair `(concept's own directory, residual title)` -- the literal
|
||||
form wants the declared title WITH its numbering token, the pair form WITHOUT,
|
||||
and no bundle can offer both, because okf's default route moves that token
|
||||
into the concept id. Measured on the known-good arm: literal **22 of 2 761**,
|
||||
paired **2 737**, either **2 759 (99.9 %)**; on `r761-2025-d1` the split is
|
||||
exactly inverted (2 727 literal, 0 paired), so a gate scoring one form alone
|
||||
reports a 99.9 % arm as 0.8 % and calls it a segmentation defect. The two
|
||||
forms are `vegnormal-okf`'s M8 correction, which they took verbatim from THIS
|
||||
repository's round-14 report -- the instrument reproduces both so the two
|
||||
repos cannot silently measure different things. One bar, at the pinned
|
||||
artifact's own value: **2 759/2 761 with `corpora = 1`**, and P2 is in the
|
||||
OUTPUT and not only in the document (`N = 1 corpus` on every boundary row).
|
||||
The known-bad arm is **1 148 of 2 761 (41.6 %)**, now `FAIL` + exit 1 where
|
||||
the bundle-only gate gave exit 3. **`--fasit` is an ASSERTION** (the posture
|
||||
`okf consume --ref` has) that this bundle is a build of the document the fasit
|
||||
describes: the K2 reference and `n100-2023` both score **0 of 2 761** and read
|
||||
`FAIL`, which is the assertion being wrong and not the bundle -- a gate
|
||||
telling those apart would need a bar read off the bundles it judges. The bar
|
||||
is TIGHT and the cost is published: 2 of 4 R761 builds fall under it (2 752
|
||||
and 2 727 of 2 761), while **any bar between 41.6 % and 98.8 % separates the
|
||||
known-bad arm from every R761 build measured** -- the shipped one is the only
|
||||
point in that interval read off a pinned artifact. An unreadable fasit exits
|
||||
**2** with its reason, never a quiet `UNMEASURED`, and a fasit under five rows
|
||||
is `UNMEASURED` (`MIN_DECLARED_FOR_A_THRESHOLD`, the document floor in the
|
||||
fasit's unit). **Without `--fasit` the command is byte-for-byte what it was**,
|
||||
held by a test. README publishes this bar behind
|
||||
`<!-- quality-boundary-threshold: ... -->`; SS 7 of the threshold document
|
||||
carries the seven bundles and the honesty limits.
|
||||
- Consume a bundle: `okf consume <bundle> --question "<q>"
|
||||
[--k N] [--limit N] [--out PATH] [--ref IDENTITY]` — the **pre-pass**
|
||||
`docs/consumption-contract.md` § 1 defines, and the only reading direction
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue