Commit graph

27 commits

Author SHA1 Message Date
544934dc57
refactor(examples): replace sector-specific example material with generic, fictitious examples
Reference files, test fixtures, the playground demo project and one design
document now use generic, fictitious examples (buildings, energy, water,
grants, municipal services). The playground demo (17 fixtures plus the
embedded demo state) tells one consistent story: a municipal customer
chatbot that pre-screens housing-benefit applications, classified under
Annex III point 5(a). The embedded demo copies were edited in place rather
than regenerated, because they already carry newer AI Act dates than the
fixture files.

Legal text is unchanged. Test semantics are unchanged. Four dark-theme
onboarding screenshots with outdated placeholder text are removed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 14:03:53 +02:00
ced0c5f46d refactor(ms-ai-architect): R14 — persona ut av plugin-flaten, og de seks stedene som produserte den
Nøytral arkitekt-ramme (ratifisert 15.09) i SKILL.md-ene, 23 kommandoer, 70 redaksjonelle
forekomster i ref-korpuset, README/CLAUDE.md/NOTICE og A11Y-rapportens proveniens-linje.
Hver av de 70 avgjort i kontekst: dialog fikk ny taler, proveniens ny opphavspåstand.

Ordren navnga fem produsent-steder; den live sjette manglet. `PROMPT_TEMPLATE` settes i
generate-skills.sh:27 og leses ALDRI — prompten er en heredoc i samme script. Å rette bare
prompt-template.md ville latt generatoren re-minte personaen ved neste KB-kjøring.

Ny G4-klausul i check-cosmo-gate.mjs: persona i leveranseflaten = 0, derivasjonsregisteret
pinnet per fil PÅ TALL (et filnavn-unntak er blindt for hva fila senere inneholder).
Registeret utvidet med README.md 3 — versjonstabellens rader er historikk, ikke leveranse.
Den ene genitiv-formede produktlinja adjudiseres på cosmos-db-URL-en i samme rad; regelen
er målt lukket (8 tvetydige linjer totalt, 33 URL-linjer, 2 persona-klassifiserte, begge
produkt) og hvitvasker ikke bar `Cosmo`. classifyCosmo urørt — baselinene hviler på den.
R3 godtar nå R14-utført (0) men ingenting imellom: et halvveis sveip felles fortsatt.

Bevis: gate PASSED + NETTET VALIDERT BEGGE VEIER · 1137/1137 · validate-plugin 250/0/0 ·
begge --dry-drivere 0 · Layer B 45/45 OK (kjent-positiv feller, exit 1).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 23:15:27 +02:00
1c9af82daa refactor(ms-ai-architect): R13b — nøytraliser de mekaniske persona-forekomstene utenfor headinger, etter at ordrens egen korrigerte bøttegrense ble målt usann
Ordren ba meg behandle sitt eget premiss som et premiss: «PM-ens 87/45 er korrigert
til 85/47 ved maaling ... Behandle ogsaa 85/47 som et premiss og re-maal det foer du
bygger.» Re-målt over de 389 ref-filene holder 85/47 heller ikke — og feilen ligger i
KLASSIFIKATOREN, ikke i tellingen. Summen 132 står; fordelingen er 62/70.

TRE FUNN, alle pinnet i test:

1. FJORTEN bold-etiketter er DIALOG-ATTRIBUSJONER, ikke etiketter. Dialog-bøtta
   matchet bare kursivformen `*Cosmo:*`. Fetformen står foran sitert tale —
   `**Naar kunden sier:** "..."` / `**Cosmo svarer:** "..."` — så å slette den
   etterlater replikken uten taler. Redaksjonelt, ikke mekanisk.
2. TI tabellceller er PROVENIENSPÅSTANDER i kildekvalitets-kolonnen. Celleposisjon
   deler de 26 tabellforekomstene i tre klasser, ikke én: 12 radetiketter (kolonne 0),
   4 kolonneoverskrifter, 10 proveniensverdier (`Moenstre er Cosmo-design`,
   `Raadgivende innhold basert paa Cosmo-persona`). Å skrive om en av dem er å avgi en
   ny påstand om hvor innholdet kommer fra, og den siste har ikke noe slettemål i det
   hele tatt. Seks av ordrens ni sammensetninger ligger helt inne i denne klassen —
   ordrens egen advarsel traff, målingen lokaliserte den.
3. Lekkasje ANDRE veien, +1 mekanisk: `- **For arkitekten (Cosmo):** ...` i
   reasoning-models-o1-o3-optimization.md:549 er nøyaktig målklassen, men et
   linjestart-forankret nett ser den ikke bak `- ` og bokførte den som prosa.

Operatøren ratifiserte 2026-09-15 alt. A: kjør de 62, hold dialog og proveniens for
R14. Begge tilbakeholdte klasser henger på #R14-persona-ramme som aldri er besvart;
de 62 gjør ikke det, fordi R13 ALT har kjørt `For Cosmo` -> `For arkitekten` over 401
headinger — dette gjør bare etiketter og tabellrader konsistente med en beslutning
som allerede er utført.

UTFØRT: 62 forekomster i 50 filer (ordren sa 47) — 46 etiketter i 16 ratifiserte
varianter, 16 celler i 4. Diffen er 62 fjernet = 62 lagt til, ren in-place-erstatning;
hver endret linje klassifisert, ANNET = 0. Ingen måltekst innfører et ord kilden ikke
hadde, utover R13s sanksjonerte `arkitekten` (samme invariant-test, gjenbrukt).

