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:
parent
6b3c44adc3
commit
c1f75f9c78
6 changed files with 187 additions and 17 deletions
|
|
@ -3,42 +3,43 @@
|
|||
"rubric": "scripts/kb-eval/judge-prompt.md",
|
||||
"judge_model": "opus",
|
||||
"method": "5 parallel adversarial LLM-judges, one per skill",
|
||||
"note": "K1 precision is PROVISIONAL — operator must curate the final 20 trigger-prompts per skill before K1 is authoritative."
|
||||
"note": "K1 is AUTHORITATIVE as of S11 — measured by blinded judges (one per skill) against the operator-curated 20-prompt set in data/k1-trigger-prompts.json. K4/K7/K8/K9 carry prior cold-re-judge provenance inline."
|
||||
},
|
||||
"ms-ai-advisor": {
|
||||
"K1_triggerPrecision": { "provisional": true, "precision": 1.0, "notes": "20/20 from description. BORDERLINE: cost/diagram/DPIA/AI-Act prompts are MS-AI-adjacent; broad 'Microsoft AI architecture' phrase risks over-triggering vs sibling commands. Operator must curate + stress-test sibling overlap." },
|
||||
"_updated": "S11 (2026-06-20) — K1 authoritative (blinded judge vs curated 20-set); description tightened against over-trigging",
|
||||
"K1_triggerPrecision": { "provisional": false, "inDomainHitRate": 1.0, "outDomainFalsePositiveRate": 0.0, "precision": 1.0, "pass": true, "misclassified": [], "notes": "S11 authoritative: blinded judge vs operator-curated 20-set. 10/10 in-domain hits, 0/10 false positives. Over-trigging fix VALIDATED — judge cited the new 'NOT for build/secure/operate/legally-assess' exclusion when rejecting all four sibling-domain prompts (engineering/security/governance/infra)." },
|
||||
"K4_noDuplication": { "score": 5, "pass": true, "evidence": "Body = persona + 7-phase workflow + ref-index; no ref detail reproduced. Only internal MCP-table redundancy (SKILL-internal, not SKILL<->ref)." },
|
||||
"K7_imperativeStyle": { "ratio": 1.0, "pass": true, "notes": "10/10 sampled instruction sentences imperative." },
|
||||
"K8_sourceCitation": { "ratio": 0.8, "pass": true, "notes": "AT THRESHOLD: architecture/decision-trees.md lacks dated header (footer source only). Add dated header to harden margin." },
|
||||
"K9_noTimeSensitive": { "pass": true, "findings": ["Only meta-instructions (preview/GA as dynamic-to-verify) + stable identifiers (M365 SKUs, MADR v3.0). No stale-able product claim in body."] }
|
||||
},
|
||||
"ms-ai-engineering": {
|
||||
"_updated": "S10 (2026-06-20) — K9-destale re-judge (cold)",
|
||||
"K1_triggerPrecision": { "provisional": true, "precision": 1.0, "notes": "20/20 from description (cold re-judge). Clean sibling separation (governance/security/cost/advisor/infra not triggered). Operator must curate final 20." },
|
||||
"_updated": "S11 (2026-06-20) — K1 authoritative (blinded judge vs curated 20-set); K9 prior S10",
|
||||
"K1_triggerPrecision": { "provisional": false, "inDomainHitRate": 1.0, "outDomainFalsePositiveRate": 0.0, "precision": 1.0, "pass": true, "misclassified": [], "notes": "S11 authoritative: blinded judge vs operator-curated 20-set. 10/10 in-domain hits, 0/10 false positives. Clean sibling separation (advisor/governance/security/infra/off-topic not triggered)." },
|
||||
"K4_noDuplication": { "score": 5, "pass": true, "evidence": "S10 re-judge: 7 section intros are orientation prose routing to references/<domain>/ + named kjernefiler; the two body tables (RAG-vs-finetuning, MLOps test-types) have no verbatim row-match in refs. No duplication." },
|
||||
"K7_imperativeStyle": { "ratio": 1.0, "pass": true, "notes": "10/10 sampled instruction sentences imperative." },
|
||||
"K8_sourceCitation": { "ratio": 1.0, "pass": true, "notes": "5/5 dated headers across 5 domains; format inconsistent (EN/NO, month vs day granularity)." },
|
||||
"K9_noTimeSensitive": { "pass": true, "findings": [] }
|
||||
},
|
||||
"ms-ai-governance": {
|
||||
"_updated": "S9 (2026-06-20) — K4+K9 body-cleanup re-judge",
|
||||
"K1_triggerPrecision": { "provisional": true, "precision": 0.85, "notes": "17/20 (7/10 in-domain hits, 10/10 out-of-domain correct). RECALL GAP: description has no Schrems II/dataoverføring/TIA trigger though §2.3 covers it; GDPR + 'consult Datatilsynet' also under-represented vs body scope. Operator must curate + add Schrems II trigger (S11)." },
|
||||
"_updated": "S11 (2026-06-20) — K1 authoritative (blinded judge vs curated 20-set); Schrems II trigger added; K4+K9 prior S9",
|
||||
"K1_triggerPrecision": { "provisional": false, "inDomainHitRate": 1.0, "outDomainFalsePositiveRate": 0.0, "precision": 1.0, "pass": true, "misclassified": [], "notes": "S11 authoritative: blinded judge vs operator-curated 20-set. 10/10 in-domain hits, 0/10 false positives (was 0.85). Schrems II recall fix VALIDATED — judge triggered on Schrems II / overføring-til-tredjeland prompts via the two new trigger phrases." },
|
||||
"K4_noDuplication": { "score": 5, "pass": true, "evidence": "S9 FIX: §6.2 now a compact decision-flow with explicit pointers ('[full forbudsliste i ai-act-classification-methodology.md]', '[åtte kategorier ...]') — Art.5 + Annex III lists no longer enumerated in body; they live only in references/responsible-ai/ai-act-classification-methodology.md. §2.1 is the single 4-level overview table ('ikke gjenta dem her'). §6.1 (DPIA tree), §1.2 (Digdir table), §6.3/§6.4 are routing/orientation, not verbatim copies of ref files." },
|
||||
"K7_imperativeStyle": { "ratio": 1.0, "pass": true, "notes": "10/10 sampled instruction sentences imperative/infinitive." },
|
||||
"K8_sourceCitation": { "ratio": 1.0, "pass": true, "notes": "5/5 sampled refs carry Last updated + Status + Category headers." },
|
||||
"K9_noTimeSensitive": { "pass": true, "findings": [] }
|
||||
},
|
||||
"ms-ai-infrastructure": {
|
||||
"_updated": "S10 (2026-06-20) — K9-destale re-judge (cold)",
|
||||
"K1_triggerPrecision": { "provisional": true, "precision": 1.0, "notes": "20/20 from description (cold). Sharply scoped via explicit 'Triggers on:' phrases; borderline negatives (plain RAG vs hybrid-RAG; MLOps vs infra) resolve correctly. Operator must curate final 20." },
|
||||
"_updated": "S11 (2026-06-20) — K1 authoritative (blinded judge vs curated 20-set); K9 prior S10",
|
||||
"K1_triggerPrecision": { "provisional": false, "inDomainHitRate": 1.0, "outDomainFalsePositiveRate": 0.0, "precision": 1.0, "pass": true, "misclassified": [], "notes": "S11 authoritative: blinded judge vs operator-curated 20-set. 10/10 in-domain hits, 0/10 false positives. BCDR/edge/sovereign/hybrid in-domain all triggered; engineering/governance/security/advisor/cost correctly excluded." },
|
||||
"K4_noDuplication": { "score": 5, "pass": true, "evidence": "S10 re-judge: consistent summary+pointer pattern; §1.2 RTO/RPO now ~2 lines delegating to bcdr/rto-rpo-planning-ai-services.md (265 lines). SLA table replaced by relative-guidance prose. No procedural duplication." },
|
||||
"K7_imperativeStyle": { "ratio": 1.0, "pass": true, "notes": "10/10 sampled instruction sentences imperative/infinitive." },
|
||||
"K8_sourceCitation": { "ratio": 1.0, "pass": true, "notes": "5/5 'Last updated: 2026-02' + Status; no source-URL on header line." },
|
||||
"K9_noTimeSensitive": { "pass": true, "findings": [] }
|
||||
},
|
||||
"ms-ai-security": {
|
||||
"_updated": "S9 (2026-06-20) — K4+K9 body-cleanup; K4 re-judged after S8 weighting fix + S9 risk-table/P10P50P90 fixes",
|
||||
"K1_triggerPrecision": { "provisional": true, "precision": 1.0, "notes": "20/20 from description; clean sibling separation (governance/engineering/advisor/infrastructure/license not triggered). Borderline: generic latency/perf prompts overlap engineering, but description explicitly claims 'performance optimization for AI'. Operator must curate final 20." },
|
||||
"_updated": "S11 (2026-06-20) — K1 authoritative (blinded judge vs curated 20-set); K4+K9 prior S9",
|
||||
"K1_triggerPrecision": { "provisional": false, "inDomainHitRate": 1.0, "outDomainFalsePositiveRate": 0.0, "precision": 1.0, "pass": true, "misclassified": [], "notes": "S11 authoritative: blinded judge vs operator-curated 20-set. 10/10 in-domain hits, 0/10 false positives. Borderline content-safety/TCO correctly included; sibling governance/engineering/infra/advisor correctly excluded." },
|
||||
"K4_noDuplication": { "score": 5, "pass": true, "evidence": "S9 re-judge (cold, post-fix): (a) 6x5 weights — body L50 routes to security-scoring-rubrics-6x5.md ('Ikke dupliser vekttallene her'), no body numbers; (b) risk-classification thresholds — body L54 routes to same rubric ('Ikke dupliser terskeltallene her'), canonical mapping incl. 1.00-1.49 Uakseptabel lives only in rubric; (c) P10/P50/P90 — body L94 affirms 'per komponent (ikke flat multiplikator)' owned by deterministic-cost-calculation-model.md §3, concrete factors only in cost model — body affirms, does not contradict; (d) OWASP table + §3 perf are routing/orientation with explicit volatile-numbers-live-in-refs note. No duplication/contradiction." },
|
||||
"K7_imperativeStyle": { "ratio": 1.0, "pass": true, "notes": "10/10 sampled instruction sentences imperative/infinitive." },
|
||||
"K8_sourceCitation": { "ratio": 1.0, "pass": true, "notes": "5/5 dated headers + Status; 3/5 also carry Verified: MCP <date>." },
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue