portfolio-optimiser-claude/docs
Kjell Tore Guttormsen 607f017537 test(okf): the one unquoting rule was pinned at its edge, not in its three clauses
D7 mirroring candidate (a)/(i) `unquote_scalar`, measured. The sibling grew that
function after a duplicated conversion had drifted; our counterpart
`okf._strip_matching_quotes` is genuinely ONE rule -- one definition, one call
site, and `unquote` appears in 0 of 76 .py files under src+tests (positive
control: the same query finds `parse_frontmatter`). So the drift shape is absent.

But the rule was covered only at its edge. Detaching it outright is red; each of
its three clauses was green-but-dead against the whole 950-test suite -- weakening
the length guard, dropping the matching requirement, and widening the quote set
with a symmetric delimiter all left the suite green. Same class as the
_STRUCTURE_MARKERS hole: named and edge-covered is not covered.

tests/test_okf_unquote_loadbearing.py closes the three clauses (950 -> 955). Each
clause test is green before and red after exactly its own mutation, with the
population control green in both, clause 3 pinned on its line via --red-at.

A measuring trap, measured: the first clause-3 mutation added '[' to the quote
set and the suite stayed green -- which reads as "not covered" but is a NO-OP,
since '[' can never satisfy the matching clause. Flow-form values are protected
by the matching clause, not the quote set. The harness cannot distinguish a
behaviour-preserving mutation from an undetected seam; both surface as "stayed
GREEN". A mutation must be shown to change behaviour before its green is read as
a hole.

No flow decoding is added here -- that is the sibling's B4 work, and these tests
pin today's boundary so it cannot land silently on this side.

Co-Authored-By: Claude <claude-opus-5>
2026-08-31 23:31:17 +02:00
..
2026-07-04-I3-brief.md feat(ingest): I3 — D7-speil av ingest (filkatalog/CSV), bygget fra commons-spec alene 2026-07-04 06:12:43 +02:00
2026-07-04-I5-brief.md feat(ingest): I5 — SQL D7-speil, bygget fra commons-spec alene 2026-07-04 07:18:59 +02:00
2026-07-04-I7-brief.md docs(brief): the plan reference must not be a link only this machine can follow 2026-08-04 11:55:17 +02:00
2026-07-04-I7-statusrapport.md docs(ingest): I7 — programavslutning, D7-docs avgrenset til CSV + SQL 2026-07-04 20:08:06 +02:00
2026-07-10-sesjonsplan-d7.md docs(review): full-paritet review + sesjonsplanverk + beslutningsbrief (Fable 5 + 6 Opus-agenter) 2026-07-16 08:36:07 +02:00
2026-07-16-beslutningsbrief.md docs(portfolio): spec-gap §7 i operatør-køen + paritetsrad 24/25 rettet 2026-07-25 07:41:52 +02:00
2026-07-16-llm-ingestion-guard-plan.md chore(deps): re-pin llm-ingestion-okf to v0.3.1 + migrate tests to stable error codes 2026-07-20 07:22:09 +02:00
2026-07-16-review-paritet.md docs(review): full-paritet review + sesjonsplanverk + beslutningsbrief (Fable 5 + 6 Opus-agenter) 2026-07-16 08:36:07 +02:00
2026-07-16-sesjonsplan-paritet.md docs(portfolio): mark the parity table's D7 column as a frozen 2026-07-16 measurement 2026-07-25 15:27:52 +02:00
2026-07-25-d-a-amendment-forslag.md docs(portfolio): A5 premise corrected — the quantisation POINT is the live divergence 2026-07-25 19:58:04 +02:00
2026-08-18-funn-koeer-og-gater.md test(okf): the one unquoting rule was pinned at its edge, not in its three clauses 2026-08-31 23:31:17 +02:00
extending.md feat(portfolio): K12 — CLI parity, doc sync, knowledge-base recipe (parity row 24) [skip-docs] 2026-07-25 06:42:52 +02:00
oppskrift-kunnskapsbase.md feat(portfolio): K12 — CLI parity, doc sync, knowledge-base recipe (parity row 24) [skip-docs] 2026-07-25 06:42:52 +02:00
review-2026-07.md docs(review): kryssmodell-review + sesjonsplan-synk mot delt beslutnings-kø D-A–D-E 2026-07-10 07:29:35 +02:00