From 09bc99eec8be73a78b6405eafec969f418b31bb1 Mon Sep 17 00:00:00 2001 From: Kjell Tore Guttormsen Date: Tue, 30 Jun 2026 21:33:45 +0200 Subject: [PATCH] =?UTF-8?q?feat(ms-ai-architect):=20G1=20LUKKET=20?= =?UTF-8?q?=E2=80=94=20v3.1=20judge=20M=C3=85LT=20+=20ADOPTERT=20(P100/R10?= =?UTF-8?q?0/0FP/0FN,=20max-utfall)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 45-veis v3.1 fan-out kjørt per runbook: 255 claims / 45 filer, 45 Opus-4.8-xhigh- subagenter (live MS Learn, blinde for gull, én per fil), aggregert 255/255 rent → deterministisk re-score mot G5b-korrigert gull. Resultat: v3.1 = P 100,0 / R 100,0 / 0 FP / 0 FN / F1 1,000 (TP 42, TN 198) mot v3-baren P 100,0 / R 92,9 / 3 FN. Alle 3 gjenstående FN fanget (R1 øvre-grense, R7 last-bærende-streng, R8 fler-delt) UTEN én ny FP. Forhåndsregistrert gate (hold P=100 ∧ løft R>92,9) klarert → v3.1 ADOPTERT som judge. R1-«+»-floor-flagg over full populasjon avkreftet som FP-risiko: alle matchet gull (decision-changing floors = outdated/TP; tette floors = correct/TN). §8 G1 lukket, G2 avblokkert (v3.1 = prompt å wire i transform.mjs). Suite 641/641. [skip-docs] --- docs/ref-kb-correctness-program-2026-06.md | 10 +- .../data/judge-bakeoff-report-v3.1.json | 234 ++++++++++++++++++ .../kb-eval/data/judge-bakeoff-report-v3.1.md | 54 ++++ .../data/judge-bakeoff-results-v3.1.json | 1 + 4 files changed, 297 insertions(+), 2 deletions(-) create mode 100644 scripts/kb-eval/data/judge-bakeoff-report-v3.1.json create mode 100644 scripts/kb-eval/data/judge-bakeoff-report-v3.1.md create mode 100644 scripts/kb-eval/data/judge-bakeoff-results-v3.1.json diff --git a/docs/ref-kb-correctness-program-2026-06.md b/docs/ref-kb-correctness-program-2026-06.md index b382f32..f7fe6f1 100644 --- a/docs/ref-kb-correctness-program-2026-06.md +++ b/docs/ref-kb-correctness-program-2026-06.md @@ -96,8 +96,8 @@ Status-nøkkel: 🔴 ikke startet · 🟡 pågår · 🟢 lukket. | # | Gap (mekanismen mangler) | Forhindrer feilklasse | Lukke-fase | Status | MÅ lukkes før | |---|---|---|---|---|---| -| **G1** | Judgen er ikke herdet mot de 8 dokumenterte feilmodusene (`source_silent`-maskerer-fravær, legacy-rad-match, ramme-skifte-tall-overlever, nedre-grense-understatement, eksakt-streng-pedanteri, taksonomi-nyanse, kapabilitet-bom) | Judge-FN/FP påvist i Spor 2b (8 mål, se `ref-kb-gold-reconciliation-2026-06.md`) | **Spor 2a** — judge-prompt-v3, MÅLT single vs v3/ensemble på herdet gull; adopter kun ved målt forbedring (ad-hoc-patch overfitter + bytter P/R) | 🟡 **v3 = adoptert baseline; G5b løftet den til P 100 % / R 92,9 % (0 FP) på G5b-korrigert gull.** v3.1 FORFATTET (`judge-claim-prompt-v3.1.md`) — ren recall-hardning av 3 bekreftede FN (R1 øvre-grense, R7 last-bærende-streng, ny R8 fler-delt); FP-vakt DROPPET (G5b: v3 har 0 ekte FP). 45-veis fan-out IKKE kjørt (operatør-gate, stor spend) — bar er nå v3 (hold P=100 ∧ løft R) | Spor 1 korpus-pass (judgen brukes i ~2700 fetches) | -| **G2** | Herdet judge er ikke wired inn i Port 2 (born-verified create-guard) + Port 3 (kadens) — uten innplugging binder ikke hardningen mekanisk | Re-introdusert drift ved nye/regenererte filer + kadens-bom | Del av Spor 2a→3: bytt ut v2 med v3 i `transform.mjs`-judge-passet + kadens-runneren | 🔴 (avh. G1) | Spor 1 | +| **G1** | Judgen er ikke herdet mot de 8 dokumenterte feilmodusene (`source_silent`-maskerer-fravær, legacy-rad-match, ramme-skifte-tall-overlever, nedre-grense-understatement, eksakt-streng-pedanteri, taksonomi-nyanse, kapabilitet-bom) | Judge-FN/FP påvist i Spor 2b (8 mål, se `ref-kb-gold-reconciliation-2026-06.md`) | **Spor 2a** — judge-prompt-v3, MÅLT single vs v3/ensemble på herdet gull; adopter kun ved målt forbedring (ad-hoc-patch overfitter + bytter P/R) | 🟢 **LUKKET 2026-06-30 — v3.1 MÅLT + ADOPTERT.** 45-veis fan-out kjørt (255 claims, 45 Opus-4.8-xhigh-subagenter, live MS Learn, én per fil) → deterministisk re-score mot G5b-korrigert gull: **v3.1 = P 100,0 % / R 100,0 % / 0 FP / 0 FN** (TP 39→42: fanget alle 3 gjenstående FN; TN 198 + FP 0 uendret). Forhåndsregistrert gate (hold P=100 ∧ løft R>92,9) **klarert** → **v3.1 adoptert som judge**. Se lukke-logg. | Spor 1 korpus-pass (judgen brukes i ~2700 fetches) | +| **G2** | Herdet judge er ikke wired inn i Port 2 (born-verified create-guard) + Port 3 (kadens) — uten innplugging binder ikke hardningen mekanisk | Re-introdusert drift ved nye/regenererte filer + kadens-bom | Del av Spor 2a→3: bytt ut v2 med v3 i `transform.mjs`-judge-passet + kadens-runneren | 🟡 **AVBLOKKERT (G1 lukket 2026-06-30) — v3.1 = adoptert prompt å wire** inn i `transform.mjs`-judge-passet (Port 2 born-verified) + kadens-runner (Port 3). Ikke startet. | Spor 1 | | **G3** | Ingen deterministisk gull-intern-konsistens-vakt (`verdict=correct` mens egen `notes` sier «uverifisert/illustrativ») | Gull-labeling-feil av FP1-klassen (selvmotsigende annotasjon) | Liten TDD-lint over `gold-correctness-set.json` (+ kjøres på fremtidige gull-bygg) | 🟢 **lukket 2026-06-30** | Spor 1 (nytt gull bygges) / §7 friskt utvalg | | **G4** | Nedre-grense-policyen lever kun i prosa (denne dok + reconciliation-logg) — ikke kodet i judge-prompt ELLER `build-gold-set`-instruks | Re-introdusert nedre-grense-ambivalens i fremtidige gull-bygg + judge-kjøringer | Kod policyen inn i judge-prompt-v3 (G1) + build-gold-set-instruks | 🟢 **kodet 2026-06-30** (build-instruks + v3 R1); håndheving rir på G1/G2-adopsjon | Spor 1 / §7 friskt utvalg | | **G5** | Gull-fasiten kan aldre — ingen friskhets-/re-adjuderings-vakt på selve svarnøkkelen. v3-målingen avdekket at flere judge-«feil» trolig er *utdatert gull*, ikke judge-feil (`genaiops-llm-specific#2`: claim «1600+», live=1900 ⇒ 1,19× tett nedre grense, R1 sier korrekt `grounded`, gull sier `outdated` — gull-standarden er her for streng) | Feil adopsjonsbeslutning bygd på aldrende baseline; falsk feilrate i §7-nordstjernen | Friskhets-mikropass: re-adjuder de ~5 omstridte v3-vs-v2-claims mot live MS Learn (avgjør gull-feil vs judge-feil) + periodisk gull-re-adjudering knyttet til §7 friskt utvalg | 🟢 **lukket 2026-06-30** (G5: 2 gull-feil rettet, 3 judge-feil bekreftet, **reverserte adopsjonsbeslutningen**; **G5b: completeness-caveat lukket** — de 4 v3-FP re-sjekket, ALLE 4 stale gull, v3 → P 100 % / R 92,9 % / 0 FP — se lukke-logg) | v3.1-adopsjon (baseline må være til å stole på FØR ny prompt måles mot den) | @@ -133,3 +133,9 @@ Status-nøkkel: 🔴 ikke startet · 🟡 pågår · 🟢 lukket. - **Baseline-revurdering (re-score, G5b-korrigert gull, samme gull begge):** de 4 flyttet FP→TP for v3. **v3: P 89,7/92,1 → 100,0 / 92,9 (TP 39, FP 0, FN 3, TN 198).** v2: 86,8/86,8 → **86,8 / 78,6** (de 4 ble FN for v2 — v2 flagget ingen). v3 dominerer nå v2 på begge akser med større margin; gull var fortsatt kontaminert. Artefakter: `judge-bakeoff-report-v3-g5bgold.{json,md}`, `judge-bakeoff-report-v2-g5bgold.{json,md}`. Gull `_meta.reconciliation_log` + lint (373 claims, 0 flagget) + suite 641/641 grønt. - **Konsekvens for v3.1-design (PLAN-INVERSJON):** STATEs planlagte v3.1-endring #4 (R2/R6 «FP-vakt» for de 4) er **droppet** — R2/R6 fanget disse korrekt; en vakt ville re-knekt 3 reelle treff. v3.1 er nå **ren recall-hardning** av de 3 gjenstående FN (R1 øvre-grense-skille, R7 last-bærende-streng-carve-out, ny R8 fler-delt-fullstendighet) — `judge-claim-prompt-v3.1.md` forfattet. **Adopsjonsgate strammet:** v3 sitter på presisjonstaket (P=100), så v3.1 må **holde P=100 OG løfte R over 92,9** — enhver ny FP feller den. 45-veis fan-out gjenstår (operatør-gate, stor spend). - **Mønster bekreftet:** G5b er andre gang gull-friskhet inverterte en adopsjonskonklusjon ([[gold-freshness-can-invert-adoption]]). Gull-re-adjudering FØR baseline stoles på er nå fast disiplin, ikke engangs — knyttes til §7 friskt utvalg. +- **G1 (Spor 2a) 🟢 LUKKET (2026-06-30) — v3.1 MÅLT + ADOPTERT (max-utfall).** 45-veis v3.1-fan-out kjørt per `docs/v3.1-fanout-runbook.md`: 255 claims / 45 filer, 45 Opus-4.8-xhigh-subagenter (live MS Learn, én per fil, blinde for gull), aggregert 255/255 rent → `judge-bakeoff-results-v3.1.json`, deterministisk re-score mot G5b-korrigert gull → `judge-bakeoff-report-v3.1.{json,md}`. + - **Resultat: v3.1 = P 100,0 % / R 100,0 % / 0 FP / 0 FN / F1 1,000** (TP 42, TN 198, Wilson 95 % [91,6 %, 100 %]) mot v3-baren P 100,0 / R 92,9 / 0 FP / 3 FN (TP 39). v3.1 dominerer: **alle 3 gjenstående FN fanget** (R 92,9 → 100, TP 39→42) **uten én ny FP** (FP 0, P 100, TN 198 uendret). Begge scoret over identisk 240-claims-konfusjonsmatrise (samme G5b-gull). + - **De 3 FN fanget som designet:** `multi-model-strategy-costs#2` (R1 øvre-grense — «opptil 18» slått av live 28), `token-usage-tracking-attribution#3` (R7 last-bærende-streng — `PromptTokens`/`CompletionTokens` finnes ikke live), `ai-foundry-disaster-recovery-planning#9` (R8 fler-delt — Norway East er Global-trening, ikke regional). Alle tre flippet `grounded→not_grounded`, matchet gull `outdated`. + - **FP-risiko avkreftet (R1s dobbeltegg holdt):** R1-«+»-floor-flaggene over full populasjon (`rag-context-windows#2` «200k+»→1M, `ai-services-vs-foundry#5` «100+»→1900) er begge gull=`outdated` → **TP, ikke FP**; tette floors (`genaiops#2` «1600+»→1900, `reserved-capacity#3` «enkelte 100+») holdt `grounded`, gull=`correct` → TN. R1s magnitude-skille (>~2× decision-changing vs tett) sporet fasiten i begge retninger over de 255 — ingen ny FP innført. + - **Forhåndsregistrert gate klarert:** «adopter v3.1 KUN hvis P=100 OG R>92,9» → P=100 ✓ ∧ R=100>92,9 ✓ → **v3.1 ADOPTERT**. v3.1 (`judge-claim-prompt-v3.1.md`, R1–R8) er nå inngangen til G2. + - **Metode-note (portabelt mønster, [[showcase-reusable-patterns]]):** `build-judge-payloads.mjs` (deterministisk payload-generator) + per-payload-splitt + inkrementell per-fil-persistering (resume-trygg mot kvote-stopp) gjorde fan-outen reproduserbar og avbruddssikker. Artefakter: `judge-bakeoff-results-v3.1.json`, `judge-bakeoff-report-v3.1.{json,md}` (committet); payloads gitignored. diff --git a/scripts/kb-eval/data/judge-bakeoff-report-v3.1.json b/scripts/kb-eval/data/judge-bakeoff-report-v3.1.json new file mode 100644 index 0000000..1807035 --- /dev/null +++ b/scripts/kb-eval/data/judge-bakeoff-report-v3.1.json @@ -0,0 +1,234 @@ +{ + "_meta": { + "source": "gold-correctness-set.json + judge-bakeoff-results.json", + "thresholds": { + "minRecall": 0.7, + "minPrecision": 0.6 + }, + "judged": 255 + }, + "population": { + "total": 255, + "verifiable": 240, + "positives": 42, + "negatives": 198, + "unsourcedInP": 15 + }, + "arms": { + "staleness": { + "tp": 0, + "fp": 0, + "fn": 42, + "tn": 198, + "positives": 42, + "negatives": 198, + "flagged": 0, + "precision": null, + "recall": 0, + "f1": null, + "recallWilson": { + "p": 0, + "low": 0, + "high": 0.08380161250916199 + }, + "precisionWilson": null + }, + "judge": { + "tp": 42, + "fp": 0, + "fn": 0, + "tn": 198, + "positives": 42, + "negatives": 198, + "flagged": 42, + "precision": 1, + "recall": 1, + "f1": 1, + "recallWilson": { + "p": 1, + "low": 0.9161983874908382, + "high": 1 + }, + "precisionWilson": { + "p": 1, + "low": 0.9161983874908382, + "high": 1 + } + }, + "hybrid": { + "tp": 42, + "fp": 0, + "fn": 0, + "tn": 198, + "positives": 42, + "negatives": 198, + "flagged": 42, + "precision": 1, + "recall": 1, + "f1": 1, + "recallWilson": { + "p": 1, + "low": 0.9161983874908382, + "high": 1 + }, + "precisionWilson": { + "p": 1, + "low": 0.9161983874908382, + "high": 1 + } + } + }, + "sourceSilent": { + "onVerifiableNegative": 0, + "onVerifiableError": 0, + "agreesWithUnsourced": 2, + "disagreesWithUnsourced": 13 + }, + "byClaimType": { + "version": { + "tp": 7, + "fp": 0, + "fn": 0, + "tn": 21, + "positives": 7, + "negatives": 21, + "flagged": 7, + "precision": 1, + "recall": 1, + "f1": 1, + "recallWilson": { + "p": 1, + "low": 0.6456611570247934, + "high": 1 + }, + "precisionWilson": { + "p": 1, + "low": 0.6456611570247934, + "high": 1 + } + }, + "tpm": { + "tp": 5, + "fp": 0, + "fn": 0, + "tn": 20, + "positives": 5, + "negatives": 20, + "flagged": 5, + "precision": 1, + "recall": 1, + "f1": 1, + "recallWilson": { + "p": 1, + "low": 0.5655085052479191, + "high": 1 + }, + "precisionWilson": { + "p": 1, + "low": 0.5655085052479191, + "high": 1 + } + }, + "region": { + "tp": 2, + "fp": 0, + "fn": 0, + "tn": 13, + "positives": 2, + "negatives": 13, + "flagged": 2, + "precision": 1, + "recall": 1, + "f1": 1, + "recallWilson": { + "p": 1, + "low": 0.34237195288961925, + "high": 1 + }, + "precisionWilson": { + "p": 1, + "low": 0.34237195288961925, + "high": 1 + } + }, + "status": { + "tp": 10, + "fp": 0, + "fn": 0, + "tn": 43, + "positives": 10, + "negatives": 43, + "flagged": 10, + "precision": 1, + "recall": 1, + "f1": 1, + "recallWilson": { + "p": 1, + "low": 0.7224598312333834, + "high": 1 + }, + "precisionWilson": { + "p": 1, + "low": 0.7224598312333834, + "high": 1 + } + }, + "taxonomy": { + "tp": 11, + "fp": 0, + "fn": 0, + "tn": 86, + "positives": 11, + "negatives": 86, + "flagged": 11, + "precision": 1, + "recall": 1, + "f1": 1, + "recallWilson": { + "p": 1, + "low": 0.7411599827511859, + "high": 1 + }, + "precisionWilson": { + "p": 1, + "low": 0.7411599827511859, + "high": 1 + } + }, + "sku": { + "tp": 7, + "fp": 0, + "fn": 0, + "tn": 15, + "positives": 7, + "negatives": 15, + "flagged": 7, + "precision": 1, + "recall": 1, + "f1": 1, + "recallWilson": { + "p": 1, + "low": 0.6456611570247934, + "high": 1 + }, + "precisionWilson": { + "p": 1, + "low": 0.6456611570247934, + "high": 1 + } + } + }, + "gate": { + "pass": true, + "recallOk": true, + "precisionOk": true, + "beatsStaleness": true, + "thresholds": { + "minRecall": 0.7, + "minPrecision": 0.6 + }, + "reasons": [ + "all criteria met" + ] + } +} diff --git a/scripts/kb-eval/data/judge-bakeoff-report-v3.1.md b/scripts/kb-eval/data/judge-bakeoff-report-v3.1.md new file mode 100644 index 0000000..580052e --- /dev/null +++ b/scripts/kb-eval/data/judge-bakeoff-report-v3.1.md @@ -0,0 +1,54 @@ +# Judge bake-off-rapport — S1 (Fase 3 de-risk) + +_Generert deterministisk av `run-judge-bakeoff.mjs` over `gold-correctness-set.json` + `judge-bakeoff-results.json`. Tall fra testet `lib/judge-bakeoff.mjs`. Ikke rediger for hånd — regenerer._ + +**Forhåndsregistrert gate (låst FØR fan-out):** recall ≥ 0.7, presisjon ≥ 0.6, OG judge-recall > staleness-recall. + +## Evaluerings-populasjon (P) + +Volatil stratum + fetchbare claim_types (price ekskludert) — der feilene bor; unngår «invertert leverage». + +| metrikk | verdi | +|---|---| +| P totalt | 255 | +| Verifiserbare (correct/outdated/wrong) | 240 | +| Positive (reelle feil å fange) | 42 | +| Negative (correct) | 198 | +| Unsourced i P (kjørt, men utenfor P/R) | 15 | + +## Arm-sammenligning (detektering over de 240 verifiserbare) + +| arm | TP | FP | FN | TN | presisjon | recall | recall Wilson 95% | F1 | +|---|---|---|---|---|---|---|---|---| +| staleness (billig baseline) | 0 | 0 | 42 | 198 | n/a | 0.0% | [0.0%, 8.4%] | n/a | +| judge (per-påstand groundedness) | 42 | 0 | 0 | 198 | 100.0% | 100.0% | [91.6%, 100.0%] | 1.000 | +| hybrid (union) | 42 | 0 | 0 | 198 | 100.0% | 100.0% | [91.6%, 100.0%] | 1.000 | + +## Judge per claim_type (verifiserbar delmengde) + +| claim_type | positive | TP | FP | FN | presisjon | recall | +|---|---|---|---|---|---|---| +| taxonomy | 11 | 11 | 0 | 0 | 100.0% | 100.0% | +| status | 10 | 10 | 0 | 0 | 100.0% | 100.0% | +| version | 7 | 7 | 0 | 0 | 100.0% | 100.0% | +| sku | 7 | 7 | 0 | 0 | 100.0% | 100.0% | +| tpm | 5 | 5 | 0 | 0 | 100.0% | 100.0% | +| region | 2 | 2 | 0 | 0 | 100.0% | 100.0% | + +## source_silent-diagnostikk + +Judgen hentet siden men fant ikke verdien. Diagnostisk, ikke et flagg. + +| signal | antall | tolkning | +|---|---|---| +| På verifiserbar feil | 0 | judge-bom: reell feil oversett via «kan ikke verifisere» | +| På verifiserbar correct | 0 | judge reproduserte ikke et korrekt faktum mennesket fant | +| Enig med unsourced | 2 | judge reproduserer den uverifiserbare grensen (godt) | +| Uenig med unsourced | 13 | judge hevdet grunnet/ugrunnet der mennesket ikke fant kilde | + +## GATE: ✅ PASS — bygg S3 + +- recall 1.000 ≥ 0.7? **ja** +- presisjon 1.000 ≥ 0.6? **ja** +- slår staleness (recall 0.000)? **ja** +- begrunnelse: all criteria met diff --git a/scripts/kb-eval/data/judge-bakeoff-results-v3.1.json b/scripts/kb-eval/data/judge-bakeoff-results-v3.1.json new file mode 100644 index 0000000..1b143b6 --- /dev/null +++ b/scripts/kb-eval/data/judge-bakeoff-results-v3.1.json @@ -0,0 +1 @@ +{"results":[{"id":"ms-ai-security/cost-optimization/multi-model-strategy-costs.md#1","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/multi-model-strategy-costs.md#2","judge_verdict":"not_grounded","rule":"R1"},{"id":"ms-ai-security/cost-optimization/multi-model-strategy-costs.md#3","judge_verdict":"not_grounded","rule":"R3"},{"id":"ms-ai-security/cost-optimization/multi-model-strategy-costs.md#4","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/multi-model-strategy-costs.md#5","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/multi-model-strategy-costs.md#6","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/multi-model-strategy-costs.md#8","judge_verdict":"grounded","rule":""},{"id":"ms-ai-infrastructure/bcdr/multi-region-azure-openai-deployment.md#1","judge_verdict":"grounded","rule":""},{"id":"ms-ai-infrastructure/bcdr/multi-region-azure-openai-deployment.md#2","judge_verdict":"not_grounded","rule":"R2"},{"id":"ms-ai-infrastructure/bcdr/multi-region-azure-openai-deployment.md#3","judge_verdict":"grounded","rule":""},{"id":"ms-ai-infrastructure/bcdr/multi-region-azure-openai-deployment.md#4","judge_verdict":"grounded","rule":""},{"id":"ms-ai-infrastructure/bcdr/multi-region-azure-openai-deployment.md#5","judge_verdict":"grounded","rule":""},{"id":"ms-ai-infrastructure/bcdr/multi-region-azure-openai-deployment.md#6","judge_verdict":"grounded","rule":""},{"id":"ms-ai-infrastructure/bcdr/multi-region-azure-openai-deployment.md#7","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/vector-storage-cost-optimization.md#1","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/vector-storage-cost-optimization.md#2","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/vector-storage-cost-optimization.md#3","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/vector-storage-cost-optimization.md#4","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/vector-storage-cost-optimization.md#5","judge_verdict":"not_grounded","rule":"R4"},{"id":"ms-ai-security/cost-optimization/vector-storage-cost-optimization.md#6","judge_verdict":"grounded","rule":"R8"},{"id":"ms-ai-security/cost-optimization/vector-storage-cost-optimization.md#7","judge_verdict":"not_grounded","rule":""},{"id":"ms-ai-governance/monitoring-observability/token-usage-tracking-attribution.md#1","judge_verdict":"grounded","rule":""},{"id":"ms-ai-governance/monitoring-observability/token-usage-tracking-attribution.md#2","judge_verdict":"grounded","rule":""},{"id":"ms-ai-governance/monitoring-observability/token-usage-tracking-attribution.md#3","judge_verdict":"not_grounded","rule":"R7"},{"id":"ms-ai-governance/monitoring-observability/token-usage-tracking-attribution.md#4","judge_verdict":"grounded","rule":""},{"id":"ms-ai-governance/monitoring-observability/token-usage-tracking-attribution.md#5","judge_verdict":"grounded","rule":""},{"id":"ms-ai-governance/monitoring-observability/token-usage-tracking-attribution.md#6","judge_verdict":"grounded","rule":"R6"},{"id":"ms-ai-governance/monitoring-observability/token-usage-tracking-attribution.md#7","judge_verdict":"grounded","rule":""},{"id":"ms-ai-governance/monitoring-observability/token-usage-tracking-attribution.md#8","judge_verdict":"not_grounded","rule":"R2"},{"id":"ms-ai-infrastructure/bcdr/ai-foundry-disaster-recovery-planning.md#1","judge_verdict":"grounded","rule":""},{"id":"ms-ai-infrastructure/bcdr/ai-foundry-disaster-recovery-planning.md#2","judge_verdict":"grounded","rule":""},{"id":"ms-ai-infrastructure/bcdr/ai-foundry-disaster-recovery-planning.md#3","judge_verdict":"grounded","rule":""},{"id":"ms-ai-infrastructure/bcdr/ai-foundry-disaster-recovery-planning.md#4","judge_verdict":"grounded","rule":""},{"id":"ms-ai-infrastructure/bcdr/ai-foundry-disaster-recovery-planning.md#5","judge_verdict":"grounded","rule":""},{"id":"ms-ai-infrastructure/bcdr/ai-foundry-disaster-recovery-planning.md#6","judge_verdict":"grounded","rule":""},{"id":"ms-ai-infrastructure/bcdr/ai-foundry-disaster-recovery-planning.md#7","judge_verdict":"grounded","rule":""},{"id":"ms-ai-infrastructure/bcdr/ai-foundry-disaster-recovery-planning.md#8","judge_verdict":"not_grounded","rule":"R8"},{"id":"ms-ai-infrastructure/bcdr/ai-foundry-disaster-recovery-planning.md#9","judge_verdict":"not_grounded","rule":"R8"},{"id":"ms-ai-engineering/mlops-genaiops/llm-evaluation-production.md#1","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/mlops-genaiops/llm-evaluation-production.md#2","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/mlops-genaiops/llm-evaluation-production.md#3","judge_verdict":"not_grounded","rule":"R2"},{"id":"ms-ai-engineering/mlops-genaiops/llm-evaluation-production.md#4","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/mlops-genaiops/llm-evaluation-production.md#5","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/mlops-genaiops/llm-evaluation-production.md#6","judge_verdict":"grounded","rule":"R7"},{"id":"ms-ai-engineering/mlops-genaiops/llm-evaluation-production.md#7","judge_verdict":"not_grounded","rule":""},{"id":"ms-ai-engineering/mlops-genaiops/llm-evaluation-production.md#8","judge_verdict":"grounded","rule":"R7"},{"id":"ms-ai-engineering/mlops-genaiops/llm-evaluation-production.md#9","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/mlops-genaiops/llm-evaluation-production.md#10","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/platforms/model-catalog-2026.md#1","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/platforms/model-catalog-2026.md#2","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/platforms/model-catalog-2026.md#3","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/platforms/model-catalog-2026.md#4","judge_verdict":"not_grounded","rule":""},{"id":"ms-ai-advisor/platforms/model-catalog-2026.md#5","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/platforms/model-catalog-2026.md#6","judge_verdict":"not_grounded","rule":""},{"id":"ms-ai-advisor/platforms/model-catalog-2026.md#7","judge_verdict":"not_grounded","rule":""},{"id":"ms-ai-advisor/platforms/model-catalog-2026.md#8","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/platforms/model-catalog-2026.md#9","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/platforms/azure-ai-foundry.md#1","judge_verdict":"grounded","rule":"R6"},{"id":"ms-ai-advisor/platforms/azure-ai-foundry.md#2","judge_verdict":"not_grounded","rule":"R8"},{"id":"ms-ai-advisor/platforms/azure-ai-foundry.md#3","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/platforms/azure-ai-foundry.md#4","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/platforms/azure-ai-foundry.md#5","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/platforms/azure-ai-foundry.md#6","judge_verdict":"not_grounded","rule":""},{"id":"ms-ai-advisor/platforms/azure-ai-foundry.md#7","judge_verdict":"not_grounded","rule":"R3"},{"id":"ms-ai-advisor/platforms/azure-ai-foundry.md#8","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/architecture/cost-models.md#3","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/architecture/cost-models.md#6","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/prompt-engineering/token-optimization-and-efficiency.md#3","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/prompt-engineering/token-optimization-and-efficiency.md#4","judge_verdict":"grounded","rule":"R8"},{"id":"ms-ai-advisor/prompt-engineering/token-optimization-and-efficiency.md#5","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/prompt-engineering/token-optimization-and-efficiency.md#7","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/prompt-engineering/chain-of-thought-prompting.md#1","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/prompt-engineering/chain-of-thought-prompting.md#2","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/prompt-engineering/chain-of-thought-prompting.md#3","judge_verdict":"not_grounded","rule":"R8"},{"id":"ms-ai-advisor/prompt-engineering/reasoning-models-o1-o3-optimization.md#1","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/prompt-engineering/reasoning-models-o1-o3-optimization.md#2","judge_verdict":"grounded","rule":"R6"},{"id":"ms-ai-advisor/prompt-engineering/reasoning-models-o1-o3-optimization.md#3","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/prompt-engineering/reasoning-models-o1-o3-optimization.md#4","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/prompt-engineering/reasoning-models-o1-o3-optimization.md#5","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/prompt-engineering/reasoning-models-o1-o3-optimization.md#6","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/prompt-engineering/reasoning-models-o1-o3-optimization.md#7","judge_verdict":"not_grounded","rule":"R8"},{"id":"ms-ai-advisor/architecture/adr-template.md#1","judge_verdict":"not_grounded","rule":"R8"},{"id":"ms-ai-advisor/architecture/adr-template.md#2","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/architecture/adr-template.md#3","judge_verdict":"source_silent","rule":""},{"id":"ms-ai-advisor/prompt-engineering/real-time-reasoning-performance.md#1","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/prompt-engineering/real-time-reasoning-performance.md#2","judge_verdict":"grounded","rule":"R6"},{"id":"ms-ai-advisor/prompt-engineering/real-time-reasoning-performance.md#3","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/prompt-engineering/real-time-reasoning-performance.md#4","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/prompt-engineering/real-time-reasoning-performance.md#5","judge_verdict":"grounded","rule":"R7"},{"id":"ms-ai-advisor/prompt-engineering/real-time-reasoning-performance.md#6","judge_verdict":"not_grounded","rule":""},{"id":"ms-ai-advisor/prompt-engineering/real-time-reasoning-performance.md#7","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/prompt-engineering/multimodal-prompt-design.md#1","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/prompt-engineering/multimodal-prompt-design.md#2","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/prompt-engineering/multimodal-prompt-design.md#3","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/prompt-engineering/multimodal-prompt-design.md#4","judge_verdict":"not_grounded","rule":"R8"},{"id":"ms-ai-advisor/prompt-engineering/multimodal-prompt-design.md#5","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/prompt-engineering/multimodal-prompt-design.md#6","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/prompt-engineering/multimodal-prompt-design.md#7","judge_verdict":"not_grounded","rule":"R8"},{"id":"ms-ai-advisor/prompt-engineering/multimodal-prompt-design.md#8","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/architecture/regional-availability-verification.md#1","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/architecture/regional-availability-verification.md#2","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/architecture/regional-availability-verification.md#3","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/architecture/regional-availability-verification.md#4","judge_verdict":"grounded","rule":"R8"},{"id":"ms-ai-advisor/architecture/regional-availability-verification.md#5","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/architecture/regional-availability-verification.md#6","judge_verdict":"grounded","rule":"R6"},{"id":"ms-ai-advisor/architecture/regional-availability-verification.md#7","judge_verdict":"grounded","rule":""},{"id":"ms-ai-advisor/architecture/regional-availability-verification.md#8","judge_verdict":"not_grounded","rule":"R8"},{"id":"ms-ai-engineering/mlops-genaiops/genaiops-llm-specific-practices.md#1","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/mlops-genaiops/genaiops-llm-specific-practices.md#2","judge_verdict":"grounded","rule":"R1"},{"id":"ms-ai-engineering/azure-ai-services/ai-services-cost-optimization.md#1","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/azure-ai-services/ai-services-cost-optimization.md#2","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/azure-ai-services/ai-services-cost-optimization.md#3","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/azure-ai-services/ai-services-cost-optimization.md#5","judge_verdict":"not_grounded","rule":"R8"},{"id":"ms-ai-engineering/azure-ai-services/ai-services-cost-optimization.md#6","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/azure-ai-services/ai-services-cost-optimization.md#8","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/rag-architecture/rag-context-windows.md#1","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/rag-architecture/rag-context-windows.md#2","judge_verdict":"not_grounded","rule":"R1"},{"id":"ms-ai-engineering/rag-architecture/rag-context-windows.md#3","judge_verdict":"not_grounded","rule":""},{"id":"ms-ai-engineering/rag-architecture/rag-context-windows.md#4","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/rag-architecture/rag-context-windows.md#5","judge_verdict":"not_grounded","rule":"R3"},{"id":"ms-ai-engineering/rag-architecture/rag-context-windows.md#6","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/rag-architecture/rag-context-windows.md#7","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/mlops-genaiops/monitoring-observability-ml-systems.md#1","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/mlops-genaiops/monitoring-observability-ml-systems.md#2","judge_verdict":"grounded","rule":"R7"},{"id":"ms-ai-engineering/mlops-genaiops/monitoring-observability-ml-systems.md#3","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/mlops-genaiops/monitoring-observability-ml-systems.md#4","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/mlops-genaiops/monitoring-observability-ml-systems.md#5","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/mlops-genaiops/monitoring-observability-ml-systems.md#6","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/mlops-genaiops/monitoring-observability-ml-systems.md#7","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/azure-ai-services/ai-services-enterprise-architecture.md#1","judge_verdict":"grounded","rule":"R6"},{"id":"ms-ai-engineering/azure-ai-services/ai-services-enterprise-architecture.md#2","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/azure-ai-services/ai-services-enterprise-architecture.md#3","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/azure-ai-services/ai-services-enterprise-architecture.md#4","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/azure-ai-services/ai-services-enterprise-architecture.md#5","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/azure-ai-services/ai-services-enterprise-architecture.md#6","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/azure-ai-services/ai-services-enterprise-architecture.md#7","judge_verdict":"grounded","rule":"R7"},{"id":"ms-ai-engineering/azure-ai-services/ai-services-enterprise-architecture.md#8","judge_verdict":"not_grounded","rule":"R8"},{"id":"ms-ai-engineering/azure-ai-services/ai-services-vs-foundry-tools-selection.md#1","judge_verdict":"grounded","rule":"R6"},{"id":"ms-ai-engineering/azure-ai-services/ai-services-vs-foundry-tools-selection.md#3","judge_verdict":"not_grounded","rule":"R8"},{"id":"ms-ai-engineering/azure-ai-services/ai-services-vs-foundry-tools-selection.md#4","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/azure-ai-services/ai-services-vs-foundry-tools-selection.md#5","judge_verdict":"not_grounded","rule":"R1"},{"id":"ms-ai-engineering/azure-ai-services/ai-services-vs-foundry-tools-selection.md#7","judge_verdict":"grounded","rule":"R7"},{"id":"ms-ai-engineering/rag-architecture/rag-cost-optimization.md#1","judge_verdict":"grounded","rule":"R8"},{"id":"ms-ai-engineering/rag-architecture/rag-cost-optimization.md#2","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/rag-architecture/rag-cost-optimization.md#3","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/rag-architecture/rag-cost-optimization.md#4","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/rag-architecture/rag-cost-optimization.md#5","judge_verdict":"not_grounded","rule":"R4"},{"id":"ms-ai-engineering/rag-architecture/rag-cost-optimization.md#6","judge_verdict":"not_grounded","rule":"R1"},{"id":"ms-ai-engineering/rag-architecture/rag-cost-optimization.md#7","judge_verdict":"grounded","rule":"R5"},{"id":"ms-ai-engineering/rag-architecture/rag-cost-optimization.md#8","judge_verdict":"grounded","rule":"R5"},{"id":"ms-ai-engineering/rag-architecture/embedding-models-selection.md#1","judge_verdict":"grounded","rule":"R5"},{"id":"ms-ai-engineering/rag-architecture/embedding-models-selection.md#2","judge_verdict":"grounded","rule":"R7"},{"id":"ms-ai-engineering/rag-architecture/embedding-models-selection.md#4","judge_verdict":"source_silent","rule":""},{"id":"ms-ai-engineering/rag-architecture/embedding-models-selection.md#5","judge_verdict":"not_grounded","rule":"R2"},{"id":"ms-ai-engineering/rag-architecture/embedding-models-selection.md#6","judge_verdict":"not_grounded","rule":"R4"},{"id":"ms-ai-engineering/rag-architecture/embedding-models-selection.md#7","judge_verdict":"not_grounded","rule":"R4"},{"id":"ms-ai-governance/responsible-ai/algorithmic-accountability-auditability.md#1","judge_verdict":"grounded","rule":""},{"id":"ms-ai-governance/monitoring-observability/response-quality-metrics-rag.md#1","judge_verdict":"grounded","rule":""},{"id":"ms-ai-governance/monitoring-observability/response-quality-metrics-rag.md#2","judge_verdict":"grounded","rule":""},{"id":"ms-ai-governance/monitoring-observability/response-quality-metrics-rag.md#3","judge_verdict":"grounded","rule":""},{"id":"ms-ai-governance/monitoring-observability/response-quality-metrics-rag.md#4","judge_verdict":"grounded","rule":""},{"id":"ms-ai-governance/monitoring-observability/response-quality-metrics-rag.md#5","judge_verdict":"grounded","rule":""},{"id":"ms-ai-governance/monitoring-observability/response-quality-metrics-rag.md#6","judge_verdict":"grounded","rule":"R7"},{"id":"ms-ai-governance/responsible-ai/responsible-ai-training-awareness.md#1","judge_verdict":"grounded","rule":""},{"id":"ms-ai-governance/responsible-ai/responsible-ai-training-awareness.md#2","judge_verdict":"not_grounded","rule":"R8"},{"id":"ms-ai-governance/responsible-ai/stakeholder-communication-ai-decisions.md#1","judge_verdict":"grounded","rule":""},{"id":"ms-ai-governance/responsible-ai/stakeholder-communication-ai-decisions.md#3","judge_verdict":"not_grounded","rule":"R3"},{"id":"ms-ai-governance/monitoring-observability/cost-monitoring-cost-attribution.md#1","judge_verdict":"grounded","rule":""},{"id":"ms-ai-governance/monitoring-observability/cost-monitoring-cost-attribution.md#2","judge_verdict":"grounded","rule":""},{"id":"ms-ai-governance/monitoring-observability/cost-monitoring-cost-attribution.md#3","judge_verdict":"grounded","rule":""},{"id":"ms-ai-governance/monitoring-observability/cost-monitoring-cost-attribution.md#4","judge_verdict":"grounded","rule":""},{"id":"ms-ai-governance/monitoring-observability/cost-monitoring-cost-attribution.md#7","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/api-management/multi-region-ai-gateway-design.md#1","judge_verdict":"grounded","rule":"R8"},{"id":"ms-ai-engineering/api-management/multi-region-ai-gateway-design.md#2","judge_verdict":"grounded","rule":"R6"},{"id":"ms-ai-engineering/api-management/multi-region-ai-gateway-design.md#3","judge_verdict":"grounded","rule":"R8"},{"id":"ms-ai-engineering/api-management/multi-region-ai-gateway-design.md#4","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/api-management/multi-region-ai-gateway-design.md#5","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/api-management/multi-region-ai-gateway-design.md#6","judge_verdict":"grounded","rule":"R7"},{"id":"ms-ai-engineering/api-management/multi-region-ai-gateway-design.md#7","judge_verdict":"grounded","rule":""},{"id":"ms-ai-engineering/api-management/multi-region-ai-gateway-design.md#8","judge_verdict":"grounded","rule":"R8"},{"id":"ms-ai-engineering/api-management/multi-region-ai-gateway-design.md#9","judge_verdict":"grounded","rule":""},{"id":"ms-ai-infrastructure/bcdr/capacity-planning-dr-configurations.md#1","judge_verdict":"grounded","rule":""},{"id":"ms-ai-infrastructure/bcdr/capacity-planning-dr-configurations.md#2","judge_verdict":"grounded","rule":""},{"id":"ms-ai-infrastructure/bcdr/capacity-planning-dr-configurations.md#3","judge_verdict":"not_grounded","rule":"R2"},{"id":"ms-ai-infrastructure/bcdr/capacity-planning-dr-configurations.md#5","judge_verdict":"grounded","rule":""},{"id":"ms-ai-governance/monitoring-observability/endpoint-health-and-capacity-planning.md#1","judge_verdict":"grounded","rule":""},{"id":"ms-ai-governance/monitoring-observability/endpoint-health-and-capacity-planning.md#2","judge_verdict":"not_grounded","rule":"R2"},{"id":"ms-ai-governance/monitoring-observability/endpoint-health-and-capacity-planning.md#3","judge_verdict":"not_grounded","rule":"R3"},{"id":"ms-ai-governance/monitoring-observability/endpoint-health-and-capacity-planning.md#4","judge_verdict":"grounded","rule":""},{"id":"ms-ai-governance/monitoring-observability/endpoint-health-and-capacity-planning.md#5","judge_verdict":"grounded","rule":""},{"id":"ms-ai-governance/monitoring-observability/endpoint-health-and-capacity-planning.md#6","judge_verdict":"grounded","rule":""},{"id":"ms-ai-infrastructure/bcdr/cost-analysis-dr-configurations.md#3","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/deterministic-cost-calculation-model.md#9","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/gpt5-gpt41-pricing-models.md#4","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/gpt5-gpt41-pricing-models.md#5","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/gpt5-gpt41-pricing-models.md#6","judge_verdict":"grounded","rule":"R8"},{"id":"ms-ai-security/cost-optimization/gpt5-gpt41-pricing-models.md#7","judge_verdict":"grounded","rule":"R8"},{"id":"ms-ai-infrastructure/bcdr/network-resilience-patterns-ai.md#1","judge_verdict":"not_grounded","rule":"R2"},{"id":"ms-ai-infrastructure/bcdr/network-resilience-patterns-ai.md#2","judge_verdict":"grounded","rule":""},{"id":"ms-ai-infrastructure/bcdr/network-resilience-patterns-ai.md#3","judge_verdict":"grounded","rule":""},{"id":"ms-ai-infrastructure/bcdr/network-resilience-patterns-ai.md#4","judge_verdict":"not_grounded","rule":""},{"id":"ms-ai-security/cost-optimization/ptu-vs-paygo-economics.md#1","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/ptu-vs-paygo-economics.md#2","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/ptu-vs-paygo-economics.md#3","judge_verdict":"grounded","rule":"R8"},{"id":"ms-ai-security/cost-optimization/ptu-vs-paygo-economics.md#4","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/ptu-vs-paygo-economics.md#5","judge_verdict":"grounded","rule":"R6"},{"id":"ms-ai-security/cost-optimization/ptu-vs-paygo-economics.md#6","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/model-selection-price-performance.md#4","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/model-selection-price-performance.md#6","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/model-selection-price-performance.md#7","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/model-selection-price-performance.md#8","judge_verdict":"grounded","rule":"R7"},{"id":"ms-ai-security/cost-optimization/model-selection-price-performance.md#9","judge_verdict":"not_grounded","rule":"R4"},{"id":"ms-ai-infrastructure/bcdr/service-level-documentation-dr.md#1","judge_verdict":"grounded","rule":""},{"id":"ms-ai-infrastructure/bcdr/service-level-documentation-dr.md#2","judge_verdict":"grounded","rule":""},{"id":"ms-ai-infrastructure/bcdr/service-level-documentation-dr.md#3","judge_verdict":"grounded","rule":""},{"id":"ms-ai-infrastructure/bcdr/service-level-documentation-dr.md#4","judge_verdict":"grounded","rule":"R6"},{"id":"ms-ai-infrastructure/bcdr/service-level-documentation-dr.md#5","judge_verdict":"grounded","rule":"R7"},{"id":"ms-ai-infrastructure/bcdr/service-level-documentation-dr.md#6","judge_verdict":"grounded","rule":"R7"},{"id":"ms-ai-infrastructure/bcdr/service-level-documentation-dr.md#7","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/azure-ai-foundry-cost-governance.md#1","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/azure-ai-foundry-cost-governance.md#2","judge_verdict":"grounded","rule":"R7"},{"id":"ms-ai-security/cost-optimization/azure-ai-foundry-cost-governance.md#3","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/azure-ai-foundry-cost-governance.md#4","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/azure-ai-foundry-cost-governance.md#5","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/azure-ai-foundry-cost-governance.md#6","judge_verdict":"not_grounded","rule":"R1"},{"id":"ms-ai-security/cost-optimization/azure-ai-foundry-cost-governance.md#7","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/ai-builder-credits-transition.md#1","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/ai-builder-credits-transition.md#2","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/ai-builder-credits-transition.md#3","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/ai-builder-credits-transition.md#6","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/ai-builder-credits-transition.md#7","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/ai-builder-credits-transition.md#8","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/token-counting-optimization.md#1","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/token-counting-optimization.md#2","judge_verdict":"grounded","rule":"R8"},{"id":"ms-ai-security/cost-optimization/token-counting-optimization.md#4","judge_verdict":"grounded","rule":"R8"},{"id":"ms-ai-security/cost-optimization/token-counting-optimization.md#8","judge_verdict":"grounded","rule":"R8"},{"id":"ms-ai-security/cost-optimization/small-language-models-economics.md#1","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/small-language-models-economics.md#2","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/small-language-models-economics.md#3","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/small-language-models-economics.md#4","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/small-language-models-economics.md#5","judge_verdict":"grounded","rule":"R8"},{"id":"ms-ai-security/cost-optimization/small-language-models-economics.md#6","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/small-language-models-economics.md#9","judge_verdict":"grounded","rule":"R7"},{"id":"ms-ai-security/cost-optimization/rag-query-cost-reduction.md#1","judge_verdict":"grounded","rule":"R5"},{"id":"ms-ai-security/cost-optimization/rag-query-cost-reduction.md#2","judge_verdict":"not_grounded","rule":"R4"},{"id":"ms-ai-security/cost-optimization/rag-query-cost-reduction.md#4","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/rag-query-cost-reduction.md#7","judge_verdict":"grounded","rule":"R6"},{"id":"ms-ai-security/cost-optimization/reserved-capacity-planning.md#1","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/reserved-capacity-planning.md#2","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/reserved-capacity-planning.md#3","judge_verdict":"grounded","rule":"R1"},{"id":"ms-ai-security/cost-optimization/reserved-capacity-planning.md#4","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/reserved-capacity-planning.md#5","judge_verdict":"grounded","rule":"R6"},{"id":"ms-ai-security/cost-optimization/reserved-capacity-planning.md#6","judge_verdict":"not_grounded","rule":""},{"id":"ms-ai-security/cost-optimization/reserved-capacity-planning.md#7","judge_verdict":"grounded","rule":""},{"id":"ms-ai-security/cost-optimization/reserved-capacity-planning.md#8","judge_verdict":"grounded","rule":""}]} \ No newline at end of file