diff --git a/docs/llm-ingestion-okf-fase4-kartlegging-2026-07.md b/docs/llm-ingestion-okf-fase4-kartlegging-2026-07.md index d0b4e19..0633a42 100644 --- a/docs/llm-ingestion-okf-fase4-kartlegging-2026-07.md +++ b/docs/llm-ingestion-okf-fase4-kartlegging-2026-07.md @@ -153,7 +153,62 @@ layout-snapshot), og det er en spec-endring som må gå via commons/catalog. --- -## 6. Neste steg (ikke utført) +## 6. Tillegg fra adopsjonsrunden 2026-07-20 (trinn C) + +Skrevet etter deltakelse i den koordinerte runden (ni repo, postkasse `~/repos/_okf-interim/`, +midlertidig). Svaret vårt ligger i `svar/okr.md` der; det varige innholdet er dette: + +### 6.1 Primitiv-modellen er riktig — men orkestreringen er den dyre delen + +okr er allerede primitiver + én komponerende kaller: `splitConcepts`, `projectFrontmatter`, +`resolveRelations`, `writeConcepts`, `generateIndexes`, `checkBundle`, `convert`, +`isSafeBundleLink` — og `innboks-ingest.mjs` som gjør ingenting primitivene ikke eksponerer. + +Fire orkestrerings-invarianter er ikke-åpenbare og ble kjøpt dyrt (B5, B2). De må følge med +et delt bibliotek som referanse-orkestrator, ikke bare som primitiver: +1. Gate FØR relasjoner (ellers dangling lenker fra discardede dokumenter). +2. Gate scopet til kjøringens skrevne filer (ellers felles håndkuratert innhold). +3. Kryss-kilde-`claimed`-register (kollisjon er en egenskap ved kjøringen, ikke en primitiv). +4. Per-dokument-rollback (derfor returnerer `writeConcepts` `{concepts, pointers}`). + +Begrensning i vår stemme: okr har **ingen pull-sti** (no-network by design), så vi kan ikke +uttale oss om henting-som-primitiv. + +### 6.2 Flat vs. hierarkisk indeks — format deles, kontrakt gjør det ikke + +Dør A produserer flate bundles; vår form er hierarkisk. Forskjellen er ikke kosmetisk: +- **To lenkekonvensjoner i samme bundle:** index-entries er nivå-relative, body-relasjoner er + bundle-rot-relative (leading `/`). I en flat bundle kollapser de til det samme — en port + fra en flat kontrakt får dette stille galt. +- `okf_version` kun i rot-index forutsetter en rot distinkt fra andre nivåer. +- `routeLevel(type)` gjør nivået semantisk avledet; flat materialisering har ingen tilsvarende + operasjon. + +**Posisjon:** flat = degenerert hierarkisk (dybde 1). Kontrakten må formuleres som «én +`index.md` per nivå», ellers kan ikke Node konformere uten å brekke okr. Krav til +cross-runtime-fixtures: minst én hierarkisk fixture, ellers beviser parity-testing ingenting. + +### 6.3 Konvergens med to andre repo på writer-primitivet + +portfolio-optimiser-claude og ms-ai-architect ber begge om frontmatter-som-input uten +connector. **Vi har det bygget:** `writeConcepts` tar `concept.frontmatter` som ferdig +serialisert streng og skriver verbatim (`fileContent` = `frontmatter + body`, ingen +re-serialisering — dokumentert designvalg). Tre av ni konvergerer; løses F1 som en +markdown-connector i dør A, får ingen av de tre noe. + +### 6.4 Bundle-plassering — vi er compliant, men cwd-binding er en svak garanti + +Ingen bruker-eid bundle ligger i plugin-treet (`.claude/okr/` er cwd-relativ i brukerens eget +prosjekt; `~/.claude/okr/org/` er home; KB-referansene er plugin-eide og blir). Org-profil- +migreringen i 1.6.x er vår egen referanse for konfigurerbar sti-oppløsning. + +**Åpent, meldt videre:** cwd-binding flytter lekkasjeflaten, den fjerner den ikke — +`.claude/okr/` lander i hvilket som helst repo brukeren står i, inkludert offentlige. +**Grensetilfelle:** tillitsmodellen vår er asymmetrisk *innenfor* én bundle (innboks fiendtlig, +resten kuratert — derfor `kilde: innboks`-guarden). Blir hele bundlen dør C-«eksternt +innhold», må den grensen tegnes på nytt. + +## 7. Neste steg (ikke utført) 1. Operatør melder kartleggingen inn til biblioteket som kravgrunnlag (§3 er kravlisten). 2. Catalog avklarer `okf_version`-semantikken (§4) — blokkerer løftet.