Commit graph

151 commits

Author SHA1 Message Date
5ad4ed025c feat(ms-ai-architect): Sesjon 14 — B1 fullført (coverage/gap + bloat/stale) [skip-docs]
Utvider scripts/kb-eval/detect-skill-lifecycle.mjs med to deterministiske
detektorer (B1 nå komplett, 3 seksjoner i skill-lifecycle-report.json).
Skriver ALDRI til skills/ — kun rapport; kandidater mater decisions.json + gate (B3).
Intern kb-eval-tooling: ingen brukervendt kommando/agent/skill/hook endret.

Detektor 2 — coverage/gap (innen-domene): taksonomi category_skill (deklarert
eierskap) vs fysisk disk-mappetelling. Klasser gap/thin/orphan/misowned.
Empirisk: 21 deklarerte kat, 20 dekket, 1 gap (security-scoring — deklarert
men ingen disk-mappe; innhold bor i ai-security-engineering = fantom-rutekat),
2 tynne (development=1, platforms=5).

Detektor 3 — bloat/stale (per skill): K3-margin (eval.checkK3 body vs 500) +
dateless ref-andel (mangler Last updated:-header = uverifiserbar ferskhet).
Disk-only/deterministisk; poll-avledet staleness (change-report) bevisst utenfor.
Empirisk: 0 split-kandidater, 1 saner (ms-ai-governance 4/78 dateless).

TDD: 8 nye tester (coverage 4, stale-primitiv 1, bloat 3). kb-eval 23->31.
Gate: validate 239, kb-update 122, kb-eval 31, kb-integrity 192/192 — grønn.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-20 11:34:57 +02:00
2665a3a2d8 feat(ms-ai-architect): Sesjon 13 — B1 overlap-detektor (skill-livssyklus)
Spor B fase B1, første detektor (lag-1-analog på SKILL-granularitet).
PRODUSERER KUN RAPPORT — skriver aldri til skills/ (invariant bekreftet).

Detektor (scripts/kb-eval/detect-skill-lifecycle.mjs) kombinerer to
deterministiske overlapp-signaler per skill-par:
- grensetension: operatør-kuratert k1-trigger-prompts.json belongs_to-graf
  (out_of_domain = håndmerkede confusable-naboer), symmetrisk telt
- df-vektet leksikalsk trigger-surface-overlapp (1/df nedvekter domene-
  vanlige ord som «azure»; format-boilerplate «triggers» filtrert)
combined = grensetension + weightedScore.

Empirisk: eng↔infra topper (combined 7.42, tension 6, delt: architecture/
azure/data/multi) — operatørens Azure-deployment-grenseinstinkt bekreftet.
Surfaces som focusPair (operatør-utpekt B1-mål).

CLI: default human-summary · --json · --write (rapport gitignored som de
andre deteksjonsrapportene; detektor + kuraterte inputs er tracked).

TDD: 8 nye tester i tests/kb-eval/ (tokenize, surface, df, lexical, pairKey,
tension differensial-sjekk, full compute m/determinisme). Gate møtt.
Ingen regresjon: validate 239 · kb-update 122 · kb-eval 23 (15+8) · kb-integrity 192/192.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-20 11:17:19 +02:00
e8ceb7a8b4 docs(ms-ai-architect): Spor B plan godkjent — skill-livssyklus (krav 5+6, omdefinert)
Aktiverer de utsatte krav 5 (lage nye skills) + krav 6 (merge/saner/retire),
omdefinert per operatør-retning 2026-06-20:
- deteksjon først (ikke-destruktiv, driver ops)
- best-practice-bar = K1–K9 + K10 søsken-scope-ikke-overlapp
- INGEN nye domener (ikke Power Platform/Dynamics); tyngdepunkt merge/saner
  på de 5 eksisterende; create = dvelende kapabilitet
- Azure-deployment = grensesone eng↔infra (B1 første deteksjonsmål), bekreftet

Superseder kb-mechanism-redesign-plan.md:19 (krav 5/6 «UTE av scope») for Spor B.
3 faser B1 (deteksjon) → B2 (K10) → B3 (ledger+ops). Arkitektur-invariant arvet:
alle skill-ops via decisions.json + operatør-gate; aldri tap av kuratert verdi.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-20 11:09:11 +02:00
c778cf6cd2 fix(ms-ai-architect): Sesjon 12 — lukk SPOR A, ny eval-baseline (K1–K9 grønn alle 5)
Regenerert eval-baseline.json via gated `eval.mjs --write` så baselinen fanger
S9+S10+S11 judge-verdiktene (var pre-S9). Eneste endrede artefakt: baseline-fila
(123+/128−, ren regenerering — judge-felt null→populert fra data/judge-results.json).

Verifisert FØR skriving (read-only) og i resultatet:
- judge-cache: K1/K4/K7/K8/K9 PASS alle 5 (advisor K8=0.8 at-threshold, pass)
- deterministisk: K2/K3/K5/K6/refTall PASS alle 5
- ny baseline: 0 åpen FAIL K1–K9 på alle 5 skills, judge populert alle 5

SPOR A (krav 1–4) er nå komplett: K1 autoritativ+blindet (S11), 6×5 kanonisk (S8),
K4+K9 body-cleanup (S9 sec+gov, S10 eng+infra), skill-optimalisering refTall+K5 (S7).
eval-baseline.json er sannhetskilden og grønn på K1–K9.

