M14-klynge (verifisert mot regjeringen.no 2026-07-15):
- provider-obligations L354: nasjonal koordinering = Digitaliserings- og
forvaltningsdepartementet (DFD), ikke Nærings- og fiskeridepartementet
(DFD sendte KI-loven på høring).
- conformity L331-343 + Q&A #5: «Norge har ikke ... utpekt» var stale +
lista omitterte Nkom og ga Digdir koordineringsrollen. Nkom er utpekt som
koordinerende nasjonal markedstilsynsmyndighet (regjeringen besluttet).
- «AI Norge» → «KI Norge» (Digdirs offisielle navn) i norge-ai-strategy (5×)
+ compliance-guide (1×); søsterfil digdir-ai-governance-structure brukte
allerede KI Norge.
- norge-ai-strategy L23: 2020-strategiens departement er nå Digitaliserings- og
forvaltningsdepartementet (aldri «Digitaliseringsdepartementet»); Last updated-bump.
Lint-seksjon 9 (4 regresjonsvern). Suite 833→837, exit 0.
Kilder:
- https://www.regjeringen.no/no/aktuelt/lov-om-kunstig-intelligens-i-norge-sendes-na-pa-horing/id3113732/
- https://www.regjeringen.no/no/aktuelt/gjor-norge-klar-for-trygg-og-innovativ-ki-bruk/id3093081/
- https://www.digdir.no/kunstig-intelligens/digdir-etablerer-ki-norge/7412
5 hard «2. august 2026»-frister i registrerings-/CE-/record-keeping-kontekst motsa allerede-korrigerte linjer i samme filer + kanonisk ai-act-deadlines.json (Annex III høyrisiko utsatt til 2027-12-02 via Digital Omnibus, avventer OJ):
- conformity L177: Art. 49-registrering «obligatorisk fra 2. august 2026» → pre-market + utsatt til 2. des 2027 (motsa L346)
- tools-mapping L227/237/262: Fase 3-header, CE-mål og «kritiske datoen» → 2. des 2027 provisorisk (motsa L215)
- data-residency L333: Art. 12 record-keeping «enforcement 2026-08-02» → utsatt til 2. des 2027; Last updated header/footer 2026-06/2026-05 → 2026-07-15 (løser M15)
Lint-seksjon 8 (3 regresjonsvern) + suite 830→833 grønn exit 0. Kilder: consilium.europa.eu 2026-06-29 final green light; EUR-Lex CELEX:32024R1689; europarl legislative-train Digital-Omnibus.
Verifisert 2026-07-15. OJ ikke publisert (Omnibus vedtatt, avventer OJ).
Rotårsak-mekanisme: scripts/kb-update/data/ai-act-deadlines.json er nå eneste
kilde for AI Act-frister; CLAUDE.md-tabellen, assessor-malen og begge hooks
synk-testes mot den (tests/kb-update/test-ai-act-deadlines-sync.test.mjs, 9
tester, TDD rød→grønn). Suite 815/815.
- B2: «Kommisjonen kan fremskynde»/«ytre grense» fjernet (trigger droppet i
endelig Omnibus-tekst)
- B3: status oppdatert i alle 3 lag — formelt vedtatt (EP 2026-06-16, Rådet
2026-06-29), trer i kraft ved OJ-publisering (ikke publisert per 2026-07-15,
verifisert mot EUR-Lex 32024R1689)
- B4: Art. 50-raden «Gjeldende» → «Fra 2026-08-02»
- B5: stop-hooken feilmerket 2026-08-02 som «GPAI-frist» — begge hooks leser
nå kilden, 0 hardkodede frist-literals
- R3-5: 2026-12-02-raden (Art. 50(2)) inn i assessor-malen
- M10: Nkom navngitt som koordinerende markedstilsynsmyndighet + nasjonalt
kontaktpunkt (kilde: nkom.no/ki/regulering/hvem-handhever)
- pending_oj-markører i kilden for RX-REG² (nudifiserings-forbud, Art. 111)
- .gitignore: whitelist for den kuraterte frist-kilden
To operasjoner, én økt (⊥ R7), begge ren metadata-normalisering (verdi aldri fabrikkert).
Premiss-korreksjon (ground truth 2026-07-07): roadmap sa «27 none + 4 ai-act».
Målt: 29 mangler bold **Status:** = 25 rene none + 4 ai-act (plain Status: GA).
De «27» inkluderte 2 for mye — 2 filer (custom-dashboards-ai-operations,
zero-trust-ai-services) har bold **Status:** KUN forbi byte 500 (present for
full-fil-audit, usynlig for 500B header-parser) → egen header-slanking-residual
(§8-register), utenfor Enhet 3.
Op A — Status-backfill 25 rene none: utvidet backfill-status.mjs MANIFEST 14→39
(samme statusForFile + insertMetaField + hard per-fil-invariant, idempotent skip
på de 14 R21-gjorte). Alle 25 → **Status:** Established Practice (ingen matcher
template|matrix|benchmarks|register). Diff +25/-0.
Op B — ai-act dual-header-dedup (4 filer): ny driver dedup-plain-header.mjs + 2
rene primitiver i transform.mjs — boldifyPlainField (plain→bold, verdi bevart
byte-eksakt, header-scoped, idempotent) + dropRedundantPlainField (sletter plain
KUN når bold m/ identisk verdi beviser redundans; kaster ved avvik/manglende bold).
Per fil: plain Last updated: + Status: GA → bold (2026-06-18/2026-02, GA bevart),
redundant plain Category: fjernet. Hard per-fil-invariant (net -1 linje, begge
felt bold m/ bevart verdi, ingen plain-header igjen, body byte-identisk). Diff -12/+8.
Verifisering: test-backfill-status 8/8 + test-dedup-plain-header 13/13; audit
Missing Status 29→0, Missing English Last updated 4→0; skills-diff 29 filer
+33/-12 (kun **Status:** + 8 bold-swaps), diff-kontekst inspisert per fil; begge
drivere idempotent (re-run 0 writes); suite 806/806 exit 0; none=8 uendret (Enhet 4).
Steg 9 (R4): unified migrate-corpus.mjs --write over engineering/governance/
infrastructure/security. 327 filer mutert, verified=null, prosa byte-identisk
(fra første ## seksjon), advisor urørt (0 endringer).
To applier-fixes oppdaget under kjøring (TDD, RED→GREEN):
- insertHeaderFields: anker faller nå tilbake når en meta-linje selv passerer
500B (2 filer pakket et avsnitt i **Status:** → Type/Source landet utenfor
scan-vinduet, applierens post-write-assertion fanget + restaurerte).
- normalizeStaleVerified: fjerner nå ALLE stale non-date **Verified:** i
500B-vinduet, inkl. stray body-dup rett under --- (9 mlops-genaiops-filer var
ellers falskt "verified"/fresh, droppet fra worklist). Operatør-godkjent
utvidelse av carve-out; kun stray metadata-linjer, aldri prosa.
test-transform-criterion: precondition oppdatert til post-migrasjons-sannhet
(fila bærer nå Source). Suite 728/728 grønn.
45-veis v3.1 fan-out kjørt per runbook: 255 claims / 45 filer, 45 Opus-4.8-xhigh-
subagenter (live MS Learn, blinde for gull, én per fil), aggregert 255/255 rent →
deterministisk re-score mot G5b-korrigert gull.
Resultat: v3.1 = P 100,0 / R 100,0 / 0 FP / 0 FN / F1 1,000 (TP 42, TN 198) mot
v3-baren P 100,0 / R 92,9 / 3 FN. Alle 3 gjenstående FN fanget (R1 øvre-grense,
R7 last-bærende-streng, R8 fler-delt) UTEN én ny FP. Forhåndsregistrert gate
(hold P=100 ∧ løft R>92,9) klarert → v3.1 ADOPTERT som judge.
R1-«+»-floor-flagg over full populasjon avkreftet som FP-risiko: alle matchet gull
(decision-changing floors = outdated/TP; tette floors = correct/TN). §8 G1 lukket,
G2 avblokkert (v3.1 = prompt å wire i transform.mjs). Suite 641/641. [skip-docs]