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
This commit is contained in:
Kjell Tore Guttormsen 2026-06-20 10:00:47 +02:00
commit c1f75f9c78
6 changed files with 187 additions and 17 deletions

View file

@ -15,9 +15,15 @@ Du er en skill-kvalitets-dommer (LLM-as-judge) for ms-ai-architect. Vurder skill
Les SKILL.md i sin helhet. For K8: sample 5 tilfeldige referansefiler og les headeren deres.
Vær streng og adversariell — ikke ros, ikke pynt på tall.
- **K1 trigger-presisjon [PROVISIONAL]:** generer 10 in-domain + 10 out-of-domain prompts for
domenet. For hver, avgjør KUN fra `description`-feltet om skillen burde trigge. Rapporter
provisional precision (korrekte/20). FLAGG eksplisitt at operatør må kuratere de endelige 20.
- **K1 trigger-presisjon:** last det operatør-kuraterte settet for `<NAME>` fra
`<ROOT>/scripts/kb-eval/data/k1-trigger-prompts.json` (nøkkel `<NAME>`: `in_domain` [10] +
`out_of_domain` [10]). IKKE generer egne prompts. For HVER prompt, avgjør KUN fra `description`-feltet
i `<PATH>` om skillen burde trigge (ignorer body, ref-filer og intent). Scoring: en `in_domain`-prompt
er en TREFF hvis den trigger; en `out_of_domain`-prompt er en FALSK POSITIV hvis den trigger. Rapporter
`inDomainHitRate` (treff/10), `outDomainFalsePositiveRate` (falske positive/10), samlet `precision`
(korrekte/20) og `misclassified` (list de feilklassifiserte promptene + hvorfor). Settet er
operatør-kuratert → sett `provisional=false`. pass = `inDomainHitRate ≥ 0.90` OG
`outDomainFalsePositiveRate ≤ 0.10`.
- **K4 ingen duplisering (SKILL.md ↔ ref-filer):** score 15 (5 = ingen duplisering). Finnes detalj
i SKILL.md body som dupliserer ref-filer? Gi konkret eksempel. pass = score ≥ 4.
- **K7 imperativ/instruksjons-stil:** sample 10 instruksjonssetninger fra body; andel i
@ -34,5 +40,5 @@ Vær streng og adversariell — ikke ros, ikke pynt på tall.
RETURNER KUN dette JSON-objektet (ingen annen tekst, ingen markdown-fence):
```
{"skill":"<NAME>","K1_triggerPrecision":{"provisional":true,"precision":0.0,"notes":""},"K4_noDuplication":{"score":0,"pass":false,"evidence":""},"K7_imperativeStyle":{"ratio":0.0,"pass":false,"notes":""},"K8_sourceCitation":{"ratio":0.0,"pass":false,"sampledFiles":[],"notes":""},"K9_noTimeSensitive":{"pass":false,"findings":[]}}
{"skill":"<NAME>","K1_triggerPrecision":{"provisional":false,"inDomainHitRate":0.0,"outDomainFalsePositiveRate":0.0,"precision":0.0,"pass":false,"misclassified":[],"notes":""},"K4_noDuplication":{"score":0,"pass":false,"evidence":""},"K7_imperativeStyle":{"ratio":0.0,"pass":false,"notes":""},"K8_sourceCitation":{"ratio":0.0,"pass":false,"sampledFiles":[],"notes":""},"K9_noTimeSensitive":{"pass":false,"findings":[]}}
```