test(okf): consume nav-golden fixtures + thin STEG 0 corpus gate

Consume commons' nav-golden fixture class byte-exact from
portfolio-optimiser-commons @ b641741 (nav-golden-hierarchy positive +
nav-golden-escape boundary) into test/nav-golden-corpus/ and wire a thin
gate scripts/check-nav-golden.mjs (+ .test.mjs, 10 tests).

Scope (operator decision, thin): the catalog is the convention owner and
holds no consumer (null konsument), and the shared retrieval skill is
deferred (spec.md §10 Stage 3). So the gate does NOT run a read-context
navigator and does NOT assert the goldens byte-exact. It asserts only what
the catalog owns: each fixture bundle/ is a conformant OKF bundle under the
existing §3 checkBundle (every concept typed + root okf_version), and the
committed expected-read-context.md golden is present and non-empty. Byte-exact
navigator conformance stays a consumer concern (okr STEG 4 / Stage 3 skill).

Fixtures pinned byte-exact (.gitattributes -text); manifest carries source
repo+SHA per the vendoring-provenance rule. Naming: the stale "§5 pts 1-5"
read-context label maps to the settled method-spec §3 Step 1 (commons 9801d35);
no open §5 dependency. commons confirmed b641741 complete + goldens derived
from §3 Step 1 (via coord).

Verified: check-nav-golden 10/10; gate CLI exit 0 (2 fixtures PASS); full
suite 73/73 across the six test files.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NeK9hkxrU9wFPBYGYnSV1V
This commit is contained in:
Kjell Tore Guttormsen 2026-07-24 20:35:44 +02:00
commit 325727523d
20 changed files with 539 additions and 0 deletions

View file

@ -186,6 +186,26 @@ protocol; 🟢 is reserved for the independent gate-verified step (operator veri
fact. Verified: parity 8/8, `node check-okf-parity.mjs` → exit 0 ("parity holds"); regression 33/33;
`check-versions` 10 OK. Fixes stay **upstream-first** (patching BOM-norm into the catalog copy would just
re-diverge in the other direction). _(catalog session.)_
- **2026-07-24** — **STEG 0: nav-golden fixture class consumed + thin corpus gate landed**
(`test/nav-golden-corpus/` + `scripts/check-nav-golden.mjs` + `check-nav-golden.test.mjs`). commons
authored a `nav-golden` fixture class — each fixture is an OKF bundle paired with a committed
byte-exact `expected-read-context.md` golden (the fasit a conformant read-context navigator, commons
`method-spec.md §3 Step 1` + §11 Navigation boundary, must produce). **Consumed byte-exact from
portfolio-optimiser-commons `b641741`** (`nav-golden-hierarchy` positive + `nav-golden-escape`
boundary; `diff -r` identical; `.gitattributes -text` pins bytes; manifest carries source repo+SHA per
vendoring rule #7). **Scope decision (operator, thin):** the catalog is the convention owner and holds
no consumer (null konsument), and the shared retrieval skill is deferred (spec §10 Stage 3, "do not
build before Stage 2 says so") — so the gate does **not** run a navigator and does **not** assert the
goldens byte-exact. It asserts only what the catalog owns: each fixture `bundle/` is a conformant OKF
bundle under the existing §3 `checkBundle` (every concept typed + root `okf_version`), and the committed
golden is present + non-empty. Byte-exact navigator conformance stays a consumer concern (okr STEG 4 /
the deferred Stage 3 skill). **Naming correction (relayed to + confirmed by commons via coord):** the
earlier record's "§5 pts 1-5" read-context label was stale — the settled normative location is
`method-spec §3 Step 1`'s five read-context bullets (commons `9801d35`); there is no open §5 dependency
(current spec §5 = extension keys). commons confirmed both prerequisites: Q1 `b641741` is the complete
nav-golden set (future cases additive, non-moving); Q2 the goldens derive from settled §3 Step 1.
Verified: `check-nav-golden` 10/10; gate CLI → exit 0 (2 fixtures PASS — hierarchy 5 concepts / escape 1,
`okf_version` 0.1, goldens present); full suite **73/73** across the six test files. _(catalog session.)_
## Distilled architecture notes (OKF round, 2026-07)