Commit graph

151 commits

Author SHA1 Message Date
08f31250c4 fix(ms-ai-architect): G7 idx-26e lukket — grunnen til at den ble bokfoert separat var falsk
Lista i stakeholder-communication-ai-decisions.md er kanonisert etter soesterfilas
struktur: sju kildenavngitte segmenter under 'Komponenter i Scorecard', pluss en egen
'Du konfigurerer'-linje som kun baerer det kildene faktisk sier brukeren setter.
Stempelet paa linje 81 datert til 2026-08-04 (operatoervalg, idx-26-presedens).

Premisset som begrunnet SEPARAT bokfoering var falskt. Baade STATE-spoersmaal #9 og
entryens ramme sa 'fil UTEN Verified-stempel over lista' - stempelet paa :81 er
seksjons-terminalt og lukker linje 46-81, altsaa ogsaa lista. AA verifisere en entrys
paastand og aa verifisere GRUNNEN til at den ble bokfoert er to ulike sjekker.

To kildesider, og aa maale mot bare den ene ville produsert to falske funn.
Segmentene staar paa how-to-siden; fila siterer selv konsept-siden, som viser seg aa
belegge 'multi-stakeholder alignment', 'risikoofficerer' OG konfigurerbarheten
naer-ordrett. Siden et krav kom fra og siden fila siterer er ulike objekter.

Aa bare re-merke de fem til 'Komponenter' ble forkastet paa maaling: en femmedlems
komponent-liste er nettopp completeness-defekten idx-26c lukket i soesterfila.
Reparasjonen ville importert en soester-entrys allerede lukkede defekt.

Kompositum-auditen ble kjoert denne gangen (80e17ec eksisterer fordi den ikke ble
det): target-verdiene 3x, fairness-maalverdiene 2x, ingen hybrid.

Tre naboer bokfoert, ikke feid inn:
- idx-26g: §1 utelater public-preview-banneret begge kilder baerer, mens fil-headeren
  sier Status: GA; og how-to-siden staar ikke blant fila sine femten kilder.
