ms-ai-architect/docs/spor1-migration-outcome.md

4.9 KiB
Raw Blame History

Spor 1 — Corpus-migrasjon: utfall og policy-delta (R4, Steg 911)

Datert 2026-07-04. Kilde: migrate-corpus.mjs --write over de 4 ikke-advisor-skills + build-registry --mergescore-skill --writereport-full-pass-worklist.

Denne noten registrerer det målte utfallet av Port-1-substrat-migrasjonen (Type/Source/TOC

  • stale-verified-fjerning) og skiller verifisert fra antatt, per verifiseringsplikten.

Hva migrasjonen gjorde (verifisert mot ground truth)

Felt Antall Kilde
Filer mutert (ikke-advisor) 327 / 327 applier-output + git diff --name-only
**Type:** stemplet 327 manifest (alle typer)
**Source:** backfilt 243 manifest (sourced reference; deferred = ingen source)
## Innhold TOC innsatt 325 store filer (≥100 linjer)
stale **Verified:** MCP fjernet 14 header + 9 body-dup (i 500B-vinduet) normalizer + parser
advisor-filer rørt 0 git diff --stat -- skills/ms-ai-advisor/
prosa-kropper endret (fra første ##) 0 per-fil git show HEAD: diff
verified satt null (uendret) migrasjonen stempler ALDRI verified

Slettelinjer i diffen: 25 totalt, alle **Verified:**-relaterte (21 Verified-linjer + 4 tilhørende tomlinjer) — ingen prosa slettet.

To applier-fixes oppdaget under kjøring (TDD, RED→GREEN)

Migrasjonen avdekket to reelle feil i de testede primitivene. Begge fikset med failing test først; suiten 728/728 grønn.

  1. insertHeaderFields anker-overshoot (2 filer). agentic-rag-patterns.md og gpt5-gpt41-pricing-models.md pakker et helt avsnitt inn i én **Status:**-linje (>500 B). Ankeret satte innsettingspunktet ETTER den linja → Type/Source landet forbi 500-byte-scan-vinduet. Applierens post-write-assertion fanget det og restaurerte hele korpuset fra backup (sikkerhetsmekanismen virket). Fix: ankeret faller tilbake til siste meta-linje som fortsatt ligger innenfor vinduet.

  2. normalizeStaleVerified body-dup poison (9 filer, alle mlops-genaiops/). Etter at header-**Verified:** MCP ble fjernet, leste parseVerifiedHeader fortsatt en stray duplikat-**Verified:** MCP-linje rett under --- men innenfor 500 B → filene ble falskt lest som "verified" → droppet til fresh, utenfor worklisten. Fix (operatør- godkjent utvidelse av carve-out): normalizer fjerner nå ALLE stale non-date **Verified:** i 500B-vinduet, uansett ----posisjon; kun stray metadata-linjer, aldri prosa. Alt forbi 500 B er ekte kropp og røres ikke.

Skill-score-delta (pre → post)

Skill Score CT5 available N4 (sub / pass)
ms-ai-engineering 95 → 99 false → true 0 → 1.000 / pass
ms-ai-governance 96 → 100 false → true 0.013 → 1.000 / pass
ms-ai-infrastructure 95 → 98 false → true 0 → 1.000 / pass
ms-ai-security 95 → 100 false → true 0 → 1.000 / pass
ms-ai-advisor 91 → 91 (uendret) (uendret)

CT5 pass=false på engineering + infrastructure er forventet: full CT5-pass krever verified-stempler, som settes først i corpus-judge-pass (fremtidig). CT5 er nå available (evaluert) på alle 4 fordi reference-filene bærer Type+Source.

Policy-artefakt: forventet dip inntraff IKKE

Planen (Risks) forhåndsdeklarerte en transient sub-90 dip (CT5/N4-aktivering kunne dra de 4 skills under 90 midlertidig) som et policy-artefakt å ikke reagere på. Målt utfall: dip inntraff ikke — scorene STEG (95→98100). N4 gikk 0→1.000 (TOC lagt til), CT5 ble available. Advarselen var altså konservativ; ingen skill falt under target. Registrert her for å hindre at en senere sesjon leter etter en dip som ikke finnes.

Worklist-transisjon (verifisert)

Post-migrasjon + poison-fix (report-full-pass-worklist.mjs):

Bøtte Antall Merknad
due 243 aktivert (var 0 pre-migrasjon); +9 etter poison-fix
fresh 0 var 9 (body-dup poison) → 0 etter fix
unsourced 59 deferred no-citation reference (dokumentert follow-up)
unmigrated 62 advisor (bevisst utenfor scope)
outOfScope 25
sum 389 243 + 59 + 62 + 25 = 389

Base-felt-restanse (dokumentert follow-up — utenfor dette substratet)

Substrat-migrasjonen normaliserer IKKE base-feltene (worklist/CT5/N4 leser dem ikke):

  • **Status:** mangler: 29 filer (planen anslo 31).
  • **Last updated:** (engelsk RE) mangler: 0 (planen fryktet 45 norske — ikke reelt).
  • **Source:** mangler: 59 (deferred no-ms-citation — trenger kilde før stempling).
  • verified/verified_by mangler: 302 (= verified null; settes i corpus-judge-pass).
  • TOC mangler: 0.

Base-felt-normalisering (Status på de 29) er en egen, senere oppgave — ikke nødvendig for Port-1-substratet.