ms-ai-architect/tests/kb-update
Kjell Tore Guttormsen 31d2b62aed feat(ms-ai-architect): gjør reduksjonsenheten til dokumentet, ikke feltet [skip-docs]
Linje-cappen på 25 var ikke en reduksjon, men en seleksjon etter fast
rekkefølge. Målt 2026-08-26 (bake-off arm A2b, flatt org/, 55 korpusdokumenter):
61 filer og 183 felt inn, 24 felt ut — alle fra 8 filer — mens 1 013 av de 4 000
verditegnene sto ubrukt. 53 filer var usynlige, og usynligheten var stille:
brukeren tror pluginen er onboardet mens rådet er generisk.

Sammendraget bygges ambient ved sesjonsstart, FØR det finnes et spørsmål, så det
finnes ingen relevans å rangere mot. Når man ikke kan rangere, er det ærlige
alternativet å dekke:

- linjebudsjettet utledes fra filantallet (én linje per fil) i stedet for å være
  konstant, begrenset av MIN_COVERAGE_VALUE_LEN = 60 tegn per linje — forankret
  i den designede onboardingens egne feltlengder (median 34, snitt 75, maks 278)
- seleksjonen er bredde-først på tvers av filer: hver fil gir fra seg sitt første
  felt før noen fil gir fra seg sitt andre. Emisjonsrekkefølgen er fortsatt
  filrekkefølgen, så leserekkefølgen er uendret
- overflow-markøren oppgir hvor mange FILER som er utelatt, ikke bare felt

Målt mot bake-off-harnesset (forhåndsregistrert gullsett, 40 spørsmål x 4
frikontekst-lengder), kontrollmålt mot git stash:

  n=55   A2b 10/160 -> 160/160   (kostnad 4 443 -> 4 923 tegn)
  n=25   A2b 10/160 ->  68/160
  n=10   A2b 10/160 ->  24/160

A2b treffer nå last-alt-taket (identisk på alle fire korpusstørrelser) til 4 923
tegn mot 33 127. Ved den designede onboardingen (6 filer, 19 felt) er hookens
output byte-identisk med før — kostnaden øker kun der den gamle koden skjulte
dokumenter. Lesesiden verifisert ende-til-ende: hooken emitterer 62 linjer mot
25, med markøren "0 av 61 filer helt utelatt".

Reach-metrikken sier at dokumentet er representert, ikke at svaret er riktig;
hver fil bæres av ~65 tegn av sitt første felt. Den harde faktum-metrikken er
ugyldig — dens egen kjent-positiv (last-alt) treffer bare 4/40.

Tester: 7 nye i test-user-data.test.mjs (3 røde mot HEAD, verifisert med git
stash). Sporet suite 1070/1070.