- idx-26h: soesterfilas Status-linje ANBEFALER det kilden eksplisitt fraraader
  ('anbefalt for production use' vs 'we don't recommend it for production workloads'),
  under samme stempel idx-26d daterte og idx-26f utvidet. idx-26f-resolutionen sier at
  ingen unntak er skrevet ned for at stempelet skal vaere aerlig - sant om
  enumerasjonen den maalte, ikke om resten av blokka stempelet lukker.
- idx-26i: funn om SJEKKEN. idx-26f grep etter '(gender, ethnicity, age)' og fikk null;
  samme spesifisitet finnes som '(kjoenn, etnisitet, alder)'. En engelsk-bare grep ser
  ikke et tospraaklig korpus' norske halvdel.

Koe: 8 aapne / 9 resolved. Suite 1047/1047.
2026-08-04 09:45:33 +02:00
80e17ec462 fix(ms-ai-architect): idx-26f dialekt-retting — reparasjonen feilet paa sin egen begrunnende akse
Punkt 2 landet som 'fairness-target values', et hybridkompositum som er hverken
norsk eller engelsk, der punkt 1 gjengir samme kildebegrep som 'target-verdiene'.
Dialekt-konsistens var HELE argumentet for aa velge omskriving framfor sletting,
saa reparasjonen feilet paa aksen den ble begrunnet med. Rettet til
'fairness-maalverdiene'.

Koherens-gjennomlesingen etter foerste edit sjekket innholds-samsvar og slapp den
gjennom - den sjekket ikke kompositum-former. En koherens-sjekk arver aksen du
hadde i tankene da du skrev den.

Ratifiseringen laa i LABELEN ('kildens ordlyd i idx-26d-dialekten'); previewet bar
den defekte formen. Labelen er det ratifiserte objektet, saa rettingen krevde ingen
re-ratifisering - men et preview som gjengir labelen feil er en levende maate aa
smugle en uratifisert form forbi en operatoer som leser previewet.

I tillegg: idx-26f-resolutionen skiller naa eksplisitt mellom punkt 2/5 (re-verifisert
denne oekten) og punkt 1/3/6/7 (verifisert under idx-26d samme dag, arvet - ikke
re-kjoert her).

Suite 1047/1047.
2026-08-03 22:32:09 +02:00
9013d250bd fix(ms-ai-architect): G7 idx-27b + idx-26f lukket — scorecard-punkt 2/5 til kildeordlyd, transparensmelding kopiert
idx-27b: Moenster 3-bulleten paastod en 'Powered by AI'-disclosure; erstattet med
den allerede ratifiserte standardmeldingen fra Copilot Studio-seksjonen, grep-
verifisert byte-for-byte. Ingen audience-tiering lagt til (scope-klassen fra 66fb567).

idx-26f: punkt 2 og 5 omskrevet til kildens ordlyd i idx-26d-dialekten framfor ren
sletting av navngitt spesifisitet - den minimale diffen ville etterlatt 'Dataset
statistics' (ogsaa ukildet) og 'across sensitive groups' (gammel dialekt), og dermed
arvet begge defektklassene. Form (b), stempel-innsnevring i fila, avvist av operatoer.

idx-26d-resolutionens sluttklausul supersedert med datert tillegg; idx-27c/27d
bokfoert for to naboer som ikke kunne repareres ved kopi.

Ko: 6 aapne / 8 resolved. Suite 1047/1047.
2026-08-03 22:26:49 +02:00
66fb567ec6 fix(ms-ai-architect): idx-27 scope-addendum — orkestrerings-FAQ-ens rekkevidde skilt fra generative answers
Adversarielt gjenlest resolution avdekket at BEGGE reparerte påstander ble
skrevet inn under overskriften «Microsoft Copilot Studio» uten kvalifikator,
mens FAQ-ens egen scope-linje er «generative orchestration». Samme utvidings-
klasse som idx-27 ble reist for — reprodusert av sin egen reparasjon.

Sjekket mot dokumentasjonen, og de to påstandene falt fra hverandre:
- bekreftelses-sikringen står KUN i orkestrerings-FAQ-en → kvalifikator lagt til
- standardmeldingen står ordrett også i faqs-generative-answers, med bredere
  ramme → raden beholder ingen kvalifikator, og den andre FAQ-en er lagt til
  som sitert kilde så lesningen kan etterprøves

Standing: grounded-as-cited, ikke established-for-all-agents.
Kø: 6 åpne / 6 resolved. Suite 1047/1047.

[skip-docs]
2026-08-03 22:14:42 +02:00
beddba8dd3 fix(ms-ai-architect): G7 idx-26d + idx-27 lukket — scorecard-lista kanonisert, modalitet rettet, FAQ-barnet sitert
idx-26d: alle fem scorecard-navn omdøpt til kildens segmentnavn; beskrivelsene
på punkt 1 (Model Card-innhold) og 3 (dashboard-vokabular) skrevet om. Punkt
2/4/5 bevisst urørt — deres ubelagte spesifisitet er egen klasse (idx-26f).

idx-27: åpent spørsmål #8 besvart NEI (hub-barn teller ikke som kilden).
Løst ved å SITERE barnet i stedet: faqs-generative-orchestration lagt til.
Chat interface-raden bærer nå kildens faktiske standardmelding; Plugin
actions FLYTTET ut av Built-in-tabellen fordi den er maker-konfigurerbar —
å svekke overskriften eller legge til en modalitets-kolonne ville laget nye
ubekreftede påstander om to umålte rader.

idx-26c: falsk locator («linje 129») rettet i køa; stempelet er linje 131.

Tre nye entries: idx-27b, idx-26e (funnet av kryss-fil-grep FØR editen),
idx-26f. Kø: 6 åpne / 6 resolved. Suite 1047/1047.

[skip-docs]
2026-08-03 22:09:17 +02:00
63644c1791 fix(ms-ai-architect): G7 idx-26b + idx-26c lukket — segmentnavn rettet, enumerasjonen komplettert
Kilden re-hentet live for skriving; §9.7 behandlet som premiss, ikke faktum.
how-to-responsible-ai-scorecard enumererer SJU segmenter og navngir
accuracy-segmentet 'model performance'. Begge malingene bekreftet uavhengig.

idx-26b (ratifisert form a: rename framfor fjerning): Accuracy metrics-raden
leser na 'Responsible AI Scorecard: model performance'. Sletting var
tilgjengelig og avvist — EU AI Act-mappingen er ekte og kildestottet, sa a
fjerne raden ville kastet sann informasjon for a reparere en navnedefekt.

idx-26c (ratifisert form a: legg til framfor nedgrader): 'Model performance' og
'Cohorts' lagt til som punkt 6-7; de fem eksisterende urort, sa endringen er
begrenset til det malte gapet. Punkt 7 formulert 'automatisk uttrukket' for a
holde det atskilt fra Cohort analysis i Customization-blokka, som er
operator-definert og ikke enumererer et segment.

STATE-PAASTAND FALSIFISERT: 'ankeret SKAL slutte a matche, ellers feiler
sjekken' er feil. lib/g7-queue.mjs:69-75 returnerer FOR ankersjekken for
resolved; unntaket er totalt, og anker-drift feller kun en entry som star apen.
Ukontrollert ville pastanden tvunget innsetting i kilderekkefolge pa
maskingrunner som ikke finnes. idx-26c er forste resolved entry hvis anker
fortsatt matcher ordrett — unntaket er na utovd for ekte.

To tillitsmarkorer avgjort i motsatt retning: stempelet pa linje 129 beholdt
uendret (scope sjekket; dekker na en komplett sju-punkts enumerasjon
re-verifisert samme dato det allerede barer), stempelet under
compliance-tabellen bevisst IKKE oppgradert (det dekker seks rader, fem umalte).

idx-26d bokfort, ikke foldet inn: parafrase-drift i punkt 1-5 mot kildens
segmentnavn. Den forelaa begge editene — det reparasjonen endret er
SYNLIGHETEN, siden punkt 6-7 barer kildenavn og lista na blander to dialekter.
Full kanonisering ble lagt fram som tredje alternativ og ikke valgt.

Ko: 5 apne / 4 resolved. Suite 1047/1047.
2026-08-03 21:40:21 +02:00
065a55f3c5 docs(ms-ai-architect): idx-26c bokfort — idx 26-reparasjonen gjorde en latent ufullstendighet til en aktiv pastand
Den live-hentingen som lukket idx 26 listet SJU kanoniske scorecard-segmenter.
Lista etter reparasjonen barer fem: model performance og cohorts mangler.
('Cohort analysis' star i Customization-blokka, ikke som enumerert segment, sa
den kurerer ikke utelatelsen.)

For denne okten var det en latent ufullstendighet under et udatert stempel. Ved
a datere stempelet til 2026-08-03 gjorde vi det til en positiv pastand om at
nettopp denne enumerasjonen ble verifisert den dagen — over innhold samme dags
verifisering viste manglet to medlemmer.

Funnet la allerede inne i idx 26s egen resolution, som siterer alle sju mens
fila lister fem. Bokfort framfor a foldes inn: idx 26s ratifiserte scope var
falskheten i item 4 og 5, ikke listas fullstendighet.

Tredje gang pa to okter at defekten la VED SIDEN AV editen framfor I den.

Ogsa markert: sitatblokkens andre setning er utledet fra fravaer i en
enumerasjon, ikke fra en positiv kildepastand — naer sikker, men en slutning.

Ko: 6 apne / 2 resolved. Suite 1047/1047.

[skip-docs]
2026-08-03 21:30:09 +02:00
8cde10f09a fix(ms-ai-architect): G7 idx 26 lukket — scorecard-segmenter rettet, dashboard-komponenter merket
Error analysis og Counterfactual analysis sto som item 4/5 i 'Komponenter i
Scorecard'. Begge kilder hentet live denne okten og bekrefter malingen
uavhengig av 9.6: how-to-responsible-ai-scorecard enumererer summary/model
overview, data analysis, model performance, cohorts, top important factors,
fairness insights og causal insights; concept-responsible-ai-dashboard lister
Error analysis og Counterfactual what-if som *dashboard*-komponenter.

Form (b), operatorratifisert: relabel framfor fjerning. Lista renummererer
rent til 1-5 — 1,2,3,4,6,7-artefakten var tvungen kun inne i delete-only-
konvolutten, ikke for en ordinaer Edit. De to kapabilitetene beholdes i et
sitatblokk eksplisitt merket som dashboard-komponenter, sa kildebekreftet
informasjon overlever og leseren advares mot nettopp den forvekslingen som
skapte defekten. Lokator 2: Risk assessment-raden leser na 'fairness insights'.

Confidence-stempelet tolv linjer under vouchet for den falske lista og la
utenfor enhver maskinsjekk (V1/V2/V2b/V3 er strenginvarianter; check-g7-queue
tester kun ankere). Beholdt, men datert 2026-08-03 for a fore re-verifiseringen.
Dokument-koherens lest etter editen (c569bdc-laerdommen).

Nabodefekt funnet av filsveipet bokfort separat som idx-26b, ikke foldet inn:
'Quantitative analyses' attribueres til Scorecard, men er en Model Card-seksjon
(samme fil, linje 77) — kryss-attribuering mellom to standarder.

Suite 1047/1047.

[skip-docs]
2026-08-03 21:23:35 +02:00
59c6c280b1 feat(ms-ai-architect): G7 lukket som mekanisme — navngitt review-kø (form b), valgt på måling
Operatør-ratifisert 2026-08-03. G7 var gapet for korreksjoner som er RIKTIGE
men større enn O2-konvolutten (én lokator + kun-sletting). Uten eier falt de
stille ut: O2-triagen avviser dem, O3 dekker dem ikke, og review-sporet hadde
ingen inngangskø.

Formvalget ble tatt på §9.6-målingen, ikke på preferanse:
- 2 av 4 anvendte subtraksjoner etterlot en rest -> rester er delete-only-
  konvoluttens NORMALE biprodukt, ikke et unntak.
- 2 av 5 medlemmer (idx 17, 33) er ERSTATNINGER, ikke fler-lokator. En
  delete-orientert O4-klasse med egen retur-kontrakt ville ikke fikset dem —
  altså feil dimensjonert mot evidensen. Køen absorberer begge klasser.

Artefakter (TDD, test-først):
- data/g7-review-queue.json — 6 entries, tracked
- lib/g7-queue.mjs — validateQueue, lukkede vokabular
- check-g7-queue.mjs — exit 1 ved drift eller skjemafeil
- tests/kb-eval/test-g7-queue.test.mjs — 15 tester

Kontrakten: ankere er ORDRETTE strenger, aldri linjenummer (line != real_line
i 9 av 17 R11-records). En åpen entry hvis anker slutter å matche gir
anchor_drift og exit 1 — den kan ikke falle stille ut, som er hele hensikten.
En resolved entry MÅ føre resolution, ellers er "resolved" ikke til å skille
fra "stille droppet". Ingenting i køen er maskin-anvendbart per definisjon.

Innhold: 5 åpne (26, 27, 33, 36, 18), 1 lukket (17). idx 27 kom hit ved å
falle ut av O2 på cond 3; idx 26 ved operatørens avvisning av delvis fiks.

Suite 1047/1047. [skip-docs]
2026-08-03 21:10:00 +02:00
957ebef6da fix(ms-ai-architect): R11 — første korpus-edit; 4 ratifiserte O2-subtraksjoner anvendt (idx 17, 19, 33, 14-redusert)
Operatør-ratifisert 2026-08-03. Sletter udokumenterte påstander fra tre
KB-filer: score-threshold-båndene og 'Automatic indexing av vectors'
(rag-caching-optimization), to ikke-støttede AISPM-attribusjoner
(ai-threat-modeling-stride), og SharePoint som feedback-lagring
(feedback-loops). idx 14 er den REDUSERTE subtraksjonen — 'Automatically'
beholdes, siden linje 566 hevder automatikk.

Ikke ratifisert og ikke anvendt: idx 26, 27, 36, 18.

Driver ankrer på file_text_verbatim, aldri linjenummer, og avbryter uten
å skrive ved tvetydig anker, ikke-sletting eller ny ordform. 11 tester.
Suite 1032/1032. [skip-docs]
2026-08-03 20:40:08 +02:00
4a36fd1853 feat(ms-ai-architect): reproduserbar V1/V2/V2b-sjekk av O2-returene (25 tester) [skip-docs]
Måleresultatets sentrale påstand — at forslagene er tekstlig ærlige — hvilte på
et sesjons-lokalt skript ingen kunne etterprøve. Flyttet inn som bibliotek + CLI
med tester, så tallet kan reproduseres fra fersk klon:

  node scripts/kb-eval/check-o2-returns.mjs

Sjekkene avgjør IKKE O2 — betingelse 2 og 3 er fortsatt menneskelige. De
avgrenser de to feilmodusene et menneske ikke fanger billig over 46 forslag:
- V1: sitert filtekst må finnes ordrett i fila (fanger oppdiktet tekst og stille
  æøå-transliterering). Gjelder HVER rad, også O3 — en O3 basert på oppdiktet
  tekst er like feil, bare feil i trygg retning.
- V2: forslaget må kunne oppnås ved kun å slette tegn.
- V2b: V2 alene er for svak — 'Automatically add' -> 'Add' passerer fordi den
  store A-en fantes inne i det slettede ordet. Ordnivå-sjekk, case-sensitiv.
- V3: skjema- og verdikt-koherens.

Suite 996 -> 1021.
2026-08-03 17:40:02 +02:00
94c99c46dd feat(ms-ai-architect): R11 §10 måling #2 bølge 2 — alle 46 R8-enumerasjoner klassifisert [skip-docs]
Fire subagenter til (idx 25-46), samme rammer: read-only, ingen writes/commits,
ingen web-oppslag, evidence_quote som eneste kilde. To presiseringer i prompten
etter bølge 1: forslaget må være oppnåelig ved kun sletting (behov for
omskriving er i seg selv O3-bevis), og eksplisitt leveringsplikt.

Totalt 46/46: 17 O2-kandidater, 29 O3, 0 locator-bom.
Maskin-verifikasjon: 46/46 passerer V1 (ordrett filtekst), 16 av 17 O2-forslag
passerer V2+V2b; ett flagget (idx 14, rekapitalisering).

Alle 29 O3-er felles av betingelse 3 — kilden leverer en korrigert verdi.
2026-08-03 17:36:29 +02:00
b174db0936 feat(ms-ai-architect): R11 §10 måling #2 bølge 1 — 24 av 46 R8-enumerasjoner prosa-klassifisert [skip-docs]
Fire subagenter (Opus, read-only, ingen writes/commits, ingen web-oppslag)
klassifiserte idx 1-24 mot §5s tre O2-betingelser. Returene er evidens, ikke
regenererbare, og lagres derfor tracked etter samme mønster som fase0-returns.

Maskin-verifikasjon av returene (V1/V2/V2b):
- V1: alle 24 file_text_verbatim finnes ordrett i de faktiske filene (æøå og
  markup intakt) — oppfunnet tekst ville ryket her.
- V2: alle O2-forslag er deletion-only mot den teksten.
- V2b: ett flagg (idx 14) — 'Automatically add' -> 'Add' er en rekapitalisering,
  altså en tekstendring og ikke ren fjerning. Går til menneskelig review.

Bølge 1: 7 O2-kandidater, 17 O3, 0 locator-bom.
2026-08-03 17:30:20 +02:00
e4925c6b28 feat(ms-ai-architect): R11 §4b implementert — status-synonymtabellen målt, 8 forslag hånd-dømt [skip-docs]
Implementerer den ratifiserte §4b-tabellen i lib/fix-op.mjs (19 nye tester,
suite 996/996). Alle tre skrankene har egne tester: tabellen er LUKKET, fil-
tokenet må være en KOMPLETT livssyklus-etikett, og verdien som skrives er den
korpus-side ekvivalenten med filas egen markup bevart.

To implementasjonsvalg den ratifiserte teksten lot stå åpne, begge løst mot
fail-closed: status-lokatoren er LINJE-scopet (livssyklus-vokabular gjentas
nedover hver kolonne i en statustabell, så et blokkvindu er tvetydig ved
konstruksjon), og et sitat som hevder to rader aborterer.

MÅLT: 15 pilot / 54 korpus-brede flagg -> 5 og 8 provbare. Alle 8 hånd-dømt
mot kilden (r11-pilot-results.md appendiks B): 5 korrekte, 1 ubevist, 2 GALE.

De tre defektene er én familie: §4b binder tabellen, etikettens fullstendighet
og verdien som skrives — og INGENTING om hvorvidt kilde-frasen refererer til
radens eget subjekt. Samme proveniens-uten-referent-defekt som falsifiserte §4.
Klassen er derfor REVIEW-grade, ikke apply-grade: `status` står bevisst utenfor
o1_recommended, ingen driver applikerer den.

To kandidatvilkår er kostnadsberegnet over de åtte (begge dreper gale forslag
og null korrekte) men IKKE implementert — å utvide en tabell operatøren
ratifiserte som lukket er en operatørbeslutning, slik vilkår 5 var i §4a.

Rettet samtidig 2 NUL-bytes i testfila (pre-eksisterende, fra en tidligere
økt) som gjorde at git behandlet hele fila som binær og blokkerte diff-
gjennomgang før commit.
2026-08-03 17:13:05 +02:00
b0b5890703 feat(ms-ai-architect): R11 pilot kjørt — §4-invarianten falsifisert, 9 provbare swaps i hele korpuset [skip-docs]
§10-målingen er gjennomført mot live ledger (243 records). Ingen KB-fil er
redigert og ingen ledger-record er skrevet — §8s single-writer-state er urørt.

Instrumentet ER O1-driveren med writes av (scripts/kb-eval/lib/fix-op.mjs, 30
tester). Måling #1 og #3 kommer dermed ut av mekanismen som senere skal ta på
korpuset, ikke ut av en proxy-heuristikk.

HOVEDFUNN — §4 som skrevet er utilstrekkelig, målt:
Kjørt eksakt som spesifisert slapp den gjennom 6 swaps på piloten, hvorav 4 er
GALE editer (presisjon 2/6):
- 30-dagers → 24-dagers   (enhets-kryssing: kilden sier 24 HOURS)
- 3000 req/sek → 50       (metrikk-kryssing: query-throttle vs indexing-rate)
- Microsoft Agent 365 → 7 (identifikator lemlestet, «7» høstet fra «E7»)
- text-embedding-ada-002 → ada-2 (identifikator lemlestet)
§4 binder proveniensen til verdien og formen på editen — ingenting om at de to
tokenene betegner SAMME STØRRELSE. Påstanden om at invarianten er «deliberately
stronger than human review at scale» holder ikke.

TILLEGG: contextCorresponds() krever samme label eller samme enhet på begge
sider. Bevisst leksikalsk, UTEN oversettelsestabell — «dokumenter» læres ikke å
være «documents», fordi en synonymtabell innfører en ny faktakilde og er en
operatørbeslutning. Konsekvensen er målt: swap er provbar praktisk talt bare der
konteksten er språknøytral (URL, kodeeksempel, parameternøkkel).

TALLENE:
- Pilot (≥7): 24 filer / 202 flagg → O1 = 2 (1,0 %), O3 = 200 (99,0 %)
- Hele korpuset: 218 filer / 776 flagg → 15 sluppet gjennom, 9 korrekte
- Kun iso_date (api-version-bump) overlever hånd-verifisering: 9/9.
  number/version lemlester identifikatorer (AI-900 → AI-901, gpt-4o → gpt-5.1o
  ×2, Java-agent 3.7.5 → 3.4.0 = nedgradering) og skal IKKE påføres.
- Kun 7 av 200 aborter (3,5 %) er en fiksbar engineering-gap. Mer locator-
  arbeid kan ikke flytte O1-tallet vesentlig.

Måling #2 (R8 → O2) er IKKE besvart og kan ikke besvares maskinelt: R8 gir null
O1, og hvilke av de 46 enumerasjonene som subtraherer rent avhenger av dommerens
PROSA-reason. Måling #4 (review-throughput) er ikke målt — det krever
menneskelige review-økter som ikke har skjedd. Begge står som ikke-målt, ikke
som antatt.

VIDERE FUNN: subtraksjon kan etterlate en misvisende rest (§5 sier den «cannot
introduce a new error» — sant om setningen, usant om leserens slutning), og kan
ødelegge sann informasjon (prebuilt-check → finnes, heter prebuilt-check.us).
`disposition` er `outdated` på 202/202 og bærer null informasjon, i strid med
flagg-formatspesifikasjonen. `claim` matcher fillinjen ordrett i 0 av 202.

Full oppskrift og åpne operatørbeslutninger: docs/r11-pilot-results.md
2026-08-03 16:30:31 +02:00
8b270fbe99 feat(ms-ai-architect): R7.5 KOMPLETT 51/51 — payload-31..51 dømt+ingestet, re-judge-gate bestått, async-processing stemplet [skip-docs]
De siste 21 R7.5-filene (payload-31..51) dømt i to parallelle arbeider-tabber,
integrert serielt her.

- 375 claims, 82 flagg (64 not_grounded + 18 source_silent)
- Ledger 222 → 243 records (229 flagged / 14 pass), flagg 902 → 984
- R7.5-batch 30 → 51 = full-pass-worklisten dømt ferdig

Verifisering før ingest:
- Egen telling per fil mot dry-run: 21/21 eksakt match
- ID-fidelitet mot r75-claims-manifest.json: 21/21 eksakt, riktig rekkefølge
- Fold-grep begge dialekter over 375 reason-felt: 0 treff
- Mot HEAD: 0 records tapt, 0 eksisterende records endret

result-38 (async-processing-patterns.md) var eneste pass-record. Re-judge-gate
kjørt før stempling med blind dommer (forbud mot å lese results/ og manifestet):
15/15 grounded, per-claim enighet med originalen, flere dommer nådd via andre
kildesider. ENIGHET → born-verified stempel påført.

Suite: 947/947.
2026-08-03 15:56:52 +02:00
353b976425 feat(ms-ai-architect): R7.5 bølge 3 — payload-21..30 dømt+ingestet (206 claims, 48 flagg; ledger 212→222) [skip-docs] 2026-08-01 20:48:15 +02:00
8ac64e407a feat(ms-ai-architect): R7.5 bølge 2 — payload-11..20 dømt+ingestet (209 claims, 51 flagg; ledger 202→212) [skip-docs]
Ti dommere (R75J-11..20) kjørt parallelt med live MS Learn-fetch per claim.
Alle ti returnerte, validerte 10/10 mot slot + claim-id-sett, og ingen
foldet ASCII — verifisert mot BEGGE dialektene (ae/oe og enkelt-vokal a/o),
0 treff. Mot 2/10 foldet i bølge 1 med samme modell og effort; forskjellen
er den skjerpede prompten med eksempler på begge foldemønstre.

Ingen pass-record i bølgen, så ingen re-judge-gate og ingen stempling —
manifestet er eneste endrede fil.

- 11 model-fingerprinting-watermarking.md ......... 21 claims,  7 flagg
- 12 norwegian-content-safety.md .................. 23 claims,  5 flagg
- 13 output-validation-grounding-verification.md .. 19 claims,  3 flagg
- 14 owasp-llm-top10-azure-mitigations.md ......... 18 claims,  2 flagg
- 15 pii-detection-norwegian-context.md ........... 19 claims,  4 flagg
- 16 prompt-injection-defense-patterns.md ......... 14 claims,  3 flagg
- 17 security-copilot-integration.md .............. 34 claims,  9 flagg
- 18 security-scoring-rubrics-6x5.md .............. 21 claims,  4 flagg
- 19 supply-chain-security-ai-models.md ........... 17 claims,  9 flagg
- 20 ai-builder-credits-transition.md ............. 23 claims,  5 flagg

Ingest dry-run kryssjekket mot egen telling fil for fil før ekte ingest.
Judge-dato 2026-08-01 (reell dato, ÅS#1) lagt inn for slot 11-20.

Ledger 202→212 records (199 flagged + 13 pass), 803→854 flagg.
R7.5: 20/51 dømt. Suite 947/947.
2026-08-01 20:21:06 +02:00
330d8199bb feat(ms-ai-architect): R7.5 steg 1 — re-judge-gate bestått + dommer 03/08 re-kjørt og ingestet (ledger 200→202, 803 flagg) [skip-docs]
Re-judge-gate for disconnected-ai-scenarios.md (eneste pass i bølge 1):
blind dommer R75G-01 (forbud mot å lese r75/results/ og manifestet) ga
19/19 grounded — identisk med originalen på hver claim-id, 0 uenigheter.
ENIGHET → apply-verified-stamp.mjs dry-run bekreftet «would stamp: 1»,
deretter --write (1 stamped, 12 already stamped, 0 failed). KB-diffen er
kun de to stempel-linjene, kroppen byte-identisk.

Dommer 03 og 08 re-kjørt med nye agentnavn (R75J-03b, R75J-08b) etter at
begge foldet ASCII i bølge 1. Begge returnerte æøå intakt — verifisert mot
BEGGE folde-dialektene (ae/oe og enkelt-vokal a/o), 0 treff.

- result-03 ai-incident-response-procedures.md: 21 claims, 12 flagg
- result-08 data-leakage-prevention-ai.md: 27 claims, 9 flagg

Judge-dato satt til reell dato 2026-08-01 for begge (ÅS#1), ikke
batch-identitetsdatoen 2026-07-31 de arvet fra bølge 1.

Ledger 200→202 records (189 flagged + 13 pass), 782→803 flagg.
R7.5: 10/51 dømt. Suite 947/947.
2026-08-01 20:03:33 +02:00
845d8fbdc9 feat(ms-ai-architect): R7.5 extract-fase komplett (51/51, 986 claims) + dømmebølge 1 delvis — 8/10 ingestet (1 pass, 7 flagged, 34 flagg; ledger 192→200) [skip-docs] 2026-07-31 22:14:41 +02:00
f52a486e3a feat(ms-ai-architect): R7.4 KOMPLETT — payload-40..49 dømt+ingestet (170 claims, 36 flagg; ledger 182→192; R7.4 49/49, 923 claims, 236 flagg) [skip-docs]
Bølge 5 avslutter ms-ai-infrastructure/bcdr/ og dermed hele R7.4-batchen.
Ingen pass-record i bølgen, så re-judge-gaten utløses ikke og
apply-verified-stamp.mjs er ikke kjørt (verified uendret på 12).

Dekningskontroll: alle 49 filer i r74-batch.json finnes i ledgeren som
R7.4-records — ingen manglende, ingen ekstra. validate-result.mjs 10/10 OK.
Suite 947/947 grønn.

Pending etter R7.4: 51 filer (R7.5). Flagg totalt 712 → 748.
2026-07-31 21:11:31 +02:00
533d451cd2 feat(ms-ai-architect): R7.4 bølge 4 — payload-30..39 dømt+ingestet (190 claims, 10 flagged/0 pass, 55 flagg; ledger 172→182) [skip-docs]
Avslutter responsible-ai/ (slot 30-33) og starter ms-ai-infrastructure/bcdr/
(slot 34-39). Ingen pass-record, så re-judge-gaten utløses ikke og
apply-verified-stamp.mjs er ikke kjørt (verified uendret på 12).

validate-result.mjs: falsk positiv rettet — «opplyser» sto i
folding-heuristikkens ordliste, men er ordinært norsk uten foldet vokal
(ae/oe/aa) og blokkerte et korrekt result-32. Oppføringen er fjernet med
begrunnelse i koden. Regresjon: alle 39 resultater validerer, og
kontrolltest bekrefter at ekte folding (paa/staar/noeyaktig/loesning/
maaned/ogsaa/naar/aapen/stoette/tjenesteomraade) fortsatt fanges.

Suite 947/947 grønn. R7.4: 39/49 dømt. Flagg totalt 657 → 712.
2026-07-31 20:57:05 +02:00
e017f8bcc2 feat(ms-ai-architect): R7.4 bølge 3 — payload-20..29 dømt+ingestet (245 claims, 10 flagged/0 pass, 72 flagg; ledger 162→172) [skip-docs]
Alle 10 filene i responsible-ai/ dømt av separate Opus-agenter med live
MS Learn-fetch. Ingen pass-record, så re-judge-gaten utløses ikke og
apply-verified-stamp.mjs er ikke kjørt (verified står uendret på 12).

validate-result.mjs: 10/10 OK (slot-binding, claim-id-mengde, lukket
verdikt-sett, folding-heuristikk). Suite 947/947 grønn.

R7.4: 29/49 dømt. Flagg totalt 585 → 657.
2026-07-31 18:30:16 +02:00
3043ff74d4 feat(ms-ai-architect): R7.4 bølge 2 — payload-11..19 dømt+ingestet (153 claims, 9 flagged, 41 flagg; ledger 153→162) [skip-docs] 2026-07-31 16:05:09 +02:00
a7cb4b2bb3 feat(ms-ai-architect): R7.4 bølge 1 — payload-01..10 dømt+ingestet (165 claims, 9 flagged/1 pass, 21 flagg; ledger 143→153) [skip-docs] 2026-07-31 15:49:17 +02:00
1b29e9673a feat(ms-ai-architect): R7.3 KOMPLETT — payload-37/38/39/41/42/43/45/47/48/49 dømt+ingestet (216 claims, 61 flagg; ledger 133→143; R7.3 49/49, 1008 claims, 269 flagg) [skip-docs] 2026-07-25 12:41:36 +02:00
e625645739 feat(ms-ai-architect): R7.3 bølge 4 (delvis) — payload-36/40/44/46 dømt+ingestet (80 claims, 16 flagg; ledger 129→133); 10 dommere døde på session-grensen [skip-docs] 2026-07-25 12:08:33 +02:00
6bfe24c7e2 feat(ms-ai-architect): R7.3 bølge 3 — payload-26..35 dømt+ingestet (193 claims, 10 flagged, 54 flagg; ledger 119→129) [skip-docs] 2026-07-25 08:03:38 +02:00
7011898bd0 feat(ms-ai-architect): R7.3 bølge 2 — payload-16..25 dømt+ingestet (190 claims, 10 flagged, 57 flagg; ledger 109→119) [skip-docs] 2026-07-25 07:50:00 +02:00
c4554708ca feat(ms-ai-architect): R7.3 bølge 1 — payload-06..15 dømt+ingestet (221 claims, 10 flagged, 48 flagg; ledger 99→109) [skip-docs] 2026-07-25 07:36:09 +02:00
80bfd02726 feat(ms-ai-architect): R7.3 start — 49 filer ekstrahert (1008 claims), payloads bygget, 5 dømt+ingestet (ledger 94→99) [skip-docs]
Ekstraksjon komplett for hele R7.3-batchen (neste 49 av 149 pending, worklist-
rekkefølge): 1008 claims over 49 filer, null valideringsfeil. Manifest og 49
v3.1-payloads bygget deterministisk.

Judge-pass startet: 5 filer dømt blindt mot live MS Learn (alle flagged, 33 nye
flagg) og ingestet serielt etter dry-run. Ingen pass-records → verken re-judge-
gate eller stempling utløst.

Ledger: 99 records (R7.1 45 + R7.2 49 + R7.3 5), 88 flagged / 11 pass, 287 flagg.
Suite 947/947.
2026-07-25 07:01:57 +02:00
2935039f44 feat(ms-ai-architect): R7.2 stempling — 9/11 pass born-verified etter re-judge-gate; 2 diskvalifisert → flagged (R11) [skip-docs]
Re-judge-gate (frossen v3.1, 11 blinde Opus-4.8-xhigh subagenter, live MS Learn-fetch,
G6 Layer A dekket alle fetches). Kvalitetsgate på irreversibelt steg: born-verified stempel
krever TO uavhengige alt-grounded pass.

9 ENIGHET (alle claims grounded) → stemplet Verified 2026-07-24 / judge-v3.1:
  apim-azure-front-door-ai, apim-vs-direct-access-comparison, cost-tracking-apim-policies,
  developer-portal-ai-apis, multi-region-ai-gateway-design, streaming-support-apim,
  versioning-ai-api-endpoints, data-versioning-lineage, real-time-streaming-ai

2 UENIGHET (≥1 non-grounded) → pass→flagged, IKKE stemplet (R11 work-list):
  - security-hardening-ai-gateway: #2 source_silent («20+ security policies» usourcet),
    #7 not_grounded R8 (feature = Prompt Injection Protection, ikke «Prompt Shields»;
    indirekte injection-deteksjon ikke dekket)
  - etl-vs-elt-ai: #2 not_grounded R8 (Gold-lag = curated for reports/dashboards, ikke ML-features)

Gaten fanget gull/judge-run-uenighet (jf. gull-friskhet kan invertere adopsjon). Ledger:
94 records, R7.2 9 pass / 40 flagged (validateManifest valid). Stempel = kun Verified/
Verified by-header (body byte-identisk, per-fil invariant-sjekket, atomicWrite). Suite 947/947.
2026-07-24 20:14:45 +02:00
6b457c02e2 feat(ms-ai-architect): R7.1 — judge-pass 45/45 komplett (544 claims; 2 pass, 43 flagged, 152 flagg; v3.1-judge ORDRETT, Opus 4.8 xhigh-fanout; 2 pass-records born-verified stemplet) [skip-docs] 2026-07-23 22:02:38 +02:00
706f44fb34 feat(ms-ai-architect): R7.1 — judge-pass 30/45 filer (362/544 claims; 1 pass, 29 flagged, 106 flagg; v3.1-judge, ledger durabel per fil) [skip-docs] 2026-07-18 17:34:49 +02:00
83ef8eaf7a feat(ms-ai-architect): R7.1 — apply-verified-stamp driver (surgical insertVerifiedFields over ledger-pass-records; invariant-assertert, atomisk, idempotent; ustempelbar → samlet feil, TDD 3 tester) [skip-docs] 2026-07-18 11:19:26 +02:00
312c3c0369 feat(ms-ai-architect): R7.1 — build-judge-payloads får --claims <path> (per-batch korpus-manifest, TDD; default = bakeoff-manifestet uendret) [skip-docs] 2026-07-18 11:16:22 +02:00
372a92258a chore(ms-ai-architect): Enhet B — gjør pre-commit-scan.mjs kjørbar for git-hook-install (symlinket som .git/hooks/pre-commit) [skip-docs] 2026-07-18 10:51:01 +02:00
af6c31c4c1 feat(ms-ai-architect): Enhet A2 — Layer B baseline-adjudikering: innholds-basert allowlist (75 funn adjudikert, TDD) + 4 korpus-defekter fikset (2 homoglyph-ord, 2 U+00AD-filer); korpus 389/389 exit 0 [skip-docs] 2026-07-18 10:31:06 +02:00
76df39670d feat(ms-ai-architect): RX-HDR oppløst → permanent R7-ustempelbar audit-signal (premiss 10→2) [skip-docs]
Premiss-verifisering mot ground truth (simulert R7-stempler insertVerifiedFields
over 327 non-advisor-filer): RX-HDR-populasjonen kollapser fra påstått 10 til 2.
De 9 'base-felt forbi 500B'-filene er falske positiver — stempleren setter Verified
øverst, uavhengig av hvor Status/Category ligger. Kun 2 filer er ekte ustempelbare
(gpt5-gpt41-pricing-models, entra-agent-id-zero-trust): headere med fete **Status:**-
prosahaler (175B/199B) der begge stempler (Verified + Verified by, judge-v3.1) ikke
får plass i 500B. Feltomstokking løser dem ikke — verdi-slanking kreves (utenfor
RX-HDRs scope), så de folder inn i R7s eksisterende 'header-slanking kreves'-flagg-sti.

audit-corpus-headers.mjs: ny ren isStampable() kjører R7s ekte stempler med fast
representativ probe (dato + judge-v3.1); per-fil 'stampable' + aggregat 'unstampable'
+ FLAG-liste. Gjør populasjonen permanent så den ikke stille kan vokse (gap-disiplin).
+2 tester (dense→ustempelbar, clean→stampable). Suite 924→926 exit 0.
2026-07-17 03:43:04 +02:00
722a131eb7 feat(ms-ai-architect): RX-KB1b — deterministisk footer-dato-avvik-deteksjon + label-whitelist i corpus-audit (flag-to-human, 3 flagg) [skip-docs] 2026-07-17 03:23:40 +02:00
6125f933be feat(ms-ai-architect): RX-OPS1 — deterministisk Layer B commit-gate (pre-commit-scan) + runbook Forutsetning 0 [skip-docs]
pre-commit-scan.mjs mekaniserer G6 §8: scan-adversarial-content over stagede
skills/**/*.md ved commit-grensen, uansett modell-adferd. Kun ingestion-flaten
(skills/**/*.md); BLOCK/WARN aborterer commit (WARN = flag->human). DI'd
(selectStagedKbFiles + runGate), 9 nye tester. E2E: clean->0, seeded
adversarial->BLOCK exit 1, tom->0.

Runbook Forutsetning 0 = §5b Layer A-gate + untrusted-data-ramme: judge-side
fencing UTELATT bevisst (ville vaere judge-bump per brief §5b.4 / Non-goal §7);
foreground-fetch + Layer B er de kompenserende kontrollene.

Suite 910->919 exit 0 (+9). validate-plugin.sh 250/0.
2026-07-16 20:52:45 +02:00
f094e242d1 fix(ms-ai-architect): Enhet 3b — dedup dual-**Dato:** i 5 mlops-genaiops-filer (Created-relabel/drop, git-verifisert) [skip-docs]
Løser dual-header der filer bærer BÅDE **Dato:** (opprettelse) OG **Last updated:**
(endring). Ground truth 2026-07-16 + git first-commit-map (2026-04-08 for alle 5):

- 4 distinkte (**Dato:** 2026-02-04, FØR git first-commit → ekte opprettelsesdato):
  relabel **Dato:** → **Created:**, verdi byte-bevart (norsk→engelsk label-rename).
- 1 identisk (mlops-security-access-control: **Dato:**=**Last updated:**=2026-06-19,
  ETTER git first-commit → metadata-artefakt, ikke ekte opprettelsesdato): drop redundant
  **Dato:**. Relabel ville påstått falsk opprettelsesdato — drop er sannferdig.

Ny ren primitiv dropRedundantBoldField (kaster uten identisk-verdi bevis-felt),
gjenbrukt relabelHeaderDialect m/ CREATED_MAP. Manifest-drevet dedup-dato.mjs med
hard per-fil-invariant FØR skriv (relabel: 1 linje, kun label-token; drop: net -1,
Last updated bevart), atomicWriteSync, idempotent. Ingen validator håndhever lukket
feltliste → **Created:** er additiv/konform.

+15 tester (dropRedundantBoldField, CREATED_MAP-relabel, applyOp, manifest, 2 corpus-
guards) + oppdatert stale Enhet-2 carve-out-guard til post-3b-sannhet. Suite 910/910
exit 0. validate-plugin 250 PASS/0 FAIL. Datoløse dual-**Dato:**-filer 5→0.
2026-07-16 20:38:24 +02:00
7b6025a731 fix(ms-ai-architect): Enhet 4 — Last updated på datoløs advisor decision-trees.md (git content-commit 2026-06-23) [skip-docs] 2026-07-16 20:19:07 +02:00
712a143e58 fix(ms-ai-architect): RX-KB1 strip stale plain-Verified pipe-tails (87) + audit-deteksjon [skip-docs]
De 87 referansefilene bar en plain-text `| Verified: <dato>`-hale på **Last updated:**-linjen
i 500B-header-vinduet — usynlig for den bold-only kontrakt-stacken (kb-headers.mjs / audit
RE_VERIFIED), og claimet en verifisering judgen aldri gjorde (samme poison-klasse som de 14
bold **Verified:** MCP Spor 1 fjernet). Uhåndtert springer den også dual-Verified-fellen: R7s
insertVerifiedFields ville stemplet en bold-verdi ved siden av den plain → to motstridende
provenance-claims per fil.

- ny driver strip-stale-verified-pipe.mjs: frosset 87-manifest (18 advisor + 45 eng + 8 gov +
  16 sec), pure verdi-bevarende strip (kun ` | Verified: …`-halen; **Last updated:**-dato
  byte-eksakt), hard per-fil-invariant (linjeantall uendret, body byte-identisk, dato bevart),
  idempotent, atomicWriteSync (RX-OPS2 recovery-kontrakt).
- audit-corpus-headers.mjs: ny plain-Verified-deteksjon (RE_PLAIN_VERIFIED + plainVerifiedPipe)
  — gjør M4-blindheten synlig så en stale plain-hale ikke kan gjenoppstå stille (non-advisor scope).
- 87 filer strippet; plain Verified i vinduet 0/389; live-audit plainVerifiedPipe 0.

Mekanisme: +15 tester (12 strip + 3 audit). Suite 875→890 exit 0. validate-plugin.sh 250/0.

Utsatt → RX-KB1b: footer-dato-avvik + label-whitelist (annen dialekt, flag-to-human).
2026-07-16 20:04:52 +02:00
b3011da017 fix(ms-ai-architect): RX-OPS2 skrive-sikkerhet i driverne — scoped restore + atomiske skriv [skip-docs]
- backup.mjs restore(relPaths): SCOPED per-fil-rollback erstatter hel-tre rmSync(srcDir)+cpSync.
  Ruller kun tilbake kjøringens egne skriv; parallelle økters skriv til søsken-filer overlever;
  intet destruktivt rm→cp-vindu. Nyskapte filer slettes; prior bytes gjenopprettes atomisk.
- migrate-corpus.mjs: returnert restore() er nå en null-arg closure bundet til kjøringens skrive-
  liste (public API uendret) → scoped. detectStaleRollback aborterer ved forrige krasj-sentinel;
  cleanupOldBackups pruner backups forbi retention etter vellykket batch.
- 5 drivere (backfill-status/-category, dedup-plain-header, relabel-dato/-dialect):
  writeFileSync → atomicWriteSync (crash-safe tmp+rename) + recovery-kontrakt i header.
- backfill-category.mjs: refaktorert importerbar (isMain-guard + run()/planCategoryBackfill/
  categoryForFile/FOLDER_CATEGORY-eksporter, parameterisert root) → testbar uten scan-side-effekt.
- Tester (+16): 6 scoped-restore (parallel-preservering, ny-fil-sletting, throws-guard) erstatter
  2 hel-tre; test-backfill-category (frosset taxonomi + hermetisk plan); test-driver-atomic-writes
  (5 drivere); migrate stale-abort + cleanup-wiring. Suite 859→875 exit 0. validate-plugin 250/0.
2026-07-15 21:31:29 +02:00
a8ae1fd276 feat(ms-ai-architect): RX-REG — én maskinlesbar AI Act-frist-kilde + synk-test (B2-B5, R3-5, M10) [skip-docs]
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
2026-07-15 06:13:36 +02:00
de0d94cbc1 feat(ms-ai-architect): R22 decision-b Enhet 3 — Status-backfill 25 none + ai-act dual-header-dedup 4 (Missing Status/Last-updated 29+4→0) [skip-docs]
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).
2026-07-07 07:45:27 +02:00
1ab4fc34cf feat(ms-ai-architect): decision-b Enhet 2 — Dato→Last-updated relabel 16 filer (21 header-kandidater: 16 rene + 5 dual utskilt til dedup), isRealDateValue placeholder-guard [skip-docs] 2026-07-06 11:08:42 +02:00
e999b74eda feat(ms-ai-architect): decision-b Enhet 1 — dialekt-relabel 51 filer (Kategori→Category + Sist oppdatert→Last updated), 73 byte-eksakte swaps [skip-docs]
Ren value-preserving label-relabel av de to norske header-labelene til engelsk på 51 ref-filer (22 bærer begge). Ny testet ren primitiv relabelHeaderDialect() (header-blokk-scoped, kollisjons-/multiforekomst-guard) + manifest-drevet driver relabel-dialect.mjs (frosset 51-fil-manifest, hard per-fil-invariant, idempotent, isMain-guard). **Dato:** bevisst UTE (body-template-felle → Enhet 2). Premiss-korreksjon i roadmap R22: tredje Dato-dialekt (16), 0 bold-duplikater (ikke 4), 1 datoløs (ikke 5), category-none = vindus-artefakt. test-relabel-dialect 11/11; diff +73/-73 0 linjer utover label; suite 782/782 exit 0.
2026-07-06 10:07:52 +02:00
5a0e8d774a feat(ms-ai-architect): R21 — Status-backfill på 14 advisor-ref-filer (redusert scope etter premiss-korreksjon) [skip-docs]
Manifest-drevet applier (scripts/kb-update/backfill-status.mjs) over den testede
insertMetaField-primitiven + ny ren regel statusForFile (filnavn-token → Reference/
Established Practice, operatør-godkjent vokabular). 7 Reference + 7 Established Practice.
Hard per-fil-invariant (én linje, body byte-identisk), idempotent, isMain-guard. 7 tester.

Premiss-korreksjon (auditHeaders, ground-truth 2026-07-06): ekte not-due-restanse er
21 Status + 26 Last-updated (STATE sa 21/22). «0 har norsk dato» var falskt — 21/26
Last-updated-gap bærer allerede Sist oppdatert/Dato → relabel-residual; 5 datoløse gir
«i dag» ved naiv git → utsatt. 4 dual-header ai-act-*-filer med plain-text «Status: GA»
fanget i diff-inspeksjon → revertert (unngår duplikat/motsigelse) → residual (samme
plain-blokk ga R20 duplikat Category). Korrigert residual logget i roadmap §R21.

Verifisering: test-backfill-status 7/7; git diff +14/-0 (kun Status-linjer, body
byte-identisk); not-due Status-missing 21→3; full suite 771/771 exit 0.
2026-07-06 09:41:40 +02:00