GATEN, DEKOMPONERT I TRE KLAUSULER, hver validert BEGGE veier før den ble konsumert:
  R1 REFERENT      mekaniske sites 62 -> 0, produkt 451 uendret.
                   Kjent-pos: `**For Cosmo:**` OG `| Cosmos raad |` (genitiven er den
                   et bold-only nett mister) feller begge. Kjent-neg:
                   `**Cosmos DB-anbefaling:**` — ser ut som persona, er produkt —
                   og `| Azure Cosmos DB |` passerer urørt.
  R2 REKKEVIDDE    0 umålte varianter, 0 utenfor rekkevidde. Kjent-pos: en ukjent
                   etikettform rapporteres som umålt OG transformen KASTER, den
                   hopper ikke stille over. Kjent-neg: dialog + proveniens bokføres
                   utenfor scope og er byte-identiske.
  R3 HVA SOM STÅR  16 redaksjonelle etiketter + 10 celler uendret, heading/TOC
                   fortsatt 0 (R13 ikke regradert), prosa 132 -> 70. Kjent-pos: et
                   fjernet tegn i `Cosmos DB` feller produkt-differansen. Kjent-neg:
                   alle kun-produkt-filer byte-identiske gjennom transformen.

Gaten ble kjørt FØR transformen og felte R1 (exit 1) — et nullresultat som aldri er
tvunget til det andre svaret er ingen måling. R13b har egen baseline-fil;
cosmo-gate-baseline.json er et referansepunkt-artefakt (personaHeadings 401) og er
IKKE re-emittert. Ny .gitignore-negasjon (6 entries), aldri `git add -f`.

Målt underveis: 0 av de 62 målinjene ligger i en kodeblokk, så fence-agnostisk
transform er trygg her — samme konklusjon R13 nådde for headinger. Nøyaktig 1 linje
bærer begge klasser; dens `Cosmo-persona` står igjen, som den skal.

Suite 1134/1134 (1120 + 14 nye), validate-plugin 250/0/0, transform idempotent,
R13-driveren fortsatt no-op. RX-OPS1 adversarial-scan kjørt MANUELT på de 56 stagede
filene (OK, exit 0) — `core.hooksPath` skygger repoets pre-commit, fiksen eies av
`.claude`.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 21:09:00 +02:00
3a73eeafdc refactor(ms-ai-architect): R13 del 1 — nøytraliser Cosmo-personaen i ref-korpusets headinger, etter å ha rettet en gate som var målt usann to ganger
Ordre 20260912T193441Z-7358817909. Steg 1 var ikke transformen, men å rette
roadmapens R13-gate og få den ratifisert. Gaten `grep -rl "Cosmo"
skills/*/references -> 0` var usann på to uavhengige måter:

1. Ordren fanget den første: 451 av forekomstene er Azure Cosmos DB, ekte
   produktinnhold. Diskriminatoren er ikke bokstaven «s» — `Cosmos <norsk
   substantiv>` er genitiv av personaen (`### Cosmos tonalitet`), mens
   `Cosmos DB`/`CosmosClient`/`cosmos_ru` er produkt.
2. Denne økten fant den andre: 132 persona-forekomster ligger i prosa,
   tabeller, dialog-replikker og proveniens-linjer. Heading-nøytralisering
   kan ikke nå dem, så «0 persona» er uoppnåelig også under den ratifiserte
   formen. Operatøren ratifiserte alternativ A: gaten speiler formen, og de
   132 bokføres til R13b/R14.

Tre korreksjoner av premisser som sto i ordren og STATE:
  «ca 320 produkt»   -> 451 (case-sensitivt nett manglet 327 lowercase
                        TOC-ankre + 99 identifikatorer; sann nevner 1 638)
  «169 headinger»    -> 401. 169 var `^## For Cosmo`-prefikset (168) og var
                        internt inkonsistent med sin egen topp-variant (204)
  «417 matcher ingen
   populasjon»       -> 417 er cosmo-headinger utenfor kodefences; briefens
                        nevner var reell hele tiden

Fence-bevissthet er målt skadelig, ikke nødvendig: begge toggle-regler er
gale på dette korpuset (naiv toggle skjuler en ekte heading i
chain-of-thought-prompting.md, CommonMark-regelen ubalanserer
service-level-documentation-dr.md). Fence-agnostisk deteksjon finner 401
heading-linjer i nøyaktig de samme 40 variantene som fence-bevisst finner
400 i — ingen kodeblokk-linje er byte-identisk til en persona-heading. Derfor
nøkles transformen på 40 enumererte heading-tekster og ignorerer fences. En
ukjent variant kaster; en slug-kollisjon kaster. Ingenting auto-fikses.

TOC-en regenereres ikke, den rettes kirurgisk: alle 327 persona-lenker hadde
lenketekst lik én av de 40 heading-tekstene og anker lik slugify av den
(327/327, 0 avvik), så heading og TOC-entry skrives i samme operasjon og
ingen mellomtilstand etterlater en død lenke.

Ratifisert målform: `For Cosmo`, `For Cosmo Skyberg` og `For arkitekten
(Cosmo)` konvergerer på `For arkitekten`. To filer kolliderte og er adjudisert
ved å lese dem, ikke ved regel.