[skip-docs]: intern reduksjonsmekanikk. Ingen kommando, agent, skill eller hook
endrer grensesnitt; README/CLAUDE.md beskriver ingen av disse konstantene.
2026-08-26 14:49:40 +02:00
..
test-adversarial-detect-integration.test.mjs feat(ms-ai-architect): Layer B ingestion-gate — deterministisk adversariell-innhold-skann før skriving/commit (G6 §8 / R6 punkt d, TDD) [skip-docs] 2026-07-04 07:13:43 +02:00
test-adversarial-scan.test.mjs feat(ms-ai-architect): Layer B ingestion-gate — deterministisk adversariell-innhold-skann før skriving/commit (G6 §8 / R6 punkt d, TDD) [skip-docs] 2026-07-04 07:13:43 +02:00
test-ai-act-deadlines-sync.test.mjs feat(ms-ai-architect): RX-REG — én maskinlesbar AI Act-frist-kilde + synk-test (B2-B5, R3-5, M10) [skip-docs] 2026-07-15 06:13:36 +02:00
test-apply-verified-stamp.test.mjs feat(ms-ai-architect): R7.1 — apply-verified-stamp driver (surgical insertVerifiedFields over ledger-pass-records; invariant-assertert, atomisk, idempotent; ustempelbar → samlet feil, TDD 3 tester) [skip-docs] 2026-07-18 11:19:26 +02:00
test-atomic-write.test.mjs feat(ms-ai-architect): add lib/atomic-write for crash-safe state files [skip-docs] 2026-05-05 10:32:13 +02:00
test-audit-corpus-headers.test.mjs feat(ms-ai-architect): RX-HDR oppløst → permanent R7-ustempelbar audit-signal (premiss 10→2) [skip-docs] 2026-07-17 03:43:04 +02:00
test-authority.test.mjs feat(ms-ai-architect): Sesjon 6 - lag 3 verifisering-INN (authority-binding) 2026-06-19 22:58:10 +02:00
test-backfill-category.test.mjs fix(ms-ai-architect): RX-OPS2 skrive-sikkerhet i driverne — scoped restore + atomiske skriv [skip-docs] 2026-07-15 21:31:29 +02:00
test-backfill-last-updated.test.mjs fix(ms-ai-architect): Enhet 4 — Last updated på datoløs advisor decision-trees.md (git content-commit 2026-06-23) [skip-docs] 2026-07-16 20:19:07 +02:00
test-backfill-status.test.mjs feat(ms-ai-architect): R22 decision-b Enhet 3 — Status-backfill 25 none + ai-act dual-header-dedup 4 (Missing Status/Last-updated 29+4→0) [skip-docs] 2026-07-07 07:45:27 +02:00
test-backup-restore.test.mjs fix(ms-ai-architect): RX-OPS2 skrive-sikkerhet i driverne — scoped restore + atomiske skriv [skip-docs] 2026-07-15 21:31:29 +02:00
test-classify-ref-type.test.mjs feat(ms-ai-architect): Spor 1 — klassifiserer-CLI + registry-merge (389 klassifisert, union reconciled) [skip-docs] 2026-07-03 00:55:15 +02:00
test-course-diff.test.mjs feat(ms-ai-architect): C3.2 — course-diff (ren) + course-registry load/save (TDD) [skip-docs] 2026-06-23 13:12:49 +02:00
test-courses-invariant.test.mjs feat(ms-ai-architect): C3.2 — course-diff (ren) + course-registry load/save (TDD) [skip-docs] 2026-06-23 13:12:49 +02:00
test-cross-platform-paths.test.mjs feat(ms-ai-architect): add lib/cross-platform-paths for cache/log/state/backup dirs [skip-docs] 2026-05-05 10:30:31 +02:00
test-decisions-actions.test.mjs feat(ms-ai-architect): Sesjon 18 — B3 apply-path (sanitize+retire), merge→S19 [skip-docs] 2026-06-20 20:32:51 +02:00
test-decisions-courses.test.mjs feat(ms-ai-architect): C3.5 — courses-kolleksjon i decisions-io.mjs (UID-nøklet, Spor C) + kb-update §3c kurs-gate (TDD) [skip-docs] 2026-06-23 14:38:56 +02:00
test-decisions-io.test.mjs feat(ms-ai-architect): Sesjon 3 - decision-ledger (lag 2) + discovery-dedup 2026-06-19 21:48:03 +02:00
test-dedup-dato.test.mjs fix(ms-ai-architect): Enhet 3b — dedup dual-**Dato:** i 5 mlops-genaiops-filer (Created-relabel/drop, git-verifisert) [skip-docs] 2026-07-16 20:38:24 +02:00
test-dedup-plain-header.test.mjs feat(ms-ai-architect): R22 decision-b Enhet 3 — Status-backfill 25 none + ai-act dual-header-dedup 4 (Missing Status/Last-updated 29+4→0) [skip-docs] 2026-07-07 07:45:27 +02:00
test-detect-courses-invariant.test.mjs feat(ms-ai-architect): C3.4 — detect-courses.mjs (binder C3.1–C3.3, LLM-fri) + selectDetectionSteps + include_course_detection (TDD) [skip-docs] 2026-06-23 14:24:57 +02:00
test-detect-courses.test.mjs feat(ms-ai-architect): C3.4 — detect-courses.mjs (binder C3.1–C3.3, LLM-fri) + selectDetectionSteps + include_course_detection (TDD) [skip-docs] 2026-06-23 14:24:57 +02:00
test-detection-schedule.test.mjs feat(ms-ai-architect): Spor 3 Port 3 (rapporterende gulv) — KB-tillit-signal i SessionStart [skip-docs] 2026-06-29 14:58:32 +02:00
test-discover-invariant.test.mjs feat(ms-ai-architect): Sesjon 3 - decision-ledger (lag 2) + discovery-dedup 2026-06-19 21:48:03 +02:00
test-driver-atomic-writes.test.mjs fix(ms-ai-architect): RX-OPS2 skrive-sikkerhet i driverne — scoped restore + atomiske skriv [skip-docs] 2026-07-15 21:31:29 +02:00
test-fixtures-playground-frist-lint.test.mjs fix(ms-ai-architect): RX-REG-KB fixtures-halen — 2027-08-02→2027-12-02 Annex III + Transparens-label i fixtures/playground [skip-docs] 2026-07-15 09:36:44 +02:00
test-full-pass-worklist.test.mjs test(ms-ai-architect): Spor 1 — akseptansetester (residual scoped, worklist-aktivering, CT5/N4, poison-doc) [skip-docs] 2026-07-04 09:25:44 +02:00
test-governance-refs-reg-lint.test.mjs fix(ms-ai-architect): RX-REG² nudifiers/CSAM Art. 5-forbud — caveatet KB-tillegg (verifisert, avventer OJ) [skip-docs] 2026-07-15 10:14:17 +02:00
test-kb-headers.test.mjs feat(ms-ai-architect): Spor 3 Port 2 — create-time-guard (born-verified contract) [skip-docs] 2026-06-29 10:36:21 +02:00
test-keychain.test.mjs feat(ms-ai-architect): C3.1 — keychain + Learn Platform API-klient (TDD) [skip-docs] 2026-06-23 12:59:16 +02:00
test-launchd-plist.test.mjs feat(ms-ai-architect): Sesjon 24 — C1 Tier 2 lokal launchd-scheduler (deteksjon-only, ToS-trygt) [skip-docs] 2026-06-21 19:59:18 +02:00
test-layerb-allowlist.test.mjs feat(ms-ai-architect): Enhet A2 — Layer B baseline-adjudikering: innholds-basert allowlist (75 funn adjudikert, TDD) + 4 korpus-defekter fikset (2 homoglyph-ord, 2 U+00AD-filer); korpus 389/389 exit 0 [skip-docs] 2026-07-18 10:31:06 +02:00
test-learn-api.test.mjs feat(ms-ai-architect): C3.1 — keychain + Learn Platform API-klient (TDD) [skip-docs] 2026-06-23 12:59:16 +02:00
test-log-rotate.test.mjs feat(ms-ai-architect): add lib/log-rotate for bounded log disk use [skip-docs] 2026-05-05 10:54:50 +02:00
test-migrate-apply.test.mjs fix(ms-ai-architect): RX-OPS2 skrive-sikkerhet i driverne — scoped restore + atomiske skriv [skip-docs] 2026-07-15 21:31:29 +02:00
test-pre-commit-scan.test.mjs feat(ms-ai-architect): RX-OPS1 — deterministisk Layer B commit-gate (pre-commit-scan) + runbook Forutsetning 0 [skip-docs] 2026-07-16 20:52:45 +02:00
test-priority-unverified.test.mjs feat(ms-ai-architect): Sesjon 5 carry-forward B — datoløse filer → unverified-tier 2026-06-19 22:31:25 +02:00
test-registry-migrate.test.mjs feat(ms-ai-architect): Sesjon 2 - ai-foundry->foundry registry-remap 2026-06-19 21:09:00 +02:00
test-relabel-dato.test.mjs fix(ms-ai-architect): Enhet 3b — dedup dual-**Dato:** i 5 mlops-genaiops-filer (Created-relabel/drop, git-verifisert) [skip-docs] 2026-07-16 20:38:24 +02:00
test-relabel-dialect.test.mjs feat(ms-ai-architect): decision-b Enhet 1 — dialekt-relabel 51 filer (Kategori→Category + Sist oppdatert→Last updated), 73 byte-eksakte swaps [skip-docs] 2026-07-06 10:07:52 +02:00
test-rx-p2-wiring.test.mjs fix(ms-ai-architect): RX-P2 reg-kjede-wiring + komprehensiv agent-sti-forankring [skip-docs] 2026-07-15 12:17:01 +02:00
test-scan-adversarial-content.test.mjs fix(ms-ai-architect): G6 Layer B — unicode/carrier-scan kjører pre-write via temp-fil (lukker ingestion-brief §8-akseptansegap, TDD) [skip-docs] 2026-07-04 23:04:00 +02:00
test-strip-stale-verified-pipe.test.mjs fix(ms-ai-architect): RX-KB1 strip stale plain-Verified pipe-tails (87) + audit-deteksjon [skip-docs] 2026-07-16 20:04:52 +02:00
test-taxonomy.test.mjs fix(ms-ai-architect): registry-herding Fase 1a — +5 sitemap-prefiks + skjemaløs URL-ekstraksjon 2026-06-26 10:15:46 +02:00
test-transform.test.mjs feat(ms-ai-architect): R20 — Category-backfill på 25 kategorisløse ref-filer via insertMetaField [skip-docs] 2026-07-06 07:39:54 +02:00
test-url-normalize.test.mjs fix(ms-ai-architect): registry-herding Fase 1a — +5 sitemap-prefiks + skjemaløs URL-ekstraksjon 2026-06-26 10:15:46 +02:00
test-user-data.test.mjs feat(ms-ai-architect): gjør reduksjonsenheten til dokumentet, ikke feltet [skip-docs] 2026-08-26 14:49:40 +02:00
test-validate-kb-file.test.mjs test(ms-ai-architect): Spor 1 — akseptansetester (residual scoped, worklist-aktivering, CT5/N4, poison-doc) [skip-docs] 2026-07-04 09:25:44 +02:00
test-validate-plugin.test.mjs fix(ms-ai-architect): RX-P2 reg-kjede-wiring + komprehensiv agent-sti-forankring [skip-docs] 2026-07-15 12:17:01 +02:00
test-verified-staleness.test.mjs feat(ms-ai-architect): Spor 3 Port 3 (inkrementell) — stale-since-verified klassifiserer + CLI [skip-docs] 2026-06-29 14:53:51 +02:00
test-verify-out.test.mjs feat(ms-ai-architect): Sesjon 4 - verifisering-ut (lag 5) + adversarial regresjonstest 2026-06-19 22:00:36 +02:00