llm-ingestion-okf/docs/plan
Kjell Tore Guttormsen 95eb271f57 fix(corpus): the root index links the bundle's own log
Measured on the K2 artifact by a consumer: `log.md` was on disk and no
index named it, so a reader entering the bundle at `index.md` -- the walk
section 8 exists to support -- never reached the one file carrying `N`.

Stated as a LOCAL choice rather than conformance, because it is one.
Upstream's own bundles do not link their log: measured at `9a15b13`, 0 of
the 24 shipped `index.md` files name the single `log.md` in the set, with
the same grep form finding `tables/index.md` in 4 of them as the
known-positive control. That shows the link is not REQUIRED -- not that
it is disallowed. `docs/plan/okf-v0.2-alignment.md` P1-F6 already
recorded the upstream shape; a line there now separates the two claims,
since reserved names still stay out of an `entries_match_directory`
listing and this profile has that off.

It lives in the harness because the library cannot make it. The log's
content IS the run's outcome, so it cannot exist when the indexes are
projected, and an index that enumerated it off the directory would gain
the link only from the second run onward -- breaking
rebuild-equals-incremental, the property the segmented bundle is built
on.

The membership test is load-bearing and was measured, not assumed. The
two reprojections disagree about this line: the per-directory one drops
every managed entry before re-emitting its block, while the flat one
keeps a managed line whose target is not an owned concept, deliberately,
so that a regex cannot delete curated content. Appending unconditionally
therefore doubled the entry on the second unsegmented run, which is why
both run modes are pinned separately.

1052 -> 1054 tests. `mypy --strict` clean, `ruff` clean.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-03 20:23:56 +02:00
..
concept-granularity.md test(errors): reunite the segmentation codes with the conformance suite 2026-09-01 19:31:51 +02:00
execution-order.md feat(guard): bump the pin to >=0.3,<0.4 and pin Door C's allow_reserved=False 2026-08-02 21:08:53 +02:00
index-ordering.md docs(index): assess a consumer-controlled index ordering - accept, reshape 2026-08-31 23:35:25 +02:00
intake-boundaries.md docs(intake): write down the boundaries that will not be closed 2026-09-01 21:51:59 +02:00
mcp-bundle-population.md docs(mcp): Q2 gains upstream's tool surface as measured prior art 2026-07-27 20:16:47 +02:00
office-intake.md docs(plan): amendments etter PM-dom 02.09 2026-09-02 13:58:21 +02:00
okf-2026-08-timestamp-tightening.md docs(upstream): move the OKF pin to canonical ad30107, re-record V-A8 2026-08-23 20:30:22 +02:00
okf-bundle-consumption-contract.md docs(contract): the generic consumption contract, stated normatively 2026-09-02 16:05:11 +02:00
okf-v0.2-alignment.md fix(corpus): the root index links the bundle's own log 2026-09-03 20:23:56 +02:00
phase-1-door-a.md docs(plan): add detailed phase 1-4 implementation plans 2026-07-16 10:58:08 +02:00
phase-2-doors-b-c.md docs(plan): answer the Door B/A capability-gap order from ms-ai-architect 2026-08-26 23:54:35 +02:00
phase-3-configurable-contract.md docs(okf-v0.2): the alignment track lands before the contract freezes 2026-07-26 11:42:37 +02:00
phase-4-node-half.md docs(phase-4): record linkedin-studio's two named requirements before the freeze 2026-07-25 20:34:54 +02:00
references-cue-rule.md fix(structure): a derived reference needs a cue, not just a number shape 2026-08-29 09:26:57 +02:00
structure-derivation.md fix(structure): a derived reference needs a cue, not just a number shape 2026-08-29 09:26:57 +02:00