C2 KOMPLETT (C2.1->C2.4). C2.4 var verifikasjon, ikke nybygg: privat-greinen
i onboarding kom i 6e1fc6d (FOER C2.1), saa audit §167-onboarding-residu var
allerede lukket i kode. Denne oekta beviser + laaser det.
- tests/test-onboarding-parity.sh (NY): 14 asserts mot KILDEN
(onboarding-agent.md Phase 1; onboarding er interaktivt AskUserQuestion ->
ingen output-fixture). Dekker sektortype-forgrening, privat sektor-grein
(bank slipper «Annet»), privat reg-sett (DORA/Finansforetaksloven/
Finanstilsynets IKT-forskrift/Verdipapirhandelloven/Hvitvaskingsloven), og
at private aldri spoerres Offentleglova/Arkivloven. TDD roed->groenn:
strippet offentlig-only-kopi -> 13/14 FAIL; ekte fil -> 14/14 PASS.
- tests/run-e2e.sh: wiret --onboarding (med i --all).
- §167 (d) bevisst IKKE bygget: «egen dataklassifiserings-taksonomi for privat
Fase 3» er gull-plating utenfor K4 (dagens taksonomi er alminnelig norsk
bedrifts-klassifisering; privat fullfoerer Fase 3 uhindret).
- Omdoept feildoept docs/onboarding-ros-analysis.md ->
docs/windows-clone-to-pr-ros-guide.md (Windows clone-to-PR-bidragsyterguide,
ikke onboarding-analyse); plan+brief-ref oppdatert.
Verifisert: onboarding-parity 14/14 (NY) · validate 239/0/0 · e2e alle suiter ·
discovery 13/13 · test-hooks 11/11 · kb-integrity 192/192 (220 baseline-warns) ·
gitleaks 3 PRE-EKSISTERENDE (playground/vendor/).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
4.9 KiB
Brief — Redesign av onboarding-/virksomhetskontekst-mekanismen (ms-ai-architect)
Problemstilling + krav, ikke en godkjent plan. Opprettet 2026-06-19 etter operatør-flagg under Sesjon 3 av KB-redesignet. Design godkjennes separat (brief → plan, slik KB-redesignet gikk). Ikke start implementering uten operatør-go. Refereres fra STATE.md.
Hvorfor dette er kritisk
Virksomhetskontekst (sektor, lisens, dataklassifisering, budsjett, styringsmodell, regelverk) er det som gjør pluginens output relevant for denne brukeren i stedet for generisk. Operatørens vurdering (2026-06-19): hvis denne konteksten ikke er til stede i enhver interaksjon og ikke overlever oppgraderinger, skaper mekanismen frustrasjon i stedet for verdi — brukeren fyller den ut én gang og opplever at den «forsvinner» eller «ignoreres».
Verifisert tilstand i dag (2026-06-19)
- Innsamling:
/architect:onboard(orkestrator) →agents/onboarding-agent.md(5-fase intervju viaAskUserQuestion, ~13 spørsmål, sektor-forgrening offentlig/privat). - Lagring:
org/*.md— 5 markdown-filer med YAML-frontmatter (completed: true). Plassert inne i plugin-katalogen. - Konsum: 11 agenter har en «Virksomhetskontekst (automatisk)»-seksjon som betinget leser
org/-filene («hvis mappen finnes»). - Hook:
hooks/scripts/session-start-context.mjsviser onboarding-status ved sesjonsstart («Ingen virksomhetstilpasning. Kjør /architect:onboard»), men injiserer ikke selve innholdet.
Gap mot operatør-kravene
| # | Krav (operatør) | Gap i dag |
|---|---|---|
| 1 | Ambient i enhver interaksjon | Org-lesing er opt-in per agent og betinget. Et fritekst-spørsmål eller en kommando uten egen org-seksjon får ikke konteksten. Hooken injiserer status, ikke innhold. |
| 2 | Overlever oppgraderinger | org/ er gitignored (.gitignore:24) og bor i plugin-katalogen (~/.claude/plugins/marketplaces/.../ms-ai-architect/org/). git pull rører den ikke (bra for personvern), men reinstall / re-clone / marketplace-oppdatering til ny katalog mister den. Ikke git-backet, ikke backup/restore. |
| 3 | Fritekst-kontekst utover formelle spørsmål | Onboarding samler kun strukturerte svar fra faste AskUserQuestion-valg. Det finnes ingen «alt annet du vil at pluginen skal vite»-felt (fri prosa) som konteksten kan bære med seg. |
Tilstøtende (allerede dokumentert): docs/devils-advocate-audit-2026-06-18.md §167 — onboarding kan ikke representere en privat virksomhet (sektor-valg hardkodet offentlig; reguleringsliste mangler DORA/Finansforetaksloven m.m.). Bør løses i samme redesign siden det treffer samme filer.
Merknad:
docs/onboarding-ros-analysis.mdvar feildøpt — den er en Windows «clone-to-PR»-guide for ROS-featuren, ikke en onboarding-analyse. Omdøpt i C2.4 tildocs/windows-clone-to-pr-ros-guide.md.
Skisserte løsningsretninger (ikke bindende — design godkjennes senere)
- Robust lagringssted. Flytt org-data ut av plugin-katalogen til en bruker-eid sti som overlever reinstall (f.eks. under
~/.claude/eller en eksplisitt prosjekt-/bruker-data-mappe), og/eller etabler et eksplisitt eksport/import-mønster. Behold personvern (ikke commit til git). - Ambient injeksjon. La
session-start-context.mjsinjisere et kompakt org-sammendrag i hver sesjon (slikSTATE.mdinjiseres i dag), så konteksten er til stede uavhengig av hvilken agent/kommando som kjøres. Vurder lengde-budsjett. - Fritekst-felt. Legg til et fritt «ekstra kontekst»-felt i onboarding (én
org/free-context.mdeller seksjon) som bæres med i den ambiente injeksjonen. - Privat-sektor-paritet. Parametrer sektor-forgreningen så en privat virksomhet ikke er andrerangs (mekanisk endring i
onboarding-agent.md-spørsmålene + reguleringslister).
Verifiserbare akseptansekriterier (for den senere planen)
- K1 (ambient): Start en frisk sesjon med utfylt org-kontekst og still et fritekst-spørsmål uten å invokere en org-bevisst agent → svaret reflekterer minst ett org-faktum. (Bevis: konteksten injiseres, ikke betinget lest.)
- K2 (overlevelse): Simuler en oppgradering (flytt/reinstaller plugin-katalogen) → org-konteksten er fortsatt tilgjengelig. (Bevis: lagring utenfor det som blåses bort ved reinstall, eller dokumentert restore-steg.)
- K3 (fritekst): Onboarding fanger et fritt prosa-felt, og innholdet er synlig i en etterfølgende interaksjon.
- K4 (paritet): En privat virksomhet kan fullføre onboarding uten å velge «Annet» på sektor, med relevant reguleringsliste.
Avgrensning
- Ikke en del av KB-mekanisme-redesignet (Sesjon 1–5 + kurs-spor). Eget spor, egen plan.
- Prioriteres etter operatørens vurdering — naturlig kandidat når KB-redesignet (lag 1–3) er på plass, men kan hentes fram tidligere hvis brukervennlighet veier tyngst.
- Følger samme kontinuitetsregler: denne briefen bor i
docs/, refereres fraSTATE.md, ingen egenROADMAP.md.