okr/tests
Kjell Tore Guttormsen 3f4e89fe9b fix(okr): fase D akse-B — index-rekkefølge fra kaller, ikke fra disk
Vår alfabetiske `.sort()` i okf-index.mjs lå på akse B (ingest-spec.md:178-181),
som krever manifestets ekstraksjonsrekkefølge fra kalleren og eksplisitt forbyr
«filesystem enumeration order». Ruling-dokumentet (portfolio-optimiser-commons
docs/plan/2026-07-25-ordering-axes-ruling.md §4 @ a67a243) navngir alfabetisk
sortering som deterministisk FEIL på denne aksen: B ber ikke om *en*
deterministisk rekkefølge, den ber om *kallerens*.

Kontrakt (operatør-valgt), implementert i orderEntries():
1. navn som alt står i indeksen  -> beholder linjerekkefølgen (§6 «preserved
   byte for byte»)
2. nye navn med kaller-rang      -> kallerens ekstraksjonsrekkefølge
3. nye navn uten kaller-rang     -> alfabetisk

(3) er en dokumentert genesis-fallback, ikke en B-etterlevelse: CLI-en tar kun
en katalog og har ingen kaller-liste å tre gjennom, og alternativet — rå
readdirSync-rekkefølge — er nettopp det B forbyr. Fallbacken gjelder bare ved
genesis; så snart en indeks finnes vinner (1), så et alfabetisk valg overstyrer
aldri en rekkefølge en kaller har etablert.

§5 i rulingen: den som arver B arver §6-idempotensen med den. `order` er derfor
KUN rangering — medlemskapet leses fortsatt fra disk (akse A, :175-177), så en
sti i lista kan aldri opprette eller gjenopplive en fil, og et gate-discardet
dokument kan ikke snike seg inn i indeksen. parseExistingIndex bærer nå
linkOrder eksplisitt framfor å hvile på JS-objekters innsettingsrekkefølge.

innboks-ingest.mjs trer sin faktiske ekstraksjonsrekkefølge gjennom; uten det
ville fiksen vært et ubrukt API.

Tester: 182 -> 187. Alle fem nye verifisert røde mot mutant (orderEntries ->
`[...names].sort()`), de 39 øvrige grønne under samme mutasjon. Ende-til-ende-
testen diskriminerer ved at dokumentrekkefølgen (Zulu før Alfa) er den motsatte
av den alfabetiske.

Ingen versjonsbump; release avventer operatør-go.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EaQkAtvpNCLxWkjdEJ11vx
2026-07-31 15:50:56 +02:00
..
fixtures feat(okr): 1.8.1 okf_version/okf_layout-splitt (OKF-spec 12) 2026-07-25 15:33:30 +02:00
canon-consistency.test.mjs fix(okr): fase D patch-lane D1-D3 (vakter som ikke voktet) 2026-07-25 20:36:01 +02:00
coaching-hook.test.mjs fix(okr): C7b remediering R1-R4 (release-relevante review-funn for 1.8.0) 2026-07-25 12:33:55 +02:00
frontmatter-compat.test.mjs refactor(okr): begge hooks bruker delt frontmatter-modul (SC2) [skip-docs] 2026-06-26 14:21:58 +02:00
frontmatter.test.mjs fix(okr): B2 ingestion-kode-hygiene + bump 1.7.1 (patch-lane) 2026-07-17 04:02:10 +02:00
inject-core-cap.test.mjs feat(okr): 1.8.1 okf_version/okf_layout-splitt (OKF-spec 12) 2026-07-25 15:33:30 +02:00
inject-okr-context.test.mjs feat(okr): UserPromptSubmit emne-guard + test (SC6) [skip-docs] 2026-06-26 00:17:10 +02:00
innboks-convert.test.mjs feat(okr): pure-JS konverterings-adaptere txt/docx/eml/pdf + ukjent-ext-skip (SC format) [skip-docs] 2026-07-16 20:06:43 +02:00
innboks-frontmatter.test.mjs fix(okr): B2 ingestion-kode-hygiene + bump 1.7.1 (patch-lane) 2026-07-17 04:02:10 +02:00
innboks-ingest.test.mjs fix(okr): fase D akse-B — index-rekkefølge fra kaller, ikke fra disk 2026-07-31 15:50:56 +02:00
innboks-relations.test.mjs feat(okr): delt bundle-root-relativ lenke-resolver + zero-dangling relasjoner (SC relasjoner) [skip-docs] 2026-06-30 13:01:19 +02:00
innboks-split.test.mjs fix(okr): B2 ingestion-kode-hygiene + bump 1.7.1 (patch-lane) 2026-07-17 04:02:10 +02:00
innboks-write.test.mjs fix(okr): B1 pekerfil uten lenkeform + B5 kollisjons-guards (kuratert-vern, reservert index.md, kryss-kilde claimed) [skip-docs] 2026-07-16 20:27:55 +02:00
okf-check.test.mjs fix(okr): fase D akse-B — index-rekkefølge fra kaller, ikke fra disk 2026-07-31 15:50:56 +02:00
okf-retrieval.test.mjs fix(okr): SKILL.md untrusted-content-herding + kilde-rangering mot RAG-poisoning 2026-07-17 03:15:30 +02:00
okf-vocab.test.mjs feat(okr): lukket OKF type/tags-vokabular for ingestion-snap [skip-docs] 2026-06-30 11:00:16 +02:00
oppsett-okf-write.test.mjs fix(okr): B2 ingestion-kode-hygiene + bump 1.7.1 (patch-lane) 2026-07-17 04:02:10 +02:00
org-profile-write.test.mjs fix(okr): B2 ingestion-kode-hygiene + bump 1.7.1 (patch-lane) 2026-07-17 04:02:10 +02:00
package-shape.test.mjs feat(okr): 1.8.1 okf_version/okf_layout-splitt (OKF-spec 12) 2026-07-25 15:33:30 +02:00
reference-integrity.test.mjs test(okr): referanse-integritet dekker skills relative lenker 2026-07-24 06:48:20 +02:00
topic-guard.test.mjs fix(okr): B2 ingestion-kode-hygiene + bump 1.7.1 (patch-lane) 2026-07-17 04:02:10 +02:00