1
0
Fork 0
portfolio-optimiser-commons/docs/plan
Kjell Tore Guttormsen 5f046abcf4 docs(plan): Q3 finding — method-spec §3 silently forbids hierarchical bundles
Answering question 3 from the OKF round (flat vs hierarchical bundles) turned
up a conflict that is real in code, not just between two spec texts:

  method-spec.md:66-69   skip any link target containing a path separator
  okf.py:123-125         `if "/" in target: continue` — implemented as written
  okf-index.mjs:110      okr emits `${sd}/index.md`
  okf-links.mjs:23       okr *requires* a leading `/`

So every link okr produces is skipped by the navigator, and okr cannot write a
flat bundle at all (routeLevel always returns a subdirectory). Worse, the
robustness rule at :72-73 mandates that the skip be silent — a hierarchical
bundle yields a read-context of the root index and nothing else, with no error.
On okr's own okf-realistic fixture all 8 concept files vanish.

The separator ban is the wrong proxy for the security property it wants: it
conflates "contains a separator" with "escapes the bundle". Method-spec already
carries the precise rule two lines below (:73, boundary-checked, fail-closed),
and okr has correct prior art (okf-links.mjs:20-26).

Direction: let navigation traverse hierarchy; keep door A flat in v1. This is
also what makes a shared Python/Node fixture suite possible at all.

Neither spec is edited. Decision is the operator's.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HBJNsFsBRaAhqGKjjiGjoQ
2026-07-20 08:53:33 +02:00
..
2026-07-16-llm-ingestion-guard-adoption.md docs(plan): record commons↔implementation-repo coordination boundary 2026-07-16 07:41:25 +02:00
2026-07-20-f1-freetext-connector-direction.md docs(plan): F1 direction — free-text sources belong in ingest-spec door A 2026-07-20 07:26:02 +02:00
2026-07-20-q3-bundle-shape-navigation-conflict.md docs(plan): Q3 finding — method-spec §3 silently forbids hierarchical bundles 2026-07-20 08:53:33 +02:00