Ingen regresjon: validate 239 · kb-update 122 · kb-eval 15 · kb-integrity 192/192.
NESTE: Spor B (scheduled deteksjon · kurs-spor #25 · low-currency · onboarding #26).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-20 10:11:45 +02:00
c1f75f9c78 fix(ms-ai-architect): Sesjon 11 — K1 trigger-presisjon, blindet judge PASS alle 5
(a) 2 description-fikser (operatør-godkjent):
- governance: +Schrems II/TIA-trigger (recall-gap 0.85→1.0; governance eier
  domenet — 20 ref-filer + data-residency-audit-monitoring.md)
- advisor: strammere — selection-forankret + eksplisitt negativ scope
  (NOT for build/secure/operate/legally-assess); fjernet bred
  "Microsoft AI architecture"-trigger som kolliderte med søsken

(b) Kuratert testsett + mekanikk:
- ny data/k1-trigger-prompts.json (100 prompts: 10 in + 10 adversarielt out/skill)
- judge-prompt.md K1: generer→konsumer kuratert sett + nytt skjema
  (inDomainHitRate/outDomainFalsePositiveRate/pass/misclassified, provisional=false)
- blindet måling: 5 Opus-dommere ser kun description + 20 stokkede umerkede
  prompts; ground-truth scoret deterministisk utenfor dommeren

Resultat: K1 PASS alle 5 — hit 1.0 / fp 0.0 / presisjon 1.0 / 0 miss.
Begge fikser validert i dommer-begrunnelsene. K2 fortsatt PASS.
Ikke regredert: validate 239 · kb-eval 15 · kb-update 122 · kb-integrity 192/192.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-20 10:00:47 +02:00
6b3c44adc3 fix(ms-ai-architect): Sesjon 10 — K9-destale eng+infra (volatil status → ref)
Begge S10-kriterier møtt (operatør-gated kald LLM-judge): engineering K9 PASS,
infrastructure K9 PASS. Deterministisk ikke regredert: validate 239 · kb-eval 15
· kb-update 122 · kb-integrity 192/192. K4 hevet 4→5 begge skills.

Engineering: modellversjoner (GPT-4o/Whisper/Florence/text-embedding-3) →
generisk kapabilitets-framing; MAF-«erstatter SK»-transisjon + Foundry Agent
Service GA → pekere; «Start med GPT-4o» (ABSENT i ref) droppet.

Infrastructure: SLA-tabell (ABSENT i ref) → relativ-veiledning + MCP-peker;
RTO/RPO-tabell → sammendrag + peker (ref bærer hele tier-modellen); «peak+30%»
(ref sier 20%) → generisk; Phi-3/Phi-4 + parametertall → «Phi-familien»
(fjernet faktafeil «Phi-4 14B»).

Metode: read-only verifiserings-agenter kartla ref-dekning FØR sletting.
judge-results.json oppdatert med ferske kalde eng+infra-verdikter (_updated: S10).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-20 09:31:21 +02:00
a9ff401b6e docs(ms-ai-architect): Sesjon 9 SPOR A-resultater i roadmap + STATE
Sesjon 9 RESULTATER i roadmap (metode, per-skill-endringer, S10-binding)
+ S9-rad i PLANLAGT-tabellen merket FERDIG. STATE peker paa Sesjon 10
(K9-destale engineering + infrastructure) som neste.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-20 07:37:12 +02:00
c4230d2e88 fix(ms-ai-architect): Sesjon 9 - K4+K9 body-cleanup security + governance
Tynner duplisert/volatil body-info i de to skills som feilet begge
kriterier, til pekere mot kanoniske ref-filer. Fersk operatør-gated
LLM-judge: security K4 5/5 + K9 PASS; governance K4 5/5 + K9 PASS.

Security (K9): Defender GA/preview/Azure-Gov-status, §3-ytelsestall,
GPT-4o-par og PTU break-even ut av body. Uverifiserte tall (20-50ms,
5-10x, 80% latens — fantes i ingen ref) droppet, ikke flyttet.
Security (K4): risikoklassifiserings-tabellen (divergerte fra rubrikk:
6 band vs 5, manglet Uakseptabel) + P10/P50/P90-tabellen (flat x0.6/x1.8
motsa kanonisk per-komponent-modell, agentens OBLIGATORISK-kilde) ->
peker. Antakelse-test bestaatt: ingenting asserter body-tallene.

Governance (K9): EU Data Boundary §2.3 - droppet volatile regioner
(Sweden Central/West Europe; body motsa refs som sier Norway East/West
Europe), repek kryss-ref til gdpr-compliance-ai-systems.md.
Governance (K4): §6.2 AI Act-tre - kollapset oppramsede (og ufullstendige)
Art.5 + Annex III-lister til pekere mot ai-act-classification-methodology.md;
§2.1 eneste oversiktstabell.

judge-prompt.md K9 strammet: stabile identifikatorer (forordningsaar,
OWASP 2025, MADR v3.0, saksnr) eksplisitt ute av scope. judge-results.json
oppdatert med ferske sec+gov-verdikter.

Gates: validate 239 · kb-eval 15 · kb-update 122 · kb-integrity 192/192.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-20 07:37:03 +02:00
2356d211ee docs(ms-ai-architect): Sesjon 8 SPOR A-resultater i roadmap + STATE
- Roadmap: «Sesjon 8 — RESULTATER» (6×5-vekting konsolidert til kanonisk
  rubrikk; varianttall, antakelse-test, ⚠ flagget risikotabell-divergens
  utenfor scope). Tabellrad 8 markert  FERDIG.
- STATE: S8 ferdig → NESTE = Sesjon 9 (K4+K9 body-cleanup sec+gov, inkl.
  K4-re-judge for security). kb-integrity 181→182.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-20 06:35:59 +02:00
a6bda85c6e fix(ms-ai-architect): Sesjon 8 - konsolider 6×5-vekting til kanonisk rubrikk
Løser K4-bug «DUPLICATION-WITH-CONTRADICTION»: security SKILL.md gjenga en
vekttabell (Identity 20/Network 15/Data 20/Content 20/Compliance 15/Mon 10)
som motstred den kanoniske rubrikken (Compliance 25/Data 20/Identity 20/
Content 15/Network 10/Mon 10) som security-assessment-agent allerede bruker.

- Rubrikk: ny seksjon «Arbeidsbelastnings-profiler (adaptiv vekting)» —
  Standard = kanonisk, + variantene Eksternt eksponert / Persondata-intensiv
  (godkjente retningsdeltaer re-forankret til kanonisk baseline; sum 100 %).
- SKILL.md: fjernet divergerende 3-kolonne vekttabell → peker til rubrikken.
  Beholdt risikoklassifiserings-tabellen (per roadmap).

Antakelse testet: ingen kode/test asserter SKILL.md-vekttallene (agent bruker
rubrikken). Verifisert: validate 239 · kb-integrity 182/182 · kb-eval 15/15 ·
eval security K3 212→203 (pass) / K5 0.2581 uendret / refConsistency 0 mismatch.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-20 06:33:27 +02:00
b32580f7e1 docs(ms-ai-architect): planlegg SPOR A-restsesjoner (S8–S12) + beslutninger
Operatør godkjente alle 4 anbefalinger (2026-06-20). Roadmap «SPOR A —
gjenstående sesjoner»: S8 6×5-vekting · S9 K4+K9 sec+gov · S10 K9 eng+infra ·
S11 K1 · S12 lukk (full LLM-judge + ny baseline). Hver med verifiserbart
kriterium + gated SKILL.md-skriving + LLM-judge for K4/K9/K1. STATE peker på
S8 som START HER. Tasks #28-32. Implementering starter neste sesjon.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-20 06:17:02 +02:00
2d27b3ffbd chore(ms-ai-architect): track STATE.md (avslutter stale polyrepo-gitignore)
STATE.md var gitignored fra polyrepo-splittet (d09e0e9) — den gamle konvensjonen
som den globale ~/.claude-regelen nå eksplisitt overstyrer ("STATE.md er tracked
og committes i hvert repo — ALDRI gitignored"). Uten dette persisteres ikke
sesjonsslutt-staten til Forgejo, hvilket bryter kontinuitetssystemets formål.
Fjernet kun STATE.md fra ignore; REMEMBER/ROADMAP/TODO/*.local.md forblir lokale.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-20 05:49:02 +02:00
797179fc5f docs(ms-ai-architect): Sesjon 7 SPOR A-resultater i roadmap + STATE
Roadmap «Sesjon 7 — RESULTATER» (refTall + dead-path + K5, deterministisk del
FERDIG). STATE peker på NESTE = SPOR A beslutning-gated rester (6×5-vekting,
K9, K4, K1 — krever operatør-input). Telling oppdatert: kb-integrity 181/181,
K5 navngitte per skill.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-20 05:47:26 +02:00
abac74fe67 feat(ms-ai-architect): Sesjon 7 steg 3 - K5 progressive disclosure (3 skills PASS)
Lukker K5-FAIL (navngitte fil-lenker / totale ref-filer ≥ 0,20) ved å følge
infrastructure-forbildet (0,97): full-sti `references/<mappe>/<fil>.md`-pekere
til kjernefiler, ikke bare mappe-refs.

Funn: security + advisor hadde filene navngitt allerede, men som BARE filnavn
uten `references/`-prefiks → ufanget av både eval-regex og kb-integrity (samme
klasse som de døde ref-paths i steg 2). Fiks = konverter til full sti:
- security:  10→16 navngitte (0,16→0,26). Konverterte 5 perf-filer (§3) + owasp (§1).
- advisor:    1→25 navngitte (0,016→0,40). Konverterte ~18 bare-filnavn i Kunnskaps-
              basen + la til model-catalog-2026 og entry-points for copilot-extensi-
              bility/prompt-engineering (40 filer som manglet ALLE navngitte pekere).
- engineering: 0→35 navngitte (0,0→0,23). Genuint 0 før; la til `> Kjernefiler:`-linje
              med 4-6 kuraterte filer per §1-7.

Bivirkning: kb-integrity-checks 115→181 (de nye full-sti-refsene valideres nå),
orphan-warnings 260→223. Verifisert: K5 PASS alle 5 · K3/refTall ikke regredert ·
validate 239 · kb-eval 15 · kb-update 122 · kb-integrity 181/181.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-20 05:44:53 +02:00
3c097f5fb4 fix(ms-ai-architect): Sesjon 7 steg 1+2 - refTall-konsistens + døde ref-paths
Lukker målte eval-FAIL i optimaliseringsfasen (krav 4):

Steg 1 (refTall): engineering agent-orchestration 20→24 (faktisk på disk)
+ total 149→153; governance npsg 29→30; fjerner inkonsistent 24/20-dobbel-
sitering. Verifisert: eval refCountConsistency PASS for alle 5.

Steg 2 (døde ref-paths i governance §4 monitoring-bullets — bare-filnavn,
derfor ufanget av kb-integrity): azure-monitor-ai-services-setup →
azure-monitor-setup-ai-workloads; drift-detection-automated-retraining →
model-performance-drift-detection. Begge fant ekte filer på disk (STATE
flagget kun den ene; den andre er et verifiseringsfunn). Grep: ingen døde igjen.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-19 23:18:45 +02:00
0e0c43dc1a docs(ms-ai-architect): Sesjon 6-resultater i KB-redesign-roadmap
Lag 3 ferdig → alle 6 lag står. Roadmap markerer lag 3 done; gjenstår (operatør prioriterer): optimalisering krav 4, kurs-spor, scheduled deteksjon, low-currency, flere Source-backfills.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-19 22:58:10 +02:00
dab3f1d044 chore(ms-ai-architect): Sesjon 6 bootstrap - **Source:**-header på 3 entydige ref-filer
De 3 ref-filene som siteres av nøyaktig 1 URL med rent topisk treff får sin **Source:**-autoritetsheader (entydig, ingen gjetning): late-chunking-patterns→embeddings-tutorial, ai-red-team-operations-practical→ai-red-team/training, batch-api-usage-optimization→batch-blob-storage. authority_source-dekning 0→0,22%; lag-5 regel 3 nå virksom for disse filene.

Bevisst utelatt: ai-act-annex-iii-checklist.md — dens autoritet er EU-forordningen (deklarert **Hjemmel:** Regulation (EU) 2024/1689), ikke den tangentielle Purview-URLen den siterer. Å sette Purview som autoritet ville vært en gjetning som får regel 3 til å bomme (verifiseringsplikt).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-19 22:58:10 +02:00
e42a84fb7b feat(ms-ai-architect): Sesjon 6 - lag 3 verifisering-INN (authority-binding)
Lag 3 etablerer per-fil autoritetsbinding som mater verify-out regel 3 (autoritets-mismatch — regresjonens rotårsak, inert til nå pga 0% dekning). Designvalg (operatør 2026-06-19): HEADER-AS-TRUTH — en fils **Source:**-header ER den utpekte autoriteten. Gjetter ALDRI fra siterte URLer (251/303 filer siterer 4-10 → gjetning ville fått regel 3 til å bomme + 303 operatør-beslutninger = primær-fallgruven).

- lib/authority.mjs (ren lib, SKRIVER ALDRI; kun read-only kb-headers+url-normalize): resolveAuthority (validert http(s); fri tekst avvist; ikke-MS-autoritet som EU-forordning tillatt), collectDeclaredSources (normalisert Set), markUrlAuthority, authorityCoverage. - build-registry: recomputer authority_source per URL-entry fra headere (ikke carry-over) + dekningslogg. - commands/kb-update.md §4 c1: authority_source=resolveAuthority(fil) → lag-5 c2.

TDD: 11 tester FØR kode inkl. import-invariant + ende-til-ende regel 3 (source_url ≠ header-autoritet → flagged). Tester: validate 239 · kb-update 122 (+11) · kb-eval 15 · kb-integrity 115/115.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-19 22:58:10 +02:00
3ed32c343c docs(ms-ai-architect): Sesjon 5-resultater i KB-redesign-roadmap + STATE
Numerert roadmap (Sesjon 1–5) er ferdig; 6-lags-arkitekturen står strukturelt. STATE peker neste fase på operatør-valg: lag 3 verifisering-INN / optimaliserings-fase (krav 4) / kurs-spor / scheduled deteksjon / low-currency-bøtta.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-19 22:31:40 +02:00
48884b67a6 feat(ms-ai-architect): Sesjon 5 - transformasjonslag (lag 4, doc→KB-fil)
Lag 4 destillerer et hentet Microsoft Learn-dokument til en KB-referansefil. Speiler mønsteret fra decisions-io/verify-out: ren-funksjon-lib + tynn LLM-integrasjon + TDD. lib/transform.mjs SKRIVER ALDRI — returnerer content/verdict/sti; skriving skjer kun via operatør-gate etter lag 5.

Nøkkelfunn/-fiks: gammel prompt-template.md la kilder i en bunn-seksjon, men build-registry/kb-headers.parseSourceHeader skanner kun øverste 500 bytes → authority_source-dekning = 0 %. Lag 4 legger **Source:** i HEADER-blokka — forutsetningen for at lag 3 (fremtidig) kan backfille authority_source og lag-5 regel 3 fyrer.

- buildKbHeader({title,status,category,source,lastUpdated}): Status+Source obligatoriske (kaster ved mangel). - validateKbFile(content) → {valid,missing[]}; bruker parseSourceHeader (én sannhetskilde med build-registry). - buildChange(...): eksplisitt lag-4→lag-5-bro, mater classifyChange. - resolveTargetPath(tax,category,filename): ruter via taksonomi getCategorySkill; null=ukjent→gate.

Prompt: scripts/kb-update/transform-prompt.md (doc→KB; husformat fra prompt-template.md, status-påstander eksplisitte for lag-5-gaten). Wiret i commands/kb-update.md §3.d (ny godkjent URL→fetch→destillér→header→validate→buildChange→lag5→resolveTargetPath→gate→atomisk) + §4.d (oppdateringer passerer validateKbFile). eval.mjs eksporterer nå evalSkill for kriterium-testen.

Kriterium møtt: «regenerer 1 fil → eval-score ≥ baseline» (test-transform-criterion.test.mjs). TDD: 12 lib-tester (inkl. import-invariant: ingen write-utils) + 2 kriterium FØR kode. Tester: validate 239 · kb-update 111 (+16) · kb-eval 15 (+2) · kb-integrity 115/115.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-19 22:31:26 +02:00
94a5d1bb14 feat(ms-ai-architect): Sesjon 5 carry-forward B — datoløse filer → unverified-tier
Rotårsak: en datoløs ref-fil fikk effectiveDate=0000-01-01 (alltid «stale») OG en path-basert prioritet (kunne bli critical) → flommet critical-bøtta og druknet genuint kritiske filer. Fix: ny unverified-tier deklarert i domain-taxonomy.json (lag 0, eneste sannhetskilde for prioritet).

makePriorityFn(tax) tar nå valgfri hasDate (default true → bakoverkompatibelt for eksisterende én-args-kallere); report-changes sender Boolean(fileDate). unverified rangerer sist i sorteringen — manglende dato er metadata-hygiene, ikke currency-hast. Ekte registry: 1 fil skilt ut som Unverified.

TDD: 4 tester FØR kode (test-priority-unverified.test.mjs).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-19 22:31:25 +02:00
97aa5d3378 chore(ms-ai-architect): Sesjon 5 carry-forward A — slett ukonsumert category-skill-map.json
Map-fila divergerte fra disk-sannhet i 4 entries og var ukonsumert av all runtime (verifisert: docs/development.md erklærte allerede taksonomien som eneste kilde; kun README kalte den feilaktig «used by generate-skills»). Operatør-valg 2026-06-19: slett + rydd README. Fjerner en av de divergerende taksonomiene redesignet finnes for å eliminere.

README.md peker nå på scripts/kb-update/data/domain-taxonomy.json via lib/taxonomy.mjs getCategorySkill (disk-sann).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-19 22:30:49 +02:00
3bbcd9168b docs(ms-ai-architect): fold 2 carry-forward cleanups inn i Sesjon 5
Operatør-valg 2026-06-19: category-skill-map-stale (4 entries) + datoløse-fil-
reklassifisering i getFilePriority tas i Sesjon 5 sammen med lag 4, ikke som
egen cleanup. Binding-fakta (disk-sannhet per entry, §151/§152) festet i
roadmap så neste sesjon har presist scope.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-19 22:06:03 +02:00
7bd94e8e27 docs(ms-ai-architect): Sesjon 4-resultater i KB-redesign-roadmap + STATE
Markerer lag 5 (verifisering-ut) ferdig: kriterium møtt (agentic-retrieval-
fixtur → flagged, ikke auto-applied). Roadmap-tabell rad 4  + resultatseksjon.
STATE peker på Sesjon 5 (lag 4 transformasjon). Tester: kb-update 95.

Carry-forward flagget: category-skill-map stale + datoløse-reklassifisering
(operatør avgjør Sesjon 5 vs egen cleanup); authority_source 0 % → regel 3
inert til lag 3 verifisering-INN.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-19 22:02:34 +02:00
6af3624b17 feat(ms-ai-architect): Sesjon 4 - verifisering-ut (lag 5) + adversarial regresjonstest
Lag 5 kjører ETTER transformasjon (lag 4) og FØR en kandidat-endring skrives til
en KB-fil. Den fanger regresjons-klassen: en status-påstand «korrigert» mot en
tilfeldig sitert side og stille auto-applyet (den kjente agentic-retrieval-
regresjonen — hovedkontekst måtte rette manuelt).

Regel (spec §21): status-påstander (GA/preview/versjon/pris) flagges ALLTID for
operatør, aldri auto-applyet — uansett hvor sikker evidensen ser ut.

- lib/verify-out.mjs: ren klassifiserer, null deps (speiler decisions-io).
  detectStatusClaim(text) → {isStatus, kinds}; classifyChange(change) →
  {verdict: flagged|auto-applied, status_claim, reasons}. Tre flag-regler:
  status-gate (§21) · adversarial refutering · autoritets-mismatch (regresjonens
  rotårsak). Konservativ med vilje: ved tvil flagges. SKRIVER ALDRI.
- Fixtur tests/fixtures/kb-update/agentic-retrieval-regression.json: den kjente
  regresjonen (flat «GA» mot nyansert «delvis GA … resten preview»).
- TDD: 13 tester før kode, inkl. import-invariant (ingen write-utils).
- Wiret i kb-update.md §4 c2 (lag 5 mellom identifiser-endring og skriv).

Kriterium møtt: fixtur → flagged:true, ikke auto-applied.
Tester: validate 239 · kb-update 95 (+13) · kb-eval 13 · kb-integrity 115/115.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-19 22:00:36 +02:00
57166e82d6 docs(ms-ai-architect): Sesjon 3-resultater i KB-redesign-roadmap
Per-sesjon-resultater + Sesjon 4-peker (verifisering-ut, lag 5).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-19 21:48:03 +02:00
fe484ec323 feat(ms-ai-architect): Sesjon 3 - decision-ledger (lag 2) + discovery-dedup
Lukker discovery-løkken gjennom operatør-gaten. data/decisions.json er eneste
skrive-autoriserte bro mellom deteksjon og KB/registry; discovery LESER den og
utelater alt operatøren har tatt stilling til.

Dedup-policy = A (operatør-valg): isDecided = enhver ledger-entry (approved/
rejected/pending). Kun helt fraværende URLer re-foreslås.

- lib/decisions-io.mjs: createLedger/load/save(atomisk)/isDecided/recordDecision
  (ren)/filterUndecided. TDD: 10 tester før kode.
- discover-new-urls.mjs leser ledger, filtrerer, rapporterer deduped_by_ledger.
  Importerer ALDRI write-utils (invariant verifisert, 6 guard-tester).
- Gate dokumentert i kb-update.md §3b (eneste skrivevei).
- decisions.json tracket via gitignore-negasjon (som domain-taxonomy.json).

Kriterium møtt: dedup-diff (rejected re-foreslås ikke runde 2).
Tester: validate 239 · kb-update 82 (+16) · kb-eval 13 · kb-integrity 115/115.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-19 21:48:03 +02:00
444b9a375a docs(ms-ai-architect): spor onboarding-mekanisme-redesign som kommende fase
Operatør-flagget kritisk for brukervennlighet (2026-06-19): virksomhetskontekst
må være ambient i enhver interaksjon, overleve oppgraderinger/reinstall, og bære
fritekst utover de formelle spørsmålene. Dagens mekanisme (org/*.md, gitignored,
i plugin-katalog, betinget per-agent-lesing) oppfyller ingen av delene.

Brief, ikke godkjent plan — design godkjennes separat. Egen fil i docs/ per
ingen-lokale-kontinuitetsmekanismer-regelen.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-19 21:48:03 +02:00
17865a251b docs(ms-ai-architect): konkret Sesjon 3-startplan i roadmap (handoff)
7-stegs startplan for lag 2 (decision-ledger data/decisions.json + dedup som
lukker discovery-loopen gjennom operator-gaten), m/ kjorbart kriterium
(discovery 2x re-foreslar ikke rejected URL) og invariant-guard (deteksjon
importerer aldri write-utils). Speiler Sesjon 2-monsteret (ren-funksjon-lib +
tynn script + TDD). Sikrer at neste sesjon starter uten re-utledning.

Inkluderer 2 Sesjon 2-funn som Sesjon 3-kandidater (category-skill-map stale,
datolose-reklassifisering) + eksplisitt ikke-i-scope.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-19 21:18:08 +02:00
c7147618c9 docs(ms-ai-architect): Sesjon 2-resultater + oppdater match-rate/taksonomi-doc
Roadmap: Sesjon 2 RESULTATER (begge kriterier mott - grep TARGET_PREFIXES==0,
foundry not_in_sitemap 38.4%<50%). Binding Sesjon 3-funn: category-skill-map.json
stale i 4 entries (disk er kanon, map ukonsumert av kode), datolose-reklassifisering
utsatt, foundry/openai-tail (63 ikke-probet).

development.md: oppdatert match-rate (~73% av 1343), ai-foundry->foundry-remap,
ny taksonomi-seksjon (lag 0, domain-taxonomy.json eneste sannhetskilde).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-19 21:12:32 +02:00
d3af3f73c8 feat(ms-ai-architect): Sesjon 2 - ai-foundry->foundry registry-remap
Microsoft rebranet Azure AI Foundry -> Microsoft Foundry; doc-URLer flyttet
/azure/ai-foundry/ -> /azure/foundry/. Ny lib/registry-migrate.mjs (rene
funksjoner remapKey + migrateRegistry, 10 enhetstester) + one-shot
migrate-ai-foundry.mjs (backup via lib/backup.mjs + atomisk saveRegistry).

Remap: 164 ai-foundry-URLer -> foundry (2 probede DEAD-sider far eksplisitte
mal: evaluation-evaluators -> built-in-evaluators; agent-service ->
agents/overview). Remappede entries resettes til status=unpolled/lastmod=null
sa neste poll re-evaluerer. 1 kollisjon merget (ref_files unionert).
Schema-migrering: authority_source+course lagt til alle 1343 entries.
Idempotent. Registry er gitignored (regenererbar) - kun kode committes.

kb-update 66 tester gronne, validate 239.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-19 21:09:00 +02:00
eb2a002c2c feat(ms-ai-architect): Sesjon 2 - registry-skjema (authority_source + course reservert)
build-registry leser na **Source:**/**Primary source:**-header via ny
lib/kb-headers.mjs (parseSourceHeader, 7 enhetstester) og logger dekning
(0/N i dag). Hver URL-entry far reserverte felt authority_source:null +
course:null (bakoverkompatibelt). Populering med korrekt semantikk utsatt
til verifiseringslaget (lag 3) - minimal-reservert per operator-valg.

Eksisterende status-felt (poll: tracked/not_in_sitemap/unpolled) urort for
a unnga kollisjon. kb-update 56 tester gronne.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-19 21:05:54 +02:00
8bea3a224a feat(ms-ai-architect): Sesjon 2 lag 0 - konsolider taksonomi til en sannhetskilde
Ny data/domain-taxonomy.json (tracket via gitignore-negasjon; generert
registry/rapporter forblir ignorert) konsoliderer de 4 divergerende
taksonomiene: (a) sitemap-prefikser, (b) discover INCLUDE/EXCLUDE,
(c) category->skill, (d) getFilePriority. lib/taxonomy.mjs laster + kompilerer.

Refaktor: poll-sitemaps, discover-new-urls, report-changes LESER taksonomien
(ingen embeddede kopier). Kriterium grep TARGET_PREFIXES=[ == 0 oppfylt.

Konsolideringsfunn:
- category-skill-map.json stale i 4 entries (copilot-extensibility,
  monitoring-observability, performance-scalability, prompt-engineering ->
  sa engineering; disk sier advisor/governance/security/advisor). DISK er
  kanon. Map-en er ukonsumert av kode (kun README) -> flagget, ikke rort.
- discover fikk poll-paritet (12 -> 18 sitemap-prefikser).
- skill utledes na fra kanonisk category_skill -> ingen divergens (invariant-test).

Adferdsbevarende: 0 mismatch old vs ny prioritetslogikk pa 51 endrede filer;
discover sine hardkodede skill-verdier matchet allerede disk.
Tester: validate 239, kb-update 49 (+7 taksonomi), kb-eval 13 - alle gronne.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-19 21:02:59 +02:00
c40b7a590b docs(ms-ai-architect): konkret Sesjon 2-startplan i roadmap (handoff)
7-stegs startplan for lag 0 (taksonomi-konsolidering) + registry-skjema + ai-foundry poll-fiks, m/ kjorbare kriterier og TDD-krav. Sikrer at neste sesjon starter uten re-utledning (anti-drift).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-19 20:35:05 +02:00
215772df87 feat(ms-ai-architect): Sesjon 1 - skill eval-baseline (rubrikk K1-K9) + ai-foundry probe
Read-only eval-verktoy scripts/kb-eval/eval.mjs (determ. K2/K3/K5/K6 + ref-tall) + operator-gated LLM-judge (judge-prompt.md -> data/judge-results.json) flettet til data/eval-baseline.json. 13 enhetstester (tests/kb-eval/), 42 kb-update-tester gronne. Baseline: K5 3/5 fail, K9 4/5 fail, K4 2/5 fail, ref-tall 2/5 fail; 2 konkrete bugs flagget (security 6x5-vekting-motstrid, governance broken ref-path).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-19 20:26:56 +02:00
bae0977292 docs(ms-ai-architect): KB-mekanisme-redesign spec + roadmap + Sesjon 1-funn
Godkjent 6-lags-arkitektur (taksonomi->deteksjon->decision-ledger->verif-inn->transformasjon->verif-ut+eval). Scope krav 1-4 (currency/completeness/optimalisering); krav 5/6 utsatt til fremtidige faser i roadmapen (ikke forkastet). Inkluderer Sesjon 1 eval-baseline-funn + ai-foundry POLL-FIKS-beslutning for Sesjon 2.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-19 20:26:56 +02:00
e70f76b95e docs(ms-ai-architect): scope-brief for KB-mekanisme-redesign (neste fase)
Operatør har låst scope for neste fase: forbedre kunnskapsmekanismen i denne
pluginen så den står på egne ben (currency + completeness/gap-deteksjon + nye
MS Learn-kurs + skill-livssyklus inkl. merge/slett). Fanger krav + åpne
designvalg + søk-først-første-steg som input til en dedikert
planleggingssesjon. Currency-refresh: Critical/High/Medium ferdig; Low utsatt
bak redesignet.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-19 14:24:13 +02:00
b7d3e6188a docs(ms-ai-architect): STATE + brief — Medium-bøtte FERDIG (070141f)
Sesjonsslutt etter kb-update Medium (74 files). STATE: Medium FERDIG, Low
neste/siste, push parkert. Presisert agentic-retrieval binding-fakta (GA via
REST 2026-04-01 = kun ekstraktiv grounding; answer synthesis + non-minimal
reasoning + multi-turn = preview) + lærdom om lossy binding-fakta til
subagenter. Brief-status oppdatert.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-19 14:03:54 +02:00
070141f06b chore(ms-ai-architect): refresh KB medium-bucket — 74 files [skip-docs]
KB-currency refresh (medium priority, 2026-06-19) via /architect:kb-update.
74 medium-prioritets filer re-verifisert mot Microsoft Learn (MCP) — delegert
til 15 parallelle Opus-subagenter (3 bølger) gruppert etter delt kilde, med
disjunkte fil-sett. Verifisert i hovedkontekst (scope-sjekk + diff-review av
de faktatunge gruppene + tester).

Hovedendringer (faktuelle korreksjoner + currency):
- Azure AI Search semantic ranker: TILGJENGELIG PÅ ALLE TIERS (også Free/Basic
  m/ gratis månedlig kvote) — gammel KB sa feilaktig "kun S1+". Korrigert i
  tier-tabell, anti-patterns og beslutningstabell (azure-ai-search-setup).
- APIM score-threshold = DISTANSE (lavere = strengere): tuning-tabellen i
  rag-caching-optimization hadde retningen baklengs — invertert til korrekt.
- Agentic retrieval GA/preview-nyanse presisert (hovedkontekst-korreksjon mot
  agentic-retrieval-how-to-migrate): GA via REST 2026-04-01 returnerer EKSTRAKTIV
  grounding (references + activity), IKKE syntetiserte svar. Answer synthesis,
  ikke-minimal reasoning effort (LLM query planning) og multi-turn messages
  forblir preview (2026-05-01-preview). Subagent hadde overforenklet til "hele
  kjernepipelinen GA"; rettet i agentic-rag-patterns + citation-tracking.
- Copilot Studio modell-tabeller (platforms/copilot-studio): fjernet Claude Opus
  4.5 + GPT-5.2 (borte fra kilde), lagt til Claude Sonnet 4.6/Opus 4.6 (GA),
  Opus 4.7 + Mistral Medium 3.5 (experimental); GPT-5 Reasoning/Auto = preview;
  A2A GA (apr 2026).
- Computer Use (CUA): Copilot Studio GA 2026-05-07; 4 modeller m/ tier/status
  (OpenAI CUA + Sonnet 4.5 GA, Sonnet 4.6 + Opus 4.6 experimental); 5 credits/
  steg standard, 15 premium; US-only region-krav FJERNET i GA-dok; Cloud PC pool
  + Hosted browser + bring-your-own-machine.
- Azure AI Search REST API-versjoner bumpet: 2025-09-01 -> 2026-04-01 (stabil),
  2025-11-01-preview -> 2026-05-01-preview (hybrid-search, rag-security-rbac,
  chunking).
- Power Automate-integrasjon: trigger "Run a flow from Copilot" -> "When an agent
  calls the flow"; App Service innebygd MCP (preview) lagt til.
- M365 Copilot-manifest v1.26 -> v1.28 (GA, mai) / v1.29 dokumentert (juni);
  "Tenant graph grounding" -> "Work IQ".
- Speech fast transcription 2t/300MB -> 5t/500MB; multilingual 14 -> 15 locales
  (+ pt-BR). Content Understanding reasoning preview -> GA (v1.0, 2025-11-01).
- Security Copilot E5 -> E5+E7. Død Databricks-URL ci-cd/best-practices ->
  ci-cd/flows. Prompt Flow retirement (2027-04-20 -> MAF) notert der den
  presenteres som go-forward. Gateway-topologi-tabell-feil rettet.
- Alle 74 Last updated -> 2026-06-19.

Discovery ikke kjørt (historisk kun Databricks-støy) -> 389-telling uendret,
ingen resync. 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 14:02:18 +02:00
1228b35d81 docs(ms-ai-architect): kb-update brief — medium/low sesjonsplan + delegerings-metode
Oppdatert run-brief etter at critical (41b390b) + high (25bcb74) er ferdige:
- Status: critical+high FERDIG; medium (~74) + low (~51) PLANLAGT i nye sesjoner.
- Ny seksjon «Metode (evidensbasert): DELEGER store bøtter» — dokumenterer det
  beviste mønsteret fra high-bøtta: grupperte Opus-subagenter (~6 filer/gruppe,
  delt kilde), subagent-kontrakt (verifiser mot kilde, aldri commit), og
  hovedkontekst-verifisering etter (git-diff + validate + kb-integrity + gitleaks
  + single-commit). Erstatter den opprinnelige «main-context»-antakelsen, som ikke
  skalerer (Learn-sider 50KB+, medium+low = ~268 unike fetches).
- Sesjonsplan M (medium) + L (low) med fil-/fetch-/gruppe-estimater.
- Antall subagenter ikke en begrensning (operatør-godkjent) — split styres av
  hovedkontekstens verifiseringslast, ikke agent-antall.
- Re-poll FØRST hver sesjon (klassifisering drifter med fil-alder).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-19 13:29:35 +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
41b390b38d chore(ms-ai-architect): refresh KB critical-bucket — 15 files [skip-docs]
KB-currency refresh (critical priority, 2026-06-19) via /architect:kb-update.
15 critical cost/arkitektur-filer re-verifisert mot Microsoft Learn (MCP).

Hovedendringer:
- Azure AI Search Serverless (Preview) prismodell (rag-cost, rag-query,
  vector-storage, rag-enterprise-scale)
- Agentic retrieval GA-split (2026-04-01 REST GA, portal preview) + Foundry IQ
- AI gateway multi-provider (Anthropic v2 / Google Vertex), unified model API
  (preview), Foundry-integrasjon (enterprise-arch, ai-services-cost,
  multi-model, cost-tracking)
- FOCUS-skjema + Cost Mgmt -> ADLS Gen2 -> Fabric -> Power BI pipeline
  (cost-management, cost-allocation)
- FinOps hub AI-agent via Azure MCP / Copilot Studio (budget-forecasting)
- OTel trace-based sampling for logs (observability)
- Korreksjoner: semantic-cache score-threshold = AVSTAND (0.15, ikke 0.85
  cosine-likhet); llm-emit-token-metric maks 5 custom dimensions;
  Foundry RBAC-renames (Owner/Contributor = kun mgmt); Researcher/Analyst er
  ikke agenter
- Alle 15 Last updated -> 2026-06-19

High-bucket (49 filer) UTSATT til egen sesjon (operatoer-valg).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-19 06:22:48 +02:00
1ae5655156 docs(ms-ai-architect): run-brief for utsatt /architect:kb-update apply
Eneste gjenstående post etter v1.16.0 (audit #5–#9 komplett). Fokusert
run-plan som komplementerer commands/kb-update.md med beslutninger/kontekst
spesifikt for denne kjøringen: hvorfor fersk sesjon (kjører i hovedkontekst,
~80 fetches uten subagent-isolasjon), anbefalt kjøring, beslutningspunkter,
push-vindu-timing, post-run telling-resync, og testbar verifisering.

Pekt til fra STATE.md (gitignored). Per kontinuitets-regel: planer/briefer
bor i docs/ ved siden av staten.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-18 21:18:18 +02:00
dc55ffa902 feat(ms-ai-architect): #9 v1.16.0 — currency + privat-sektor-paritets-release
Siste audit-item (#9). Versjonsbump + telling-/konsistens-synk for hele
audit-syklusen (#5–#8 currency + #7 routing/privat-sektor-paritet). Ingen
ny funksjonalitet i denne commiten — kun release-deklarasjoner og
count-konsistens. Innholdet ble levert i e406ef3 og forutgående commits.

Versjonsdeklarasjoner (1.15.0 → 1.16.0):
- .claude-plugin/plugin.json
- README.md version-badge + ny version-history-rad (currency-temaer,
  4 nye kommandoer, regulatorisk/plattform/kostnad/sikkerhet-currency)
- CHANGELOG.md ny [1.16.0]-entry (Added/Changed/Notes); historiske
  entries urørt
- docs/playground.md doc-stamp (tittel + Validering-header). Playground-
  KODEN er uendret siden v1.15.0 → kun stamp bumpet, screenshots IKKE
  regenerert (forblir playground/screenshots/v1.15.0/)

Telling-/konsistens-synk (verifisert ved faktisk fil-telling = 389):
- README docs-badge 387 → 389; README KB-tabell + per-skill-seksjon
  (ms-ai-security 60 → 62); README prosa «387/387+» → «389/389+»
- CLAUDE.md skill-tabell ms-ai-security 60 → 62 (var stale etter #8b)
- SKILL.md cost-optimization subdir-telling 21 → 22 (korrigert pre-
  eksisterende drift; faktisk filtelling 22)

Kommando-delta verifisert via git: 25 (v1.15.0) → 29 (v1.16.0). 4 nye:
businesscase + anskaffelse (#7c), design + vendor (#7d).

Tester: validate-plugin 239 PASS / 0 FAIL / 0 WARN · kb-integrity 115/115
(262 pre-eksisterende orphan-warnings, uendret) · run-e2e alle suiter
(security/cost/summary/ros/ai-act + 6 playground-suiter + kb-update) PASS.

Audit-backlog #5–#9 nå komplett. FLAGG: `/architect:kb-update` apply
(~190 filer/~80 fetches) forblir UTSATT — krever egen bekreftelse.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-18 20:52:54 +02:00
e406ef395e feat(ms-ai-architect): #8b currency M-items — Defender AI threat protection + OWASP LLM04/06/08/09 + M365 E7/Agent 365 + Foundry Local air-gapped
Phase B (M-items) av #8 currency-rest. Nytt innhold, verifisert mot
Microsoft Learn + OWASP GenAI 2026-06-18 (tre research-subagenter).
Begge nye KB-filer wiret i SKILL.md (de-orphan bekreftet: kb-integrity
115/115, orphan-warnings uendret 262).

Nye KB-filer (ms-ai-security/references/ai-security-engineering/):
- owasp-llm-top10-azure-mitigations.md — konsolidert dekning av de fire
  OWASP 2025-kategoriene som manglet referanse i SKILL.md-mappingen
  (LLM04 Data/Model Poisoning, LLM06 Excessive Agency, LLM08 Vector/
  Embedding Weaknesses, LLM09 Misinformation) med verifiserte Azure-tiltak.
  OWASP-side 404 for LLM06/08/09 → definisjoner kryssverifisert, merket.
- defender-threat-protection-ai-services.md — Defender for Cloud «AI threat
  protection» (gjeldende navn; plan «Defender for AI Services»). GA for
  AI applications, Preview for AI agents (fra 2026-02-02). Varselliste m/
  Alert ID + MITRE-taktikk, Prompt Shields-integrasjon, prising (75B-token
  trial). KRITISK: ikke tilgjengelig i Azure Government (norsk off. sektor).

SKILL.md (ms-ai-security):
- Fylte de 4 «—»-radene LLM04/06/08/09 → owasp-llm-top10-azure-mitigations.md.
- La til Defender-referanse (kjøretids-trusseldeteksjon) + Government-forbehold.
- Fil-telling ai-security-engineering 17→22 (17 var stale; faktisk 20 + 2 nye).

licensing-matrix.md (ms-ai-advisor):
- Ny rad «Microsoft 365 E7» i master-matrisen + dedikert E7/Agent 365-seksjon.
  E7 (GA 2026-05-01) bundler E5 + M365 Copilot + Agent 365 + Entra Suite.
  Agent 365 = IT-admin kontrollplan (registry/Entra Agent ID/Defender/Purview).
  VERIFISERT at begge er reelle SKU-er. Priser (~$99 E7 / ~$15 Agent 365) er
  community-/partnerkilder → eksplisitt merket uverifisert.

disconnected-ai-scenarios.md (ms-ai-infrastructure):
- Ny seksjon «Foundry Local — generativt lokalt og air-gapped». To produkter:
  on-device (offline etter nedlasting, ingen Azure-sub) + on Azure Local
  (Arc/Kubernetes, Preview). Air-gapped/disconnected støttet fra juni 2026
  (Preview): edgeartifacts-registry, expansion packs, lokal AD, ingen
  telemetri. Del av Microsoft Sovereign Private Cloud — relevant for norsk
  suverenitet.

Tester: validate-plugin 239 PASS / 0 FAIL / 0 WARN · kb-integrity 115/115
(262 pre-eksisterende orphan-warnings, uendret) · run-e2e alle suiter PASS.

#8 nå komplett (S-bannere #8a + M-items #8b). Neste: #9 v1.16.0 release.
FLAGG: `/architect:kb-update` apply forblir UTSATT (krever egen bekreftelse).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-18 20:32:43 +02:00
52ba6daf67 fix(ms-ai-architect): #8a currency S-bannere — Prompt Flow retirement, CUA GA, agentic retrieval GA-split, EØS + EDPB 28/2024
Phase A av #8 currency-rest. Hver faktapåstand verifisert mot kilde FØR
skriving (Microsoft Learn microsoft_docs_fetch + offisielle EU/norske kilder,
2026-06-18). To research-subagenter brukt til parallell faktaverifisering.

Prompt Flow retirement (banner i 5 filer):
- Verifisert verbatim mot Microsoft Learn: Prompt Flow i BÅDE Microsoft Foundry
  og Azure Machine Learning pensjoneres 2027-04-20; migrer til Microsoft Agent
  Framework (MAF). Container images får ikke lenger oppdateringer.
- Toppbanner: prompt-flow-production-deployment.md, genaiops-llm-specific-practices.md.
- Kontekstuelle inline-flagg: rag-core-patterns.md (bullet + produksjonstabell),
  rag-evaluation-frameworks.md (verktøytabell), azure-ai-search-setup.md (PF-seksjon),
  agentic-rag-patterns.md (Foundry-integrasjonsrad).

Copilot Studio Computer Use / CUA (copilot-studio.md):
- Preview -> GA 7. mai 2026. KORRIGERT fra intern feildato 2026-05-13 (verifisert
  mot Power Platform 2026 wave 1 release plan + What's new).
- Geo presisert: GA i kommersielle miljøer; IKKE GCC/GCC High. Eksakt regionsliste
  ikke offentlig verifiserbar -> merket uverifisert (verifiseringsplikt).
- Fjernet nå-utdatert "Velg RPA når: kun GA-features tillatt"-begrunnelse.

Azure AI Search agentic retrieval (agentic-rag-patterns.md):
- Preview -> DELVIS GA. Minimal/ekstraktiv retrieval er GA (REST 2026-04-01);
  LLM query planning + answer synthesis er fortsatt preview (2026-05-01-preview).
- "Single index"-begrensning -> multi-source via knowledge bases (kun GA-kildetyper:
  searchIndex, azureBlob, indexedOneLake, web; SharePoint/SQL/Fabric/MCP preview).

EU AI Act EØS-status (ai-act-compliance-guide.md):
- Korrigert feilpåstand "direkte gjeldende ... sommeren 2026". AI Act er IKKE
  formelt EØS-innlemmet per juni 2026; KI-loven ikke vedtatt av Stortinget
  (høringsfrist sept. 2025; ikrafttredelse politisk målsatt sensommer 2026).

EDPB Opinion 28/2024 (gdpr-compliance-ai-systems.md, 3 ankre):
- Nyanserer "anonymisert = utenfor GDPR-scope". Må vurderes case-by-case:
  modell er kun anonym når både direkte-ekstraksjon og query-baserte midler gir
  ubetydelig re-identifiseringsrisiko (jf. fortalepunkt 26). Tabellrad endret
  fra "Nei" til "Betinget".

Allerede gjort i tidligere faser (re-verifisert, ingen edit nødvendig):
MAF-banner (semantic-kernel-agents-implementation.md), Omnibus-note
(ai-act-assessor.md), NSM Grunnprinsipper v2.1, A2A v1.0 + Signed Agent Cards
(egen fil agent-to-agent-a2a-protocol.md). A2A v1.0.1 er immateriell patch.

Tester: validate-plugin 239 PASS / 0 FAIL / 0 WARN · kb-integrity 115/115
(262 orphan-warnings er pre-eksisterende ms-ai-security-backlog, urørt).

Gjenstår i #8: M-items (OWASP LLM04/06/08/09, Defender threat protection,
Foundry Local air-gapped, M365 E7+Agent365) + SKILL.md de-orphan -> deretter #9 release.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-18 18:53:02 +02:00
6e1fc6d37c fix(ms-ai-architect): #7d privat-sektor-paritet — sektor-parametrisering + onboarding-forgrening + 2 nye kommandoer (audit §5)
Audit §161-185: kjerne-dybden var sektor-agnostisk, men entry-points/kalibrering/
navigasjon var systematisk offentlig-sektor-først. Operatørvalg: full audit (kjerne
+ begge nye kommandoer). Telling 27→29 kommandoer. Ingen versjonsbump (→ #9-release).

Mekanisk kjerne:
- Sektor parametrisert i 6 kmd (classify/dpia/ros/review default nøytral m/offentlig-
  spesialisering; utredning beholder utredningsinstruksen + peker privat til :design;
  review får privat/regulert-gren DORA/Finanstilsynet). frontmatter-desc for review
  synket i CLAUDE/help.
- FRIA-scope KORRIGERT (verifisert mot AI Act Art. 27(1), WebSearch 2026-06-18):
  obligatorisk for (a) offentligrettslige organer, (b) private som leverer offentlige
  tjenester, (c) private deployere i kredittscoring (UNNTATT svindeldeteksjon) +
  livs-/helseforsikringsprising. Ikke lenger feilrådet som rent offentlig-verktøy.
- onboarding-agent forgrenet: sektortype (offentlig/privat) → private sektor-valg
  + privat reg-sett (DORA/Finansforetaksloven/IKT-forskrift/Verdipapirhandelloven);
  stiller ALDRI private om Offentleglova/Arkivloven. Sektortype skrevet til org-fil.
- requirements detekterer finans → DORA/Finanstilsynet (betinget §3-sjekkliste).

Nye kommandoer (refererer kun eksisterende kjerne-KB → ingen nye orphans):
- /architect:design — sektor-nøytralt Solution Architecture Document (mellombane
  mellom samtale og full utredning).
- /architect:vendor — tredjeparts/SaaS due diligence (dataresidens, sub-prosessorer,
  DPA, Schrems II/EDPB-TIA, AI Act-deployer).

Navigasjon/wiring:
- README: privat-enterprise-arbeidsflyt (eksempel 5) + DORA/FRIA-nyanse + design/vendor
  i tabeller + "Beyond Public Sector"-note.
- help.md: privat-bane i arbeidsflyt + design/vendor + manglende kb-update lagt til.
- CLAUDE.md-tabell: design/vendor + synket review/frimpact-desc.
- playground: katalog-oppføringer (produces_report:false), SHARED.sector utvidet med
  private sektorer, 2 privat-seeds (fraud-detection FRIA-unntatt + kredittscoring
  FRIA-pliktig). Telling 25/27→29 i playground/docs/README/test.

Tester: validate 239 PASS · playground v3 223 static / 390 kombinert · kb-integrity
115/115 · run-e2e alle suiter — 0 FAIL. CHANGELOG-«24 commands» bevart (historiske notater).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-18 18:27:51 +02:00
20c1be6531 fix(ms-ai-architect): #7c wire foreldreløse deliverable-KB — nye kommandoer businesscase + anskaffelse (I)
Audit P2 I. 6 foreldreløse deliverable-KB-er surfaces nå (var skrevet/betalt for, ikke nåbare).
Operatørvalg: dedikerte kommandoer (audit-primær), ikke kun dokumentasjon. Telling 25→27 kommandoer.

Nye kommandoer:
- businesscase.md → samfunnsokonomisk-analyse-nnv.md + gevinstrealisering-dfo-methodology.md (NNV + DFØ 5-stegs gevinst)
- anskaffelse.md → anskaffelser-ai-procurement-framework.md (kravspec, leverandørevaluering, terskelverdi)

Utvidet eksisterende:
- compare.md: weighted multi-kriterie-modus (alternativanalyse-methodology.md) ved 3+ alternativer / --weighted
- cost.md: kapasitet-/gjennomførbarhetssteg (gpu-compute-sizing.md + capacity-feasibility-benchmarks.md) ved --capacity

De-orphaning (kb-integrity måler orphan via SKILL.md/agents, ikke kommandofiler):
- ms-ai-governance/SKILL.md: ny seksjon 1.4 Beslutningsgrunnlag (3 referanser)
- ms-ai-advisor/SKILL.md: alternativanalyse + capacity-feasibility
- ms-ai-security/SKILL.md: gpu-compute-sizing
→ alle 6 de-orphaned (kb-integrity warnings 268→262)

Registrering/docs: help.md + README + CLAUDE.md-tabell + playground-katalog (2 produces_report:false-
oppføringer, gjenbruker ikke 14-parser/17-renderer-kanonen) + docs/playground.md (25→27) + test 25→27.

validate 231 PASS · playground v3 221 PASS · e2e alle suiter · kb-integrity 115/115 — 0 FAIL overalt.

NB: README:358/418/427 har pre-eksisterende «24 commands»-drift (uavhengig av denne endringen) — flagget for #8.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-18 17:50:06 +02:00
6bcd028210 fix(ms-ai-architect): #7b DPIA cross-border — EDPB seks-stegs-TIA + CLOUD Act/FISA-restanalyse (H)
Audit P2 H. DPIA-agenten navngav Schrems II-risikoen (risiko 7) men kunne ikke vurdere den
— ingen sti til TIA-metodikk. Nå nåbar, og ny verifisert metodikk forfattet i KB.

- data-residency-audit-monitoring.md: Schrems II-stubb (3 punkter) utvidet til full EDPB
  seks-stegs-TIA (Recommendations 01/2020) + CLOUD Act/FISA 702/EO 12333-restanalyse
  + EO 14086/DPF-nåstatus + tekniske tilleggstiltak (CMK/Customer Lockbox/Confidential
  Computing). Korrigerer feilantakelsen «EUDB eliminerer alle overføringer». Last updated 2026-05→06.
- dpia-agent.md: betinget cross-border-ruting + obligatorisk TIA-prosedyre under risiko 7
  (operasjonaliserer DPO-svaret «kan amerikanske myndigheter nå disse dataene?»)
- dpia.md: betinget KB i delegeringsprompt; CLAUDE.md: dpia-agent rutingsindeks oppdatert

Verifisert 2026-06-18 (WebSearch, juridiske primærkilder):
- EDPB Recommendations 01/2020 seks-stegs-metodikk + tiltaks-rangering (tekniske sterkest)
- DPF gyldig gjeldende rett; Latombe avvist av Underretten 2025-09-03 (T-553/23),
  anket 2025-10-31 → C-703/25 P (ingen berammet dato per mai 2026)
- FISA §702: statutt-utløp 2026-04-20 + 45-dagers extension, reautorisasjon under forhandling
  juni 2026; innsamlingsautoritet består via FISA-domstols-sertifiseringer (mars 2026) til mars 2027
- CLOUD Act uendret av DPF; EUDB fjerner ikke tredjelands tilgangsmulighet

validate-plugin: 223 PASS

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-18 17:29:57 +02:00
9a166f93bb fix(ms-ai-architect): #7a ruting — RAG/MLOps-KB-ruting (F) + forson ROS-last-kontrakt (G)
Audit P2 §94-118. Latent engineering-dybde gjøres nåbar; determinisme-løftet repareres.

F (ruting til RAG/MLOps-KB): betinget, navngitt Read-ruting (samme mønster som security/cost):
- architecture-review-agent.md: RAG-arkitektur + MLOps/GenAIOps lagt i domene-spesifikk last-blokk
- research-agent.md: ny lokal KB-baseline for RAG/MLOps-temaer — leses som hypotese, MCP er fasit, avvik flagges
- poc.md: betinget steg 3b — RAG/MLOps-kjernefiler forankrer scope + suksesskriterier

G (forson ROS-rutingsmotsetning): ett eksplisitt last-kontrakt forsont på tvers av tre kilder.
Tidligere: CLAUDE.md «max 3» vs agent 11 filer flatt vs ros.md 5 → ikke-deterministisk lasting.
Nå: kjerne (alltid, 4: trusselbibliotek/rubrikker/metodikk/mal) + betinget på trigger
(sektor/MAESTRO/DPIA-integrasjon/AI Act). Reflektert i:
- ros-analysis-agent.md: «Knowledge Base References» omskrevet til last-kontrakt + AI Act-blokk + «Load KB»-steg bundet til den
- CLAUDE.md: header «typisk 3 kjernefiler»; ROS dokumentert som unntak med 4 kjerne + betinget
- ros.md: delegeringsprompt skiller kjerne/betinget per kontrakt

validate-plugin: 223 PASS

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-18 17:22:48 +02:00