chore(ms-ai-architect): bump v1.18.0 — korrekthetsprogrammet gikk fra dormant mekanisme til utfoert maaling [skip-docs]

170 commits siden v1.17.0 (2026-07-04): 73 feat, 45 fix, 45 docs, 5 chore,
1 test, 1 refactor. 363 filer endret (71 nye, 3 slettet), 218 av 389
reference-filer. Suite 728 -> 1097, validate-plugin 250 PASS / 0 FAIL.

Den baerende endringen: v1.17.0 la substratet (Spor 1), denne utgivelsen
kjoerte mekanismen. Hele korpus-doemmepasset R7.1-R7.5 er utfoert over alle
243 aldri-verifiserte reference-filer (3 960 claims, 14 pass born-verified
stemplet, 229 flagged, 984 flagg), og R11 flag->fiks er i eksekvering
(74 av 81 G7-entries lukket, formene #14-#37 ratifisert).

Sideloepende fant kryssmodell-reviewen 2026-07-09 den eneste feilen i
utgivelsen som var synlig for en bruker uten aa lese ledgeren: pluginen
lastet KB feil i INSTALLERT modus - 115 relative KB-stier i 26 commands
og 10 agenter resolverte kun i dev-modus (RX-P1/P2).

Filer: plugin.json 1.17.0 -> 1.18.0, README-badge + ny historikk-rad,
SECURITY.md "currently", CHANGELOG [1.18.0]-seksjon med [Unreleased]-
punktet flyttet inn. [Unreleased] beholdt tom.

Tagg, katalog-ref og push gjoeres av operatoeren med
catalog/scripts/release-plugin.mjs ms-ai-architect --create-tag --write
--commit --push.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-09-12 21:18:05 +02:00
commit 7655f1798e
4 changed files with 50 additions and 4 deletions

View file

@ -7,9 +7,54 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
## [1.18.0] - 2026-09-12
**Korrekthetsprogrammet gikk fra dormant mekanisme til utført måling.** v1.17.0 la substratet (Spor 1 — reference-kontrakten påført korpuset); denne utgivelsen *kjørte* mekanismen: hele korpus-dømmepasset (R7.1R7.5) er utført over alle 243 aldri-verifiserte reference-filer, og flag→fiks-loopen (R11) er i eksekvering på flaggene det produserte. Sideløpende injiserte en uavhengig kryssmodell-review (2026-07-09, 7 BLOCKER / 15 MAJOR) RX-serien, som avdekket at pluginen lastet kunnskapsbasen feil i **installert** modus — relative KB-stier resolverer kun i dev-modus, så subagentene mistet KB-lasten når pluginen ble installert fra katalogen. Det er den ene endringen i denne utgivelsen som var synlig for en bruker uten å lese ledgeren.
170 commits siden v1.17.0 (2026-07-04): 73 `feat`, 45 `fix`, 45 `docs`, 5 `chore`, 1 `test`, 1 `refactor`. 363 filer endret (71 nye, 3 slettet), hvorav 218 av de 389 reference-filene. Suite 728 → 1097 tester. Ingen persona-, kommando- eller agent-*kapabilitets*-endringer; Cosmo-utfasingen (R13/R14) og OKF-konsumskillen står fortsatt ubygget og utenfor denne utgivelsen.
### Added
- **Born-verified stempling i produksjon (R7-mekanismen):** `apply-verified-stamp.mjs` med surgical `insertVerifiedFields` (body byte-identisk, idempotent, atomisk; ustempelbar fil → samlet feil, aldri tvunget stempel), per-fil judge-ledger (`judge-pass-manifest.json`, `appendJudgedFile` + `pendingFiles` resume-skip — maks tap ved krasj er én fil), og `build-judge-payloads --claims <path>` for per-batch korpus-manifest. Aggregeringen er AND: `pass` kun hvis HVER judgebar claim er `grounded`.
- **R11 flag→fiks-verktøykjede:** `classify-fix-ops.mjs` (O1 verdi-swap / O2 subtraksjon / O3 omskriving, feiler lukket til O3), `apply-o2-ratified.mjs`, `check-o2-returns.mjs` (reproduserbar V1/V2/V2b-sjekk av returene), og **G7 review-kø**`data/g7-review-queue.json` + `lib/g7-queue.mjs` + `check-g7-queue.mjs` (exit 1 ved drift). Ankere er ORDRETTE strenger, aldri linjenummer (`line != real_line` i 9 av 17 R11-records). Designet og pilot-tallene: `docs/r11-tiered-fix-design.md`, `docs/r11-pilot-results.md`, `docs/r11-flag-format-2026-07.md`.
- **Deterministisk Layer B commit-gate (RX-OPS1):** `pre-commit-scan.mjs` (symlinket som `.git/hooks/pre-commit`) med innholds-basert allowlist (`data/layerb-allowlist.json`, 75 funn adjudikert). Unicode-/carrier-skann kjører nå pre-write via temp-fil. Layer B var før dette håndhevet kun prosedyralt via command-instrukser.
- **Én maskinlesbar AI Act-frist-kilde (RX-REG):** `scripts/kb-update/data/ai-act-deadlines.json` + `lib/ai-act-deadlines.mjs`, synk-testet mot CLAUDE.md-tabellen, assessor-malen og begge hookene (`tests/kb-update/test-ai-act-deadlines-sync.test.mjs`). Fristene hadde før dette fem uavhengige kopier.
- **Base-felt-drivere (R20R22, alle TDD):** `backfill-category.mjs`, `backfill-status.mjs`, `backfill-last-updated.mjs`, `relabel-dialect.mjs`, `relabel-dato.mjs`, `dedup-dato.mjs`, `dedup-plain-header.mjs`, `strip-stale-verified-pipe.mjs`.
- **Deteksjon av egne blindsoner i korpus-auditen:** plain-text `Verified:`-hale (`RE_PLAIN_VERIFIED`) og footer-dato-avvik med label-whitelist (RX-KB1/RX-KB1b) — begge flag-to-human, aldri auto-fiks.
- **`SECURITY.md`** i repo-roten (sårbarhetsrapportering, støttet versjon, advisory-praksis).
- **`## Non-goals` i README:** pluginen gir ikke juridisk rådgivning, deployer/provisjonerer ingenting, er ikke en live priskilde, dekker kun Microsoft-stacken, er ikke et vendor-produkt og er ikke tilknyttet Microsoft.
- **OKF-konsum-cutter (`scripts/okf-consume/`) — kun måling, ingen runtime importerer den.** Deterministisk tokenisering, feltvekting, supersesjonsregel og budsjett-kutt med `[unread]`-kvittering mot hele kandidatnevneren. Målingen den ble bygget for falt negativt ut: på 40 forhåndsregistrerte gullspørsmål ga OKF-metadataen **ingen målbar gevinst** over kontrollarmen uten OKF (12/40 mot 12/40). Skillen er derfor **avgjort til plan, ikke bygget**.
### Changed
- **OKF second-brain (sporet for brukerens egen kontekst-wiki — IKKE de 389 skill-refs):** Ratifiserte den delte katalog-spec-en `catalog/docs/okf-second-brain/spec.md` v0.1 som eneste kilde for konvensjonen; lokal brief (`docs/okf-second-brain-brief-2026-06.md`) *refererer* den nå i stedet for å restate. Premiss-korreksjoner registrert (spec §9): `mdcode`/`kcmd` er ikke et OKF-verktøy (droppet fra adopsjonsplanen); ingen gjenbrukbar OKF-ingest-kode finnes (`reference_agent` er GCP/Gemini-bundet → adopter prompt-mønstre, ikke kode); kanonisk anbefalt feltnavn er `resource` (ikke `source`). Full OKF-pakke-ambisjon består — minimal kontrakt (spec §3) er gulvet, rike felt rir over som extension keys (spec §5). Kun docs/plan-justering; bygging er separat go.
- **Hele korpus-dømmepasset er kjørt (R7.1R7.5): 243 av 243 aldri-verifiserte reference-filer dømt, 3 960 claims.** Utfall: **14 filer `pass` → born-verified stemplet**, 229 `flagged` med til sammen **984 flagg** (R8 enumerasjons-/flerdelte 370, R2 190, R4 49, resten fritekst-begrunnede). Fem batcher (45/49/49/49/51), 810 samtidige subagenter per bølge, én subagent per fil, live Microsoft Learn, blind for gullsettet, read-only. Re-judge-gate bestått ved hver batch-start. **Dette er et måleresultat, ikke en kvalitetsforbedring i seg selv:** at 229 av 243 filer bærer minst ett ikke-belagt ledd er tallet programmet trengte for å kunne rette dem, og rettingen er R11 — ikke fullført i denne utgivelsen.
- **R11 flag→fiks i eksekvering, med ratifiserte fikse-*former* framfor per-flagg-skjønn.** 74 av 81 G7-kø-entries lukket (7 åpne); formene #14#37 ratifisert av operatør og anvendt klassevis (droppet kvalifikator, løgnaktig proveniens, motsier-kilden, under-påstand). Disiplinen som bar det: hvert kandidatsett måles korpus-bredt med nevner FØR en form ratifiseres, kilden adjudiseres per **passasje** (ikke per fil), og entryens eget premiss verifiseres — gjentatte ganger viste klassen seg å være større eller mindre enn entryen påstod, og i flere tilfeller var entryens frikjennende klausul selv defekten.
- **Reference-headerne har nå komplett base-feltsett.** `Category` backfilt på 25 kategorisløse filer (R20), `Status` på 14 advisor-filer (R21) + 25 uten (R22 Enhet 3), dialekt-relabel på 51 filer / 73 byte-eksakte swaps (`Kategori``Category`, `Sist oppdatert``Last updated`), `Dato``Last updated` på 16 filer, og dual-header-dedup på 9 (5 mlops-genaiops + 4 ai-act). Manglende `Status`/`Last updated`: 29+4 → 0.
- **Onboarding-kontekst lastes nå etter dekning, ikke etter fast rekkefølge.** Tre målte defekter i lastesiden, alle funnet ved å kjøre den ekte hooken: (1) per-felt-cappen på 160 tegn kappet hvert felt uavhengig av ubrukt budsjett — et 2 000-tegns svar tapte 92 % — erstattet av et totalbudsjett på 4 000 tegn fordelt max-min-rettferdig (ingen felt får mindre enn det gamle taket; den gamle cappen er blitt gulvet); (2) `org/`-filsettet var frosset, så en fil brukeren selv la til nådde aldri modellen — katalogen leses nå; (3) linje-cappen var en seleksjon etter filrekkefølge, ikke en reduksjon: målt på 55 korpusdokumenter var 53 filer usynlige, *stille* — brukeren trodde pluginen var onboardet mens rådet var generisk. Seleksjonen er nå bredde-først per fil (10/160 → 160/160 på samme gullsett), og «Fri kontekst» er skjermet mot overflow-kuttet fordi posisjon i sammendraget er lese-rekkefølge, ikke prioritet. Ved den designede onboardingen (6 filer, 19 felt) er hookens output byte-identisk med før.
- **AI Act-fristene resynket mot vedtatt Digital Omnibus:** Annex III høyrisiko 2027-08-02 → **2027-12-02**, Omnibus-status «vedtatt (avventer OJ)», **Nkom utpekt** som koordinerende markedstilsynsmyndighet og nasjonalt kontaktpunkt, KI Norge navngitt, arkivlov-retensjon lagt inn. Påført 4 governance-refs + conformity + fixtures/playground, med regresjonslint (`test-governance-refs-reg-lint.test.mjs`, `test-fixtures-playground-frist-lint.test.mjs`).
- **Vendored design-system re-synket mot sannhet.** `source_commit` pekte på `c1b7bad`, som ikke finnes som git-objekt i kildrepoet — og det vendorede treet inneholdt en fil som ikke fantes i den commiten, så etiketten var ikke bare unåbar, den var **usann**. Kjørt DS-repoets eget gjenopprettede skript (aldri en lokalt rekonstruert kommando); `source_commit` leser nå `efaa3d0`, verifisert nåbar mot den offentlige remoten. 26 av 27 filer byte-identiske med kilden.
- **`GOVERNANCE.md` konsolidert til kanonisk kilde** i `repo-standard`; begge lenkestedene i README repekt (det andre sto i en brødtekst-seksjon, usynlig for enhver måling som antok én lenke per README).
- **README-førsteskjermen mot org-standarden:** `## Install` løftet ut av «Quick Start» med begge CLI-linjene + `settings.json` som andre form, `### Prerequisites``### Requirements`, «Version History» → `## Changelog`, og åpningslinjen matcher nå forge-beskrivelsen ordrett.
- Ratifiseringen av den delte OKF second-brain-spec-en (`catalog/docs/okf-second-brain/spec.md` v0.1) som eneste kilde for konvensjonen; lokal brief (`docs/okf-second-brain-brief-2026-06.md`) *refererer* den nå i stedet for å restate. Premiss-korreksjoner (spec §9): `mdcode`/`kcmd` er ikke et OKF-verktøy; ingen gjenbrukbar OKF-ingest-kode finnes (`reference_agent` er GCP/Gemini-bundet → adopter prompt-mønstre, ikke kode); kanonisk feltnavn er `resource` (ikke `source`). Adopsjonsflaten er **brukerens egen second brain**, ikke de 389 skill-refs (kost/nytte blokkerer der, passformen er god).
### Fixed
- **Pluginen lastet kunnskapsbasen feil i installert modus (RX-P1 + RX-P2 — den mest brukersynlige feilen i denne utgivelsen).** 115 `skills/`-KB-stier i 26 commands og 10 agenter var relative og resolverte kun i dev-modus; installert fra katalogen mistet subagentene KB-lasten helt. Alle forankret med `${CLAUDE_PLUGIN_ROOT}/`, og ytterligere 36 bare referanse-subdir-stier i 6 agenter + 2 commands fullkvalifisert (også innen-skill-kortformer). Delegeringen forent til registrert scoped navn `ms-ai-architect:<agent>` (var: feil namespace `architect:X`, bare navn, eller `general-purpose` + «Read agents/X.md»). 145 forankrede stier verifisert eksisterende, 0 manglende. Mekanisme mot regresjon: `validate-plugin.sh` Check 6/6d (install-safety-lint med negativ-probe som beviser at den tenner).
- **Skrive-sikkerhet i korpus-driverne (RX-OPS2):** `backup.mjs restore()` gjorde hel-tre `rmSync` + `cpSync`, som under parallelle økter stille slettet søsken-filers skriv. Erstattet av scoped per-fil-rollback (ruller kun tilbake kjøringens egne skriv; nyskapte filer slettes, prior bytes gjenopprettes atomisk; intet destruktivt rm→cp-vindu). Fem drivere gikk fra `writeFileSync` til `atomicWriteSync` (crash-safe tmp+rename); `detectStaleRollback` aborterer ved forrige krasj-sentinel.
- **Regulatoriske siteringsfeil i governance-korpuset (RX-REG-KB, hver verifisert mot EUR-Lex før skriving):** Art. 5(1) bokstavtildeling i klassifiseringsmetodikken, Art. 6/99/49/111 + bokføringslov i compliance-guiden, Art. 49(3)/48(2) i registrerings-/samsvarskjeden, 5 AI Act-siteringer rettet, og nudifiers/CSAM under Art. 5-forbudet lagt inn med caveat (verifisert, avventer OJ).
- **87 reference-filer claimet en verifisering som aldri skjedde.** Filene bar en plain-text `| Verified: <dato>`-hale på `**Last updated:**`-linjen, usynlig for den bold-only kontrakt-stacken — samme poison-klasse som de 14 bold-forekomstene Spor 1 fjernet. Uhåndtert ville R7s stempling lagt en bold-verdi ved siden av den plain og gitt **to motstridende proveniens-claims per fil**. Strippet verdibevarende (dato byte-eksakt, linjeantall uendret, body byte-identisk), og auditen ser nå formen slik at den ikke kan gjenoppstå stille.
- **Korpus-defekter i usynlige tegn:** 2 homoglyph-ord og 2 filer med U+00AD (soft hyphen) rettet; 3 footer-dato-kontradiksjoner git-adjudisert. Korpus 389/389 exit 0 på Layer B.
- **Innholdsfikser verifisert mot Microsoft Learn (R5 G5b):** retired `gpt-35-turbo``gpt-4o-mini`, vector quantization GA-dato 2024-07-01, og to overclaims nyansert.
- **Døde lenker:** `azure-mcp-server`-lenken i README, disclosure-lenken på README:7 (erstattet av inline-tekst), og de døde `sync-design-system.mjs`-instruksjonene i README + `docs/playground.md` — skriptet og `shared/`-katalogen de pekte på finnes ikke i polyrepo-treet.
- **`dpia-agent` ba brukeren om noe agenten ikke kan gjøre** («spør bruker» → «marker vurderingen»), speilet til `ros-analysis-agent`. `adr-writer-agent` mistet `Write`-verktøyet og returnerer nå ADR-markdown til hovedkonteksten — kommandoen er eneste skriver, subagenter skriver aldri. `classify``dpia``ros`-kjeden wiret eksplisitt: Task-templatene bærer nå AI Act-klassifiserings- og DPIA-funn-feltene agentene allerede branchet på.
### Removed
- **`GOVERNANCE.md`** — byte-sammenlignet mot kanonisk fil i `repo-standard` før fjerning (18 hunks, alle 1-for-1 substitusjoner, intet innhold tapt); ingen gate i denne repo-klassen leser fila.
- **`scripts/kb-update/backfill-toc.mjs`** — superseded av `migrate-corpus.mjs`; `cosmo-removal-brief:41`-koblingen migrert, §8-residualen logget.
- **`docs/plugin-roadmap-2026-07.md`** — sesjonsplaner holdes internt, ikke i det offentlige speilet.
Suite 1097/1097 grønn, `validate-plugin.sh` 250 PASS / 0 FAIL.
## [1.17.0] - 2026-07-04