15 KiB
Program — Reference-fil-korrekthet mot nær-100 % + mekanisme som holder den der
Opprettet 2026-06-26. Operatør-mandat (eksakt): «Alle reference-filene må til enhver tid være 100 % til å stole på, og du må lage en mekanisme som sikrer dette.» Full kvalitetsoffensiv godkjent; Spor 0 først, så grønt lys for skala (Spor 1–3). Dokumenteres skikkelig her; Voyage (/trekplan / /trekexecute) er foreslått motor for skala-fasen.
Forutsetning: S1 de-risket judgen (v1 FAIL → v2 målrettet iterasjon GATE PASS, recall 84,2 % / presisjon 84,2 %). Grunnlag: docs/ref-kb-workflow-plan-2026-06.md (Fase 0–4 + roadmap), docs/ref-kb-audit-2026-06.md, docs/ref-kb-direction-note-2026-06.md.
1. Ærlig ramme (premisser programmet bygger på — ikke re-litiger)
- «100 % til enhver tid» er en prosess-garanti, ikke en øyeblikks-garanti. Microsoft endrer kildene kontinuerlig; ingen statisk fil kan være korrekt i evig tid. Den oppnåelige garantien er: intet upekt/uverifisert innhold shipper, og enhver drift fanges innen én refresh-syklus. Det er den operasjonelle definisjonen av «100 % til å stole på» (§4).
- De 38 kjente feilene er et utvalg, ikke fasiten. Målt på 255 volatile påstander; base-rate 13,4 % ⇒ det fulle korpuset (~306 kildebelagte filer) har statistisk hundrevis av samme feilklasse vi ennå ikke har sett. Spor 0 fikser utvalget; Spor 1 avdekker resten korpus-vidt.
- Taket på én judge-runde er ~84 % recall. Judgen er en høystakk-reduserer, ikke siste autoritet. Nær-100 % fiks-korrekthet oppnås av loopen (judge flagger → menneske bekrefter mot kilde → fiks), ikke av judgen alene. Aldri auto-fiks.
- Pris/unsourced er maskin-uverifiserbar (74 % av pris; JS-rendrede Azure-sider). Disse merkes eksplisitt «ikke maskinverifiserbar» og forblir operatør-gated. Nær-100 %-målet gjelder den maskin-verifiserbare populasjonen (
sku/version/tpm/status/region/taxonomy).
2. Mål (suksesskriterium — måles mot brukerverdi)
En bruker som chatter med pluginen får korrekte, kilde-belagte MS-svar, og mekanismen holder det slik automatisk: (a) flagget feilrate på maskin-verifiserbar populasjon < ~2 % målt på et ferskt gull-utvalg; (b) ingen reference-fil shipper uten kilde + verifiseringsdato; (c) drift fanges innen én KB-refresh-syklus; (d) pris/unsourced er ærlig merket og operatør-gated.
3. De fire sporene
Spor 0 — Fiks de kjente 38 nå (judge-uavhengig, trygt) — STARTET
Fiks-manifest: scripts/kb-eval/data/spor0-fix-manifest.json (38 fikser, 25 filer, deterministisk fra gull-settet). Hver fiks har reverify_required: true.
- Protokoll per fiks (ufravikelig): (1) re-hent kilden (
microsoft_docs_fetchpåsource) og bekreft korrekt verdi live (gull-noteser subagent-produsert — verifiseringsplikten krever fersk bekreftelse FØR en offentlig fil endres); (2) lokaliser den eksakte foreldede strengen i fila; (3) erstatt med kilde-bekreftet verdi; (4) settfixed: true+verified-stempel. - Rydd tverteklyngene: AI Search storage-tall er utdaterte og selvmotsigende på tvers av
rag-cost-optimization.md,embedding-models-selection.md,rag-query-cost-reduction.md,vector-storage-cost-optimization.md— reconcile til én kilde-sann verdi. Samme for «Default/Enterprise → Quota Tiers»-omtalen (4 filer). - Kvalitets-disiplin: kjøres i en fokusert sesjon (ikke som hale på en mettet kontekst) — offentlige filer for hele Norge tåler ikke hastverk.
- Verifisering: re-kjør judge på de 38 → alle
grounded; storage-tall konsistente på tvers; suite grønn.
Spor 1 — Avdekk hele feilsettet korpus-vidt (S3-forutsetning + skalering)
- Authority-backfill: hver kildebelagt fil → sin autoritets-URL (recon: kun 3 URL-er har
authority_sourcei dag — re-verifiseres moturl-registry.jsonFØR start). - Full frontmatter (Fase 2 full):
type/source/verified/verified_byper fil (OKF-kompatibel form). - Korpus-pass: kjør v2-judgen over alle verifiserbare påstander i alle ~306 filer (ikke bare 255-utvalget). Output: komplett flagg-liste → mater Spor 0-protokollen korpus-vidt.
- Kostnad (ærlig): ~2700 ikke-batchbare
microsoft_docs_fetchper full-pass — IKKE «$20–40 Batch». Flersesjons. - Verifisering: hver ikke-advisor kildebelagt fil har
authority_source; frontmatter validerer; flagg-lista persistert.
Spor 2 — Press pålitelighet mot 100 % (hardningen)
- (a) Ensemble for recall: union av N diverse judge-linser (f.eks. eksakt-verdi / strukturell / status-fokus). Mål single vs ensemble på gull-settet FØR adopsjon (operatørens «bygg begge og mål»). Union hever recall (mål: > 84,2 %), senker presisjon — tapet absorberes av menneske-i-loopen (c). Adopter kun hvis gull-målt forbedring.
- (b) Gull-rekonsiliering: ✅ FERDIG (2026-06-30) — alle 12 uenigheter løst mot live kilde. 4 gull-feil rettet + 1 note-fiks; 8 judge-feil dokumentert som kalibreringsmål. Herdet fasit: presisjon 84,2 %→92,1 %, recall 84,2 %→87,5 % (judgen var bedre enn rå-bakeoffen viste — fasiten var kontaminert). Nedre-grense-policy vedtatt (grov understatement >~2× = feil). 0 uløste uenigheter. Full logg:
ref-kb-gold-reconciliation-2026-06.md; herdet rapport:judge-bakeoff-report-v2-reconciled.{json,md}(frozen v2 beholdt som gate-artefakt). - (c) Menneske-i-loopen fiks-protokoll: judge flagger → operatør/ekspert bekrefter mot kilde → fiks +
verified-bump. Garanterer ~100 % fiks-presisjon selv ved 84 % judge-presisjon. Aldri auto-fiks. - Verifisering: ensemble P/R ≥ single på gull; 0 uløste judge-vs-gull-uenigheter; dokumentert at ingen fiks shippet uten menneske-bekreftelse.
Spor 3 — Mekanismen som holder det nær-100 % (Fase 4) — SE §4
Create-time-guard + kadens-judge + rapporterende gulv + frontmatter-kontrakt. Detaljert under, fordi dette ER «mekanismen som sikrer dette».
4. MEKANISMEN — «100 % til å stole på, til enhver tid» (operatørens kjernekrav)
Status (2026-06-29): Port 1 ✅ · Port 2 ✅ (
5a0ba1f) · Port 3 ✅ KOMPLETT — inkrementell stale-since-verified (fea5df5), rapporterende gulv / SessionStart KB-tillit-signal (08e7e72), CT5 sourcedness som erstatter K8 (75ee9ec), og periodisk full-pass worklist (P3d,a1d72fa). P3d-designvalg avklart: arbeidsliste (operatør kickstarter judging separat — §5 «ikke auto-lansert», §4c «aldri auto-fiks»; den ærlige ~2700-fetch/flersesjons-kosten forekluderer inline på korpus-skala).report-full-pass-worklist.mjser lastmod-UAVHENGIG (gater på Port 1-kontrakttype:reference+source+ cadence-alder påverified, default 90 d), så den fanger drift-klassen inkrementell bommer (staleness-recall 0/40). Ekte kjøring: 389 ref-filer alleunmigrated⇒ dormant til Spor 1-migrering backfillersource/verified. Mekanismen (Spor 3) er nå komplett.
Garantien er en invariant håndhevet av tre porter, ikke et engangs-opprydding:
Invariant: Hver maskin-verifiserbar påstand i en
reference-fil er bekreftet mot sin siterte kilde innen siste<kadens>-vindu; intetreference-innhold shipper utensource+verified; drift flagges innen én refresh-syklus.
Port 1 — Frontmatter-kontrakt (tilstanden). Hver fil bærer:
type (reference|template|methodology|regulatory) · source (autoritets-URL) · verified (dato sist bekreftet korrekt mot kilde) · verified_by (judge-vN / human). Template/methodology/regulatory er unntatt korrekthets-scope (skal ikke ha MS-source).
Port 2 — Create-time-guard (innløpet). scripts/kb-update/lib/transform.mjs (buildKbHeader/validateKbFile) + generate-skills:
- Nekter å emitte en
reference-fil utensource. - Nytt/regenerert innhold kjøres gjennom judgen FØR commit → født verifisert (
verified=<i dag>,verified_by=judge-vN). Ellers re-introduserer neste KB-update driften (å øse en lekk båt). - Verifisering: generator-test —
reference-output harsource+verified; manglersource⇒ hard feil.
Port 3 — Kadens-judge (vedlikeholdet). På KB-refresh-kadens (IKKE SessionStart — for dyrt):
- Inkrementell: re-judge filer hvis
sourcesitemap_lastmod >verified(akkurat det staleness-loopen ser — billig, fanger lastmod-synlig drift). - Periodisk full-pass: judge over hele korpuset (fanger den drift-klassen staleness bommer på — base-rate viste staleness-recall 0/40).
- Flagg → menneske-bekreft → fiks →
verified-bump. Rapporterende gulv (Spor D peker: «N filer eldre enn X siden verified» / «M ubekreftede flagg»), ikke hard SessionStart-gate (unngå alarm-tretthet på et 84 %-signal). - Verifisering: SessionStart surfacer trust-ferskhets-signal uten falske alarmer; operatør-waiver-sti finnes; CT5 (sourcedness) ERSTATTER K8s rolle.
Hvorfor dette gir «til enhver tid»: du kan ikke garantere null drift i et øyeblikk (MS endrer ting når som helst), men du garanterer at (a) intet uverifisert shipper (Port 2), (b) tilstanden er eksplisitt og sporbar (Port 1), (c) drift fanges innen én syklus (Port 3). Det er den sterkeste ærlige garantien — og den er buildbar.
5. Voyage-bruk (operatør: «kanskje bruke Voyage aktivt»)
- Skala-fasen (Spor 1–3) er et lærebok-flersesjons-implementeringsløp →
/trekplanmed dette dokumentet som brief gir en revidert, adversarielt gjennomgått implementeringsplan;/trekexecutekjører den på tvers av sesjoner med failure-recovery. - Spor 1 korpus-pass kan dra nytte av Voyage-orkestrering (parallelle judge-agenter per fil, schema-validert output).
- Spor 0 er lite nok til direkte utførelse (manifest finnes) — trenger ikke Voyage.
- Ikke auto-lansert: Voyage er tung maskineri; operatør kickstarter (
/trekbriefel./trekplan --brief <dette docet>). Anbefaling: kjør Spor 0 først, så/trekplanfor Spor 1–3.
6. Sekvensering + status (2026-06-26)
| Spor | Status | Neste konkrete handling |
|---|---|---|
| S1 (de-risk) | ✅ FULLFØRT | — (v2 GATE PASS) |
| Spor 0 (fiks 38) | 🟡 STARTET (manifest klart) | Kjør manifest i fokusert sesjon m/ kilde-reverifisering |
| Spor 1 (korpus-skala) | ⏳ grønt lys | Authority-backfill + frontmatter → korpus-pass (Voyage /trekplan) |
| Spor 2 (hardning) | 🟡 2b ✅ FERDIG (gull herdet) | 2a ensemble-måling på herdet gull (gjenstår) |
| Spor 3 (mekanisme) | 🟢 Port 1+2+3 ✅ KOMPLETT (inkr/gulv/CT5 + full-pass worklist P3d) | Mekanismen ferdig; dormant til Spor 1. Neste spor: Spor 2b (gull-rekonsiliering) → Spor 1 korpus-pass |
Avhengigheter: Spor 0 uavhengig (nå). Spor 3 Port 2 (create-guard) MÅ på plass før/sammen med korpus-fiksing (ellers reverserer generatoren). Spor 2b (gull-rekonsiliering) ✅ ferdig 2026-06-30 — bunnsolid fasit på plass før Spor 1 skalerer målingen. Advisor-filer koordineres mot Cosmo-utfasing (S-Cosmo).
7. Verifisering — slik beviser vi «nær-100 %» (nordstjerne)
Etter Spor 0+1-fiksing: trekk et NYTT, ferskt gull-utvalg (friske påstander, ikke de vi fikset mot) og mål feilraten på maskin-verifiserbar populasjon → mål < ~2 %. Måling på den fikset-mot prøven er kontaminert; kun en fersk prøve beviser at korpuset faktisk er nær-100 %. Dette gull-utvalget blir også neste kalibreringssett for kadens-judgen.
8. Mekanisme-gap-register (MÅ lukkes — stående disiplin)
Invariant (operatør 2026-06-30, ufravikelig): ingen funnet feilklasse forlates som kun et funn. Hvert gap mellom en oppdaget feilklasse og mekanismen som forhindrer gjentakelse MÅ føres her med en lukke-fase, og MÅ lukkes i en fremtidig sesjon. Å finne + dokumentere er ikke det samme som å lukke loopen. Når et nytt spor/en ny audit avdekker en feilklasse, legg den til her samme sesjon. Registeret er kanonisk; STATE peker hit.
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) | 🔴 | 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 |
| 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 | 🟡 build-instruks ✅ (2026-06-30); judge-prompt-v3-del i G1 | Spor 1 / §7 friskt utvalg |
Ikke mekanisme-gap, men sporet backlog (innhold, ikke loop): reference-.md-fil-fiksene fra Spor 2b (FP1 11000+/40+, FP2 «kun», FP6 Preview/Norway-East, FN2–FN6 utdaterte tall) er Spor 0/1-innholdsarbeid — pekt per-claim i notes, ikke gjentakelses-mekanisme. Føres i Spor 0-manifest / Spor 1-korpus-pass, ikke her.
Lukke-logg
- G3 🟢 lukket (2026-06-30). Deterministisk lint
lib/gold-consistency.mjs+ CLIlint-gold-consistency.mjs+ TDDtests/kb-eval/test-gold-consistency.test.mjs(4 tester); wiret som hard gate påbuild-gold-set.mjs --write(dry-run forhåndsviser ikke-fatalt). De 3 nåværende shippet-gull-treffene resolvert medconsistency_waiver(én —reserved-capacity-planning#5— live kilde-bekreftet FØR waiver, verifiseringsplikt). Bevist mot FP1: rebuild fra batch-returns flaggerazure-ai-foundry.md#2(verdict=correct, note «11000+/40+ uverifisert») — nøyaktig claimen Spor 2b fant via dyr live re-fetch. Linten fanger klassen gratis ved bygg. - G4 🟡 build-instruks ✅ (2026-06-30). Nedre-grense-policyen + konsistens-policyen kodet inn i
build-gold-set.mjs_meta.lower_bound_policy/_meta.consistency_policy(instruks subagenter følger ved fremtidig gull-bygg). Resterende halvdel — policyen inn ijudge-claim-prompt-v3.md— lukkes i G1 når v3 forfattes.