Verifisering (alle 7 kriterier fra ordren):
  G1 persona på heading-linjer   401 -> 0
  G2 døde fragmentlenker         1 -> 1 (pre-eksisterende, unntatt)
  G3 produkt-forekomster         451 -> 451; `Cosmos DB|Azure Cosmos` 308 = 308
  de 3 kun-produkt-filene        byte-identiske
  nettet validert begge veier    injisert persona feller G1; genitiv feller G1;
                                 produkt-heading og de 3 filene passerer
  hele diffen                    802 heading-linjer + 654 TOC-linjer, ANNET = 0
  linjeantall                    728 lagt til = 728 slettet
  suite                          1120/1120 (1097 + 23 nye)
  validate-plugin                250 PASS / 0 FAIL
  stikkprøve                     10 filer, alle 5 skills, inkl. de 3 mest
                                 produkt-tunge (26/20/19) — kun heading+TOC

Utenfor scope, urørt: de 4 SKILL.md, de 23 commands, CLAUDE.md, README.md,
NOTICE.md, docs/ (alt R14).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 22:12:28 +02:00
2f0201237b feat(ms-ai-architect): anvend form #34 — 7 av de 8 styrte entriene lukket, den aattende var falsk positiv [skip-docs]
Ordre 20260820T211301Z-1979913580 utfoert. Ratifisering er ikke
anvendelse; naa er den anvendt. Hver edit er gjort mot en FERSK
microsoft-learn-henting 2026-08-25 — ikke mot sitatene i entriene — og
stempeldatoen er flyttet til hentedatoen i samme edit, slik at stempelet
aldri paastaar mer enn passasjen leverer.

14 hel-linje-editer i 6 filer, alle unikhets-sjekket FOER og diff lest i
KONTEKST etter. apply-o2-ratified.mjs kan bare slette; disse er
haandlagde erstatninger.

GREN A (kilden gir et sett -> gjenopprett rekkevidden):
- idx-33b stride 211: «across Azure subscriptions» -> Azure/AWS/GCP +
  alle fem tjenester kilden navngir.
- idx-33c accessibility 161: 3 av 5 roller -> alle fem.
- idx-33e security-copilot 126: «M365 E5» -> «E5 og E7». Ogsaa 130 og
  259, som entryen navnga som del av reparasjonen.
- idx-33f data-leakage 132: kilden har TO filtype-lister + MP4 + PDF;
  fila gjenga den ene. Begge lister navngitt i sin helhet, opt-in-
  formatene merket som opt-in.
- idx-33h agent-365 62: «Kun Agent Builder» -> «Agent Builder og Copilot
  Studio», som kilden sier tre steder.
- idx-33j prompt-shield 237: setningen annonserte «et bredere sett» og
  listet smalere. Tredje kategori — selvhostede modeller og endepunkter
  — er paa plass.

GREN B (kilden gir ingen referent -> kildens egen formulering, stopp):
- idx-33g agent-365 43: «Kun M365 E7-lisens» -> «avhengig av lisensiert
  abonnement». agent-365-overview ble BEVISST ikke hentet: aa skrive
  inn de tre lisensrutene derfra ville byttet en udekket kvalifikator
  mot en mer spesifikk udekket en. Det er hele grunnen til at B er en
  egen gren.

idx-33i ER IKKE ANVENDT — OG SKAL IKKE VAERE DET. Premiss-sjekken foer
teksten ble skrevet felte entryens kildeattribusjon. Linje 304 ligger
ikke i Prompt Shields-delen; den er siste kulepunkt under
«Groundedness Detection:»-stempelet i Del 4, og fila peker selv
groundedness til concepts/groundedness (referanse 6), ikke til
jailbreak-detection (referanse 1). Den kilden sier ordrett
«groundedness detection supports English language content only», saa
«Kun engelsk tekst stoettes» er KILDETRO. Aa anvende gren A her ville
skrevet inn en paastand kilden eksplisitt benekter — altsaa innfoert
feilen entryen ble reist for aa fjerne. Aatte-spraaklisten er ekte, men
gjelder Prompt Shields, en annen funksjon i samme fil.

Dette er #33-formen: et sveip lokaliserer, det adjudiserer aldri.
Stege-2 sammenlignet mot filas overskrifts-kilde i stedet for mot
kilden passasjen faktisk hviler paa. Maalt, ikke antatt: «Kun engelsk»
finnes noeyaktig ÉN gang i fila, saa det finnes ingen annen passasje
entryen kunne pekes om til.

_meta.ratified_forms["#34"] er IKKE endret — ratifisert tekst er
operatoerens aa endre. Formen navner fortsatt idx-33i i GOVERNS;
klassen har 7 anvendte medlemmer, ikke 8. Argumentet formen trekker av
paret staar fortsatt paa idx-33h alene.

Stempel-populasjonen er uendret (283 linjer / 89 filer) — editene
flyttet datoer, ikke stempler. Koe: 63 resolved / 6 aapne.
check-g7-queue 0 drift; suite 1052/1052.

[skip-docs]: ren KB- og koe-commit; ingen kommando-, agent- eller
skill-flate endret, saa README/CLAUDE.md har ingenting aa speile.
2026-08-25 08:33:24 +02:00
b57114746a feat(ms-ai-architect): #33 ratifisert — ankeret var renvasket, containeren var defekten, og sveip-eksponeringen var 1 streng ikke alle [skip-docs]
idx-26i lukket. Entryen bokfoerte seg selv som UMAALT kandidat og krevde to
avgjoerelser. Begge snudde under maaling, i motsatt retning av det entryen antok.

KORPUS-HALVDELEN — ANKERET ER RENVASKET, IKKE REPARERT.
1) Stempel-dekning maalt FOERST (#29-disiplinen): fila har NULL
   "**Confidence:**"-stempler. idx-26f sin defektklasse - uhjemlet spesifisitet
   UNDER et verifiseringsmerke, der defekten er merkets rekkevidde og ikke
   setningen - overfoeres derfor ikke. Det finnes ikke noe merke her aa
   overskride. Fila sitt eneste verifiseringsartefakt er footer-paret
   "Verification status: Alle kilder verifisert 2026-02", en datert paastand om
   KILDELISTA, ikke om enkeltpaastander.
2) Parentesen er ORDRETT TRO mot fila sin EGEN oppgitte kilde.
   concept-responsible-ai staar i fila sin "Microsoft kilder" og sier:
   "assess model fairness across sensitive groups, such as gender, ethnicity,
   age, and other characteristics". idx-26f sin soesterdefekt fantes fordi
   SCORECARD-sida bare sier "your desired sensitive groups"; denne fila
   attribuerer til en ANNEN side som faktisk oppgir de tre. Samme streng, ulik
   kilde, motsatt dom - og nettopp derfor kunne et sveip paa STRENGEN aldri ha
   adjudisert dette.

DEFEKTEN ER CONTAINEREN. Alle fire punktene verifisert mot levende kilde:
fairness assessment (concept-responsible-ai, ordrett) · explainability, inkl.
SHAP (how-to-machine-learning-interpretability: RAI dashboard bruker "LightGBM
paired with the SHAP (SHapley Additive exPlanations) Tree Explainer") · error
analysis ("cohorts with a higher error rate than the overall benchmark") ·
model monitoring ("data drift detection", under Accountability/MLOps). Alle
fire er AZURE MACHINE LEARNING. Overskriften sa Microsoft Foundry. Levende
Foundry-RAI-flate (responsible-use-of-ai-overview, hentet denne oekten) er
Discover/Protect/Govern med content filters, Guardrails, tracing og Defender-
varsler - ingen av de fire. Korpuset sier dette selv i
responsible-ai-training-awareness.md:280, saa fila motsa en soesterfil.

KLASSE-KORREKSJON: kryss-attribusjon (idx-26b sin klasse), ikke "replacement".
Entryens eget forbehold navnga den ekte defekten, men behandlet den som grunnen
til at ankeret kanskje var USKYLDIG - ikke som funnet selv.

OPPHAV MAALT, IKKE ANTATT. "git log -S" peker paa 03d596e (Foundry-navnesveipen
over 233 filer), men 03d596e^ viser at overskriften da sto som "### Azure AI
Foundry RAI-tools:". Sveipen fulgte sin egen oppgitte regel; feilattribusjonen
er eldre og ble bare baaret videre under nytt produktnavn. En mekanisk sveip er
ikke skyldig bare fordi git blame stopper der.

FORM: overskriften retarget til "### Azure Machine Learning RAI-verktoey:"
(korrekte norske diakritiske tegn i korpusfila; previewet var ASCII-sikret og
LABELEN er det ratifiserte objektet). Punktene uroert, fila fortsatt 314 linjer.
Overskriften ligger bevisst paa AZURE MACHINE LEARNING-niva og IKKE paa
"Responsible AI Dashboard"-niva: punkt 4 er MLOps, ikke en dashboard-komponent,
saa en Dashboard-overskrift ville latt reparasjonen ARVE kryss-attribusjons-
klassen den er skrevet for aa fjerne. Naboblokka lest om igjen HEL etter editen:
l.234 baerer allerede "Azure Machine Learning Responsible AI Dashboard", saa de
to blokkene leser naa som oversikt-saa-detalj paa ETT produkt.

KONVENSJONS-HALVDELEN — ENTRYENS EGET OMFANGS-PREMISS VAR USANT.
Entryen paastod at "every cross-file sweep recorded in this queue that greped
English strings alone has an unmeasured Norwegian half". Maalt: av 52 resolved
har bare 4 noe sveip-utsagn, og 2 av dem er ikke literale sveip - idx-26e sitt
er en MERKNAD om framtidige sveip, og idx-26d kjoerte en konsept-sjekk som
faktisk FANT kryss-fil-instansene og bokfoerte idx-26e ut av dem. Reell
eksponering: 2 entries, 4 strenger. Alle fire norske halvdeler kjoert:
"Powered by AI" 0 · "outlier analysis" 0 · "Dataset statistics" 0 ·
"gender, ethnicity, age" 7. Én streng av fire, i én entry av to.

OG DE 7 TREFFENE BAERER IKKE EN BLANK REGEL: fem er alminnelig fagprosa uten
produktattribusjon (diskrimineringslov, bias-testing, sjekklister). Bare to er
produktpaastander: dette ankeret, og responsible-ai-framework-overview.md:41 -
som attribuerer KORREKT til "Fairness assessment i RAI Dashboard". Den fila er
KONTROLLEN: den viser at den norske frasen ikke selv er en defektmarkoer, og at
denne fila var avviket og ikke moensteret. Et blankt tospraaklig sveip ville
kjoert paa 1/7 presisjon. Det ble lagt fram med den maalte presisjonen og
avslaatt; den filtrerte formen ble ratifisert som #33.

#33 KJOERT MOT EGEN REPARASJON: to andre steder nevner Foundry og RAI Dashboard
sammen (ai-act-microsoft-tools-mapping.md:33, responsible-ai-framework-
overview.md:188) - begge skiller dem eksplisitt og er korrekt attribuert.
Klassen er lukket paa én instans.

Historisk eksponering er LUKKET, ikke etterlatt aapen: alle fire tidligere
sveipede strenger har faatt sin norske halvdel maalt denne oekten.

Hel-linje-bevis: l.236 eksakt ny overskrift, l.237 anker uendret, 0 filer med
gammel streng. Suite 1052/1052. check-g7-queue exit 0. Koea: 58 entries
(5 aapne, 53 resolved), 13 former (#21-#33). Alle 13 GOVERNS-pekere opploeser
mot eksisterende, resolvede entries (skript-verifisert, ikke haand-talt).

[skip-docs]: ren KB-korrektur, ingen endring i kommandoer/agenter/skills/hooks.
2026-08-13 22:47:39 +02:00
8e4c8b59c7 feat(ms-ai-architect): R7.4 re-judge-gate bestått — digdir-ai-governance-structure stemplet born-verified (2 blinde pass, 12/12 enighet; stemplede 11→12) [skip-docs] 2026-07-31 15:54:54 +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
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
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
cef5ab6e80 fix(ms-ai-architect): RX-REG-KB M14 Nkom/dept/navn — DFD-koordinering + Nkom utpekt i conformity + KI Norge i 4 governance-refs [skip-docs]
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
2026-07-15 07:54:32 +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
ddce43d8b2 feat(ms-ai-architect): Spor 1 — Port-1-substrat migrert på 4 ikke-advisor-skills (243 Source + 327 Type + 325 TOC + stale-verified poison fjernet) [skip-docs]
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.
2026-07-04 10:19:11 +02:00
05ffbb50f4 docs(ms-ai-architect): KB-refresh HIGH 10/11 — copyright: Models sold by Azure-terminologi, 5. data-privacy-garanti, CCC-scope, safety-message-templates-URL 2026-06-24 10:44:36 +02:00
03d596e4ec docs(ms-ai-architect): KB-refresh tema-b — Foundry-navnesveip «Azure AI Foundry»→«Microsoft Foundry» (233 filer)
Verifisert mot offisiell MS-doc (juni 2026): «Microsoft Foundry» er det
gjeldende produkt-/portalnavnet; «Foundry (classic)» = gamle «Azure AI Foundry»
(/azure/foundry/ vs /azure/foundry-classic/). Premiss bekreftet før sveip.

Multi-regel, IKKE naiv s/Azure AI Foundry/Microsoft Foundry/ — MS dropper
«Azure AI» (legger IKKE til «Microsoft») for to produktvarianter:
- «Azure AI Foundry Agent[ Service|s]» → «Foundry Agent Service/Agents» (MS-form)
- «Azure AI Foundry Models» → «Foundry Models» (i «Azure OpenAI in Foundry Models»)
- «Azure AI Foundry SDK» → «Microsoft Foundry SDK» (operatør-valg)
- «Azure AI Foundry portal/project» + generisk → «Microsoft Foundry»
- Pre-eksisterende «Microsoft Foundry Models» (4) normalisert → «Foundry Models»

Bevart: «Azure OpenAI», «Azure AI Inference SDK», «Azure AI Search»,
«Azure AI Services», kode-IDer. Historisk ref «(tidligere Azure AI Foundry)»
i model-catalog-2026.md beskyttet via lookbehind. URL /azure/ai-foundry/→
/azure/foundry/ kun i owasp-llm-top10 (KB-ref); docs/-filer deferred.

Scope: skills (inkl. 3 SKILL.md) + commands + agents + README + CLAUDE.
Ekskludert: docs/ (interne), playground/+tests/ fixtures (testdata),
CHANGELOG.md (historisk logg), STATE.md (gitignored).

3 SKILL.md endret (advisor/engineering/security) → judge-cache teknisk
invalidert for disse, men scorer uendret: advisor 91, eng/gov/infra/sec 96
(alle ≥90). validate 239/0. 0 «Azure AI Foundry» igjen (utenom bevart ref).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-23 21:00:27 +02:00
25bcb74d9a chore(ms-ai-architect): refresh KB high-bucket — 49 files [skip-docs]
KB-currency refresh (high priority, 2026-06-19) via /architect:kb-update.
49 high-prioritets governance/security/monitoring-filer re-verifisert mot
Microsoft Learn (MCP) — delegert til 8 parallelle Opus-subagenter gruppert
etter delt kilde, verifisert i hovedkontekst (diff-review + tester).

Hovedendringer (faktuelle korreksjoner + currency):
- MITRE ATLAS-IDer korrigert (supply-chain): AML.T0050 -> AML.T0018.000
  (Poison AI Model); AML.T0020 = Poison Training Data; T1195 Supply Chain
  Compromise. Gamle IDer var utdaterte (verifisert mot MCSB v2 AI-1).
- OTel-sampling presisert (distributed-tracing): adaptive sampling = klassisk
  App Insights SDK; OTel-distroen sampler IKKE by default (fixed-rate/
  rate-limited maa konfigureres); Functions parent-based sampling er default.
- MCSB v2 AI-kontroller AI-1 -> AI-7 (risk-taxonomy three-pillar, scoring-
  framework, rubrics, red-team, adversarial); Defender for Cloud AI threat
  protection + AI-SPM (GA).
- AI gateway (APIM) multi-provider: Anthropic Messages API v2-tiers, Google
  Vertex, unified model API (preview), MCP/A2A, Foundry-integrasjon; eksakte
  policy-navn (llm-emit-token-metric maks 5 dims, llm-semantic-cache-*,
  score-threshold = avstand, MS-eks. 0.15).
- Purview Enterprise AI apps inkl. Anthropic Claude (Enterprise) + ChatGPT
  Enterprise; Security Dashboard for AI (Agent 365-inventar, MCP-servere,
  tredjepartsmodeller; Security Reader minimumsrolle).
- Entra Agent ID: CA-lisenskrav (Entra ID P1/P2 + Agent 365), CA-scoping per
  tilgangsmoenster (on-behalf-of/app-only/agent-as-user), CA-grenser,
  connector-permissions som API-permissions.
- Copilot DLP: Block SITs in web search (GA, Performing Web Searches) + Block
  external email (preview) som prompt injection-vern.
- Azure AI Language PII: tre feature-typer, GA-API 2026-05-01; NOIdentityNumber
  bekreftet dedikert kategori for norske foedselsnummer.
- Foundry Tools-rename forsterket paa tvers; alle 49 Last updated -> 2026-06-19.

Discovery: 500 kandidater (alle Databricks-stoey) -> kun registry-kandidater,
ingen nye skills/-filer -> 389-telling uendret. validate 239 PASS,
kb-integrity 115/115 (262 orphan-warnings uendret), gitleaks clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-19 11:09:54 +02:00
c0e23a786e fix(ms-ai-architect): verifiser OWASP Agentic 2026 tittel-ordlyd mot primærkilde (release-gate)
Release-gaten før v1.16.0: bekreftet eksakt engelsk tittel-ordlyd for ASI01–ASI10
mot OWASP GenAI Security Projects offisielle publisering på genai.owasp.org
(9. desember 2025), hentet direkte to ganger uavhengig. Sekundærkilde-spriket som
ros-ai-threat-library.md:541 advarte mot er nå løst mot primærkilden.

Fire titler var feil (KB fulgte aggregator-varianter, ikke offisiell tekst):
- ASI02: «Tool Misuse & Exploitation» → «Tool Misuse»
- ASI03: «Agent Identity & Privilege Abuse» → «Identity & Privilege Abuse»
- ASI04: «Agentic Supply Chain Compromise» → «Agentic Supply Chain Vulnerabilities»
- ASI08: «Cascading Agent Failures» → «Cascading Failures»

Rettet i alle 6 forekomster (hovedtabell + inline OWASP Agentic-mappingrader 579/597).
Kildemerknad (:541) oppdatert: hedge om uverifisert ordlyd erstattet med eksplisitt
primærkilde-referanse + hvilke sekundærvarianter som florerer.

Notasjon (:2026): uendret. Offisiell blogg bruker ASIxx uten årstall, men KB bruker
konsekvent :ÅRSTALL for OWASP-IDer (jf. LLM05:2025) — intern konsistens beholdt,
flagget separat for normaliserings-beslutning.

Verifisert: validate-plugin.sh 219 PASS.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 14:16:49 +02:00
dd1036ab8a fix(ms-ai-architect): Foundry URL-navnerom-migrering (ai-foundry → foundry/foundry-classic, 141 filer)
Task #5 del 1/3 (URL-migrering). Verifiseringen motbeviste STATE.md-premisset om ren prefix-swap: rebrand er per-URL, ikke mekanisk. En blind sed ai-foundry→foundry ville lagd 56 nye 404-er (classic-stiene finnes ikke under nytt foundry/-prefiks — bekreftet empirisk).

Metode: resolverte alle 237 unike KB-URLer mot live redirects (curl -L), bygde full-URL→full-URL-mapping fra faktisk url_effective. Bevarer locale-form, query (?view=) og #fragment per lenke.

- 231 navnerom-erstatninger over 141 filer (408 forekomster):
  - 161 → azure/foundry/ (98 ren prefix-swap + 10 sti-reorg + reorg-tilfeller)
  - 69 → azure/foundry-classic/ (eldre hub-spor: assistants, hub-DR, on-your-data; faktisk redirect-mål per operatorvalg)
  - 1 → azure/foundry-local/

- 2 døde lenker (404) fikset til verifiserte mål:
  - agent-service → azure/foundry/agents/overview
  - concepts/evaluation-evaluators/ → azure/foundry/how-to/evaluate-generative-ai-app

- 5 path-/display-referanser (uten https://, i backticks/lenketekst) rettet manuelt.

- 6 slug-baserte ai-foundry-treff urørt (scope-grense): managed-grafana-dashboard, security-baseline, power-platform prompt-builder, architecture baseline-chat (sistnevnte slug-rebrand i annet navnerom — mulig fremtidig funn).

- Parkert til task #5 del 2/3: Norway East GPT-5-datasuverenitet-fiks + modellkatalog-utvidelse (5.3/5.4/5.5, gpt-oss, sora-2).

Verifisert: 0 gjenværende azure/ai-foundry/-navnerom i skills/. validate-plugin.sh 219 PASS. test-kb-integrity.sh 117/117 passed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-18 13:37:06 +02:00
51c1bd8c6c fix(ms-ai-architect): ROS + DPIA currency (NSM v2.1, OWASP Agentic 2026, EchoLeak, DPF, EUDB, KI-loven)
- NSM Grunnprinsipper 2.0/2022 -> 2.1 (2024-05-31). MITRE ATLAS AML.T0051 -> 'LLM Prompt Injection'.

- OWASP Top 10 Agentic Apps 2026 (ASI01-10) mappet. NB: tittel-ordlyd fra sekundaerkilder - bekreft mot offisielt OWASP-PDF for v1.16.0-release.

- EchoLeak (CVE-2025-32711) lagt til T-INP-02. DPF opprettholdt (Latombe avvist 2025-09-03). EUDB fullfort feb 2025. KI-loven lagt til DPIA-grunnlag.

Verifisert mot nsm.no/genai.owasp.org/curia.europa.eu/blogs.microsoft.com/regjeringen.no 2026-06-18.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-18 12:13:56 +02:00
70f24fa9df fix(ms-ai-architect): re-baseline EU AI Act-tidslinje (Digital Omnibus) + Art 99-bøtesatser
- Annex III hoyrisiko utsatt 2026-08-02 -> 2027-12-02 (provisorisk, Omnibus); Annex I -> 2028-08-02. Oppdatert CLAUDE.md frister, session-start-hook, ai-act-assessor output-mal + 5 AI Act-KB-filer.

- Art 99-boter: 30M/6% (finnes ikke) -> 35M/7% (Art 5), 15M/3% (ovrig), 7.5M/1% (feilinfo) i 4 filer.

- Art 50 transparens presisert (gjelder 2026-08-02; eksist. generative systemer frist 2026-12-02). Fjernet hardkodede dag-nedtellinger i CLAUDE.md.

Verifisert mot Consilium/Gibson Dunn/Latham/artificialintelligenceact.eu 2026-06-18.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-18 12:00:34 +02:00
53ea2cd716 chore(ms-ai-architect): KB refresh complete — 23 files (high batch 2) [skip-docs]
Last batch in HIGH bucket. Combined with d60bbd4 (critical 9 + high batch 1, 21 files), this finishes the critical+high KB-refresh sweep for v1.12.0.

Substantive edits (3 files):
- security-copilot-integration.md: M365 E5/E7 inclusion auto-provisioning, agents-first landing experience, role-based onboarding (Verified MCP 2026-05)
- entra-agent-id-zero-trust.md: Ignite 2025-utvidelser — Conditional Access for agenter, Risky agents, 3 nye Agent ID-roller, Microsoft Agent Identity Platform, Copilot Studio blueprint principal
- ai-center-of-excellence-setup.md: Ny "Oppdateringer 2026-05"-seksjon — tre-roller-modell (platform/workload/CoE), agent-ferdighetsområder, sentralisert→rådgivende operasjonsmodell

Date-bump (20 files):
- HIGH-bucket filer der MCP-fetch viste kosmetiske endringer (forrige sesjons lærdom replikert)

Tests: validate-plugin.sh PASS 219.
2026-05-05 14:52:42 +02:00
d60bbd4bff chore(ms-ai-architect): KB checkpoint refresh — 30 files (critical 9 + high batch 1) [skip-docs]
- Critical bucket (9 files): substantive content updates basert på MCP-fetch
  - enterprise-governance: DSPM front door, AI-app-kategorier (3), single-tenant Entra ID
  - rag-cost-optimization, observability, ai-services-enterprise, multi-model-strategy: dato-bump
  - deterministic-cost: Copilot Credits offisiell common currency (2025-09-01), CCCU prepurchase
  - gpt5-gpt41-pricing: utvidet Copilot Studio modell-lineup (GPT-5.2, GPT-5.3, Claude 4.6, Grok 4.1)
  - vector-storage, request-batching: dato-bump (DS allerede dekkende)

- High batch 1 (21 files, 10-30): Last updated 2026-04→2026-05 dato-bump
  Substantive Microsoft Learn-endringer var marginale per fetch — kosmetiske oppdateringer.

Resterende: high batch 2 (filer 31-53, 23 filer) i ny sesjon. Se NEXT-SESSION-PROMPT.local.md.
2026-05-05 14:28:35 +02:00
Kjell Tore Guttormsen
7585d21cd9 chore(privacy): fix factual mashups from phase 2 bulk replace
Phase 2 bulk replace produced a few factually wrong attributions where
real publicly known sector documents/datasets/personas were incorrectly
re-attributed to the fictional generic entity. Genericize those
references instead.

- ros-sector-checklists.md: V440 håndbok citation -> "sektorvise
  faglige håndbøker"; tilsynsmyndighet list -> generic phrasing
- master-data-management-ai.md: NVDB row -> generic "sektor-/fagregistre"
- ai-center-of-excellence-setup.md: NVDB integration line -> generic
  "sektorvise nasjonale registre"
- multimodal-prompt-engineering.md: system_message persona -> generic
  "fagingeniør i norsk offentleg sektor"

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-03 04:30:15 +02:00
Kjell Tore Guttormsen
781d98f62f chore(privacy): scrub real-org references from plugin internals (phase 2)
Same bulk replacement applied to plugin-internal KB, examples, fixtures,
tests, and docs. Real organization names, persona names, internal system
identifiers, and domain-specific terms replaced with fictional generic
public-sector entity (DDT) and generic terminology.

Scope:
- okr/ — examples, governance, framework, integrations, sources
- ms-ai-architect/ — KB references (engineering, governance, security,
  infrastructure, advisor), tests/fixtures, agents, docs
- linkedin-thought-leadership/ — voice samples, network-builder,
  examples (genericized identifying headlines to "[your organization]")
- llm-security/ — research notes, scan report

Manual genericization beyond bulk replace:
- okr SKILL.md "Primary user / Domain" — generic Norwegian public sector
- linkedin-voice SKILL.md headline placeholder
- network-builder.md headline placeholder
- high-engagement-posts.md voice sample employer line + hashtag

Phase 3 (factual-attribution review) remains: a few KB files attribute
publicly known transport-sector docs/datasets (e.g. håndbok V440, NVDB)
to the fictional DDT after bulk replace. Needs manual semantic review
to either remove or restore correct citation without re-introducing
affiliation references.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-03 04:28:15 +02:00
Kjell Tore Guttormsen
6645e93205 docs(architect): weekly KB update — 106 files refreshed (2026-04)
Updates across all 5 skills: ms-ai-advisor, ms-ai-engineering,
ms-ai-governance, ms-ai-security, ms-ai-infrastructure.

Key changes:
- Language Services (Custom Text Classification, Text Analytics, QnA):
  retirement warning 2029-03-31, migration guides to Foundry/GPT-4o
- Agentic Retrieval: 50M free reasoning tokens/month (Public Preview)
- Computer Use: Claude Sonnet 4.5 (preview) + OpenAI CUA models
- Agent Registry: Risks column (M365 E7), user-shared/org-published types
- Declarative agents: schema v1.5 → v1.6, Store validation requirements
- MLflow 3: 13 built-in LLM judges, production monitoring, Genie Code
- AG-UI HITL: ApprovalRequiredAIFunction (C#) + @tool(approval_mode) (Python)
- Entra ID Ignite 2025: Agent ID Admin/Developer RBAC roles, Conditional Access
- Security Copilot: 400 SCU/month per 1000 M365 E5 licenses, auto-provisioned
- Fast Transcription API: phrase lists, 14-language multi-lingual transcription
- Azure Monitor Workbooks: Bicep support, RBAC specifics
- Power Platform Copilot: data residency (Norway/Europe → EU DB, Bing → USA)
- RAG security-rbac: 4-approach table (GA + 3 preview access control methods)
- IaC MLOps: Well-Architected OE:05 principles, Bicep/Terraform patterns
- Translator: image file batch translation Preview (JPEG/PNG/BMP/WebP)

All 106 files: Last updated 2026-04 | Verified: MCP 2026-04

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 09:13:24 +02:00
Kjell Tore Guttormsen
565043dbde docs(architect): weekly KB update — 66 files refreshed (2026-04)
Updated 66 stale knowledge base reference files (10 critical, 56 high)
across all 5 skills using Microsoft Learn MCP research.

Key factual updates:
- Groundedness Detection API: `correction` → `mitigating` param,
  `correctedText` → `correctionText` (breaking change)
- Copilot Studio: GPT-4.1 mini now default (was GPT-4o mini);
  Claude Sonnet 4.5 + Opus 4.5 added (experimental, 200K ctx)
- Agentic Retrieval: still public preview; 50M free tokens/month
- Azure security baselines: "Cognitive Services" → "Foundry Tools"
- Databricks: Delta Live Tables → Lakeflow Spark Declarative Pipelines
- MLflow 3 GenAI: new Feedback/Expectation data model
- Token tracking doc: "Azure OpenAI in Foundry Models through a gateway"
- Agent Registry: Risks column (M365 E7), Graph API (preview)
- Copilot DLP: new Entra AI Admin + Purview Data Security AI Admin roles
- ISO/IEC 42001: scope expanded to M365 Copilot, Foundry, Security Copilot
- Zero Trust: CAE now via Conditional Access, Strict Location Enforcement
- Purview: new Fabric Copilots/agents governance section
- AG-UI HITL: ApprovalRequiredAIFunction (C#), @tool approval_mode (Python)

All files: Last updated → 2026-04, *(Verified MCP 2026-04)* markers added.
Build registry: 1341 URLs from 387 files (+2 new URLs).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 22:41:26 +02:00
Kjell Tore Guttormsen
baa2d0220b feat(ultraplan-local): v1.6.0 — /ultraresearch-local deep research command
Add /ultraresearch-local for structured research combining local codebase
analysis with external knowledge via parallel agent swarms. Produces research
briefs with triangulation, confidence ratings, and source quality assessment.

New command: /ultraresearch-local with modes --quick, --local, --external, --fg.
New agents: research-orchestrator (opus), docs-researcher, community-researcher,
security-researcher, contrarian-researcher, gemini-bridge (all sonnet).
New template: research-brief-template.md.

Integration: --research flag in /ultraplan-local accepts pre-built research
briefs (up to 3), enriches the interview and exploration phases. Planning
orchestrator cross-references brief findings during synthesis.

Design principle: Context Engineering — right information to right agent at
right time. Research briefs are structured artifacts in the pipeline:
ultraresearch → brief → ultraplan --research → plan → ultraexecute.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 08:58:35 +02:00