diff --git a/README.md b/README.md
index f268950..4181405 100644
--- a/README.md
+++ b/README.md
@@ -156,7 +156,7 @@ Key command: `/graceful-handoff [topic-slug] [--no-commit] [--no-push] [--dry-ru
---
-### [MS AI Architect — Azure AI and Microsoft Foundry](plugins/ms-ai-architect/) `v1.9.0` `🇳🇴 Norwegian`
+### [MS AI Architect — Azure AI and Microsoft Foundry](plugins/ms-ai-architect/) `v1.10.0` `🇳🇴 Norwegian`
Microsoft AI solution architecture guidance for Norwegian public sector and enterprise.
@@ -171,13 +171,14 @@ Key commands: `/architect`, `/architect:ros`, `/architect:security`, `/architect
12 specialized agents · 24 commands · 5 skills (387 reference docs) · 2 hooks · sitemap-based KB monitoring
-**Playground (v3, 2026-05-03):** Replaces the prior v2 5-step pipeline with a multi-surface decision-builder + report viewer. The single-file HTML app lives at `playground/ms-ai-architect-playground.html` (~3870 lines).
+**Playground (v3, v1.10.0 — felles grunnskjelett + Tier 3-adopsjon, 2026-05-04):** Multi-surface decision-builder + report viewer. The single-file HTML app lives at `playground/ms-ai-architect-playground.html` (~3870+ lines). v1.10.0 introduces a shared visual signature across all 17 report renderers and Aksel-aligned light-mode tokens.
-- **4 surfaces:** Onboarding (18 shared organization fields prefill all command forms) → Home (project list + 3 entry tracks) → Catalog (24 commands grouped in 5 expansion categories with search) → Project (per-project tabs, command-form prefill, paste-back report import + visualization)
-- **Persistence:** IndexedDB primary + localStorage fallback, schema-versioned (`STATE_KEY = 'ms-ai-architect-state-v1'`) with eager migrations pipeline
-- **17 inline report renderers** routed via canonical archetype-routing table: classify pyramid, ROS/security 5×5 + 6×5 risk matrices, radar, findings tables, cost distribution, capability matrix, phased plans, decision-record envelopes
-- **Light/dark theme toggle** persisted in `localStorage('ms-ai-architect-theme')`, FOUC-safe via `
`-bootstrap script
-- **Validation:** 240 PASS combined (`bash tests/run-e2e.sh --playground` runs static-structure + parser-fixture suites)
+- **4 surfaces:** Onboarding (4 strukturerte / 14 fritekst, prefill alle command-skjemaer) → Home (project list + 3 entry tracks) → Catalog (24 commands grouped in 5 expansion categories with search) → Project (per-project tabs, command-form prefill, paste-back report import + visualization)
+- **Persistence:** IndexedDB primary + localStorage fallback, schema-versioned (`STATE_KEY = 'ms-ai-architect-state-v1'`) with eager migrations pipeline. v1.10.0 adds idempotent `dataVersion v1→v2` migration that backfills `verdict` + `keyStats` on existing reports.
+- **17 inline report renderers (felles grunnskjelett)** — all wrap output through `renderPageShell()` with eyebrow + h1 + optional verdict-pill + optional key-stats-grid + archetype body (pyramid, 5×5/6×5/7×5 matrix, radar, kanban, mat-ladder, scenario-cards, screen-tabs, residual-pair, top-risks, recommendation-card, suppressed-panel, critique-card, read-more, traffic-light).
+- **Foundation helpers** — `renderPageShell`, `renderVerdictPill`, `renderKeyStatsGrid`, `inferVerdict`, `inferKeyStats`, `KEY_STATS_CONFIG`.
+- **Light/dark theme toggle** with Aksel-aligned tokens in both modes (full WCAG AA contrast). Persisted in `localStorage('ms-ai-architect-theme')`, FOUC-safe via ``-bootstrap script.
+- **Validation:** 271 PASS combined — 201 static + 70 parser-fixture + 7 migration. `bash tests/run-e2e.sh --playground` runs static-structure + parser-fixture suites.
- **Vendored design-system** at `playground/vendor/`, kept in sync via `scripts/sync-design-system.mjs ms-ai-architect`. Standalone — opens from `file://` without server or marketplace dependency.
→ [Full documentation](plugins/ms-ai-architect/README.md)
diff --git a/plugins/ms-ai-architect/.claude-plugin/plugin.json b/plugins/ms-ai-architect/.claude-plugin/plugin.json
index 6321d42..26f29f8 100644
--- a/plugins/ms-ai-architect/.claude-plugin/plugin.json
+++ b/plugins/ms-ai-architect/.claude-plugin/plugin.json
@@ -1,6 +1,6 @@
{
"name": "ms-ai-architect",
- "version": "1.9.0",
+ "version": "1.10.0",
"description": "Microsoft AI Solution Architect - structured architecture guidance for the full Microsoft AI stack",
"author": {
"name": "Kjell Tore Guttormsen"
diff --git a/plugins/ms-ai-architect/CHANGELOG.md b/plugins/ms-ai-architect/CHANGELOG.md
index 5e2288d..ab87961 100644
--- a/plugins/ms-ai-architect/CHANGELOG.md
+++ b/plugins/ms-ai-architect/CHANGELOG.md
@@ -5,6 +5,56 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [1.10.0] - 2026-05-04
+
+### Added — Playground v3 felles grunnskjelett (foundation refactor)
+
+All 17 report renderers now share a unified visual signature through `renderPageShell()`. The plugin contract (24 commands, 12 agents, 5 skills, 2 hooks, MCP) is unchanged — this release is playground-internal.
+
+- **Foundation helpers:** `renderPageShell()`, `renderVerdictPill()`, `renderKeyStatsGrid()`, `inferVerdict()`, `inferKeyStats()`, `KEY_STATS_CONFIG` — provide eyebrow + h1 + optional 5-band verdict-pill + optional 3-5 key-stats-grid that every renderer wraps around its archetype-specific body.
+- **Schema v1→v2 migration:** Eager `MIGRATIONS` pipeline at cold-load and import time, idempotent via `dataVersion=2` guard. Backfills `verdict` and `keyStats` on existing reports without disrupting user state. `tests/test-playground-migrations.sh` (7 PASS) validates idempotency.
+- **Tier 3 supplement components integrated:** kanban (conformity, review), mat-ladder (migrate, poc), screen-tabs (utredning, project surface), scenario-card-grid (license, compare), residual-pair (dpia, ros), top-risks (ros), recommendation-card (security, ros), suppressed-panel (review), critique-card (adr), read-more (utredning, summary), traffic-light (poc).
+- **Parser extensions (R15 forward-compat):**
+ - `parsePhasedPlan` — `phases[].status` (planned/active/done) + `currentPhaseIndex` + `pocVerdict`
+ - `parseComparison` — `winner` field from `## Vinner: `-line
+ - `parseMatrixRisk` — `_consumer` discriminator (Strategy A) for shared dpia + ros usage
+- **Onboarding redesign:** Exactly 4 structured fields (select / multiSelect for sector, regulations, license, scenarios) + 14 free-text fields with placeholder hints. Improves prefill flexibility while keeping enum-driven fields where they matter.
+
+### Added — Light theme tokens
+
+- `[data-theme="light"]`-block in `shared/playground-design-system/tokens.css` (re-synced to `playground/vendor/`) with verbatim Aksel values. Both themes meet WCAG 2.2 AA contrast.
+- Theme-bootstrap-script in `` reads saved `localStorage('ms-ai-architect-theme')` before stylesheets parse — no flash-of-wrong-theme.
+
+### Added — v1.10.0 fixtures and validation
+
+- `tests/test-playground-migrations.sh` — new 7 PASS suite for v1→v2 idempotency.
+- `tests/fixtures/playground/state-v1-snapshot.json` — pre-migration state fixture.
+- `tests/test-playground-v3.sh` extended to 201 PASS — new asserts on per-renderer `renderPageShell` usage, Tier 3-bruk (kanban / mat-ladder / screen-tabs / scenario-cards), onboarding field-distribution (4 strukturerte / 14 fritekst), `_consumer`-strategi A.
+- Regenerated fixtures: `migrate.md`, `poc.md` (per-phase Status + POC-Verdict), `compare.md` (`## Vinner:`-line).
+- `playground/A11Y-RAPPORT.md` — populated with code-based static assessment of all 4 surfaces and 17 renderers (was: skeleton). Browser-axe-core run still pending per `MANUAL-CHECKLIST.md` section 10.
+
+### Changed
+
+- `playground/ms-ai-architect-playground.html` — all 17 renderers wrap output via `renderPageShell()`. Inline CSS additions (e.g. `.pyramide-desc`, `.scenario-card-grid`, `.residual-pair`, `.read-more-block`, `.top-risks`, `.recommendation-card`, `.suppressed-panel`) are flagged as v1.11.0 candidates for hoisting to `shared/playground-design-system/components-tier3-supplement.css`.
+- Plugin README — refreshed v1.10.0 section with foundation-helpers, Tier 3 adoption list, parser extensions, schema migration, theme-tokens.
+- Plugin CLAUDE.md — Playground (v3) section now reflects v1.10.0 architecture, validation counts (201 + 70 + 7), and inline-CSS hoisting candidates.
+- Marketplace root README — bumped ms-ai-architect to v1.10.0 with felles grunnskjelett summary.
+
+### Notes
+
+- **Plugin API surface unchanged.** All 24 commands, 12 agents, 5 skills (387 reference docs), 2 hooks, and MCP server configuration remain identical to v1.9.0. v1.10.0 is a minor bump per SemVer because the playground state schema change is auto-migrated and backward-compatible.
+- **6-session implementation** per `.claude/projects/2026-05-03-ms-ai-architect-v1-10-playground/plan.md`:
+ - Session 1: Foundation (theme tokens, helpers, MIGRATIONS, v1-snapshot fixture)
+ - Session 2: Onboarding redesign + surface page-headers + screen-tabs
+ - Session 3: Sub-batch A renderers (regulatory 6) — aiact-pyramid, requirements, transparency, frimpact, conformity, dpia
+ - Session 4: Sub-batch B renderers (security 3) — security, ros, review (REFERENCE STANDARD)
+ - Session 5: Sub-batch C renderers (econ + dokumentasjon 8) — cost, license, migrate, adr, summary, poc, utredning, compare
+ - Session 6: Visual QA + A11Y-rapport + dokumentasjon-overhaul + version bump (this commit)
+- **Pre-existing test pollution:** `tests/run-e2e.sh` references `tests/test-ros-output.sh` which expects a fixture that has never existed in git (`tests/fixtures/ros-analysis/fixture.md`). Reports as 1 suite failure but is unrelated to v1.10.0 — predates this work and is unchanged here.
+- **Session 4 commit `645f016` (B.1 bundling):** That commit message was bundled with ultraplan-local work due to hook timing — historical only, not relevant to plugin behavior.
+
+---
+
## [1.9.0] - 2026-05-03
### Added — Playground v3 (full architecture rewrite)
diff --git a/plugins/ms-ai-architect/CLAUDE.md b/plugins/ms-ai-architect/CLAUDE.md
index 79bd83c..07e17d2 100644
--- a/plugins/ms-ai-architect/CLAUDE.md
+++ b/plugins/ms-ai-architect/CLAUDE.md
@@ -172,26 +172,43 @@ claude --plugin ./plugins/ms-ai-architect
/architect:help
```
-## Playground (v3)
+## Playground (v3 / v1.10.0)
-Interaktiv decision-builder + rapport-viewer for Microsoft AI-beslutninger. Erstatter v2 5-stegs-pipelinen med en multi-surface-app som persisterer state og visualiserer importerte rapporter inline. Spec: v3-arkitektur dokumentert under `.claude/projects/2026-05-03-playground-v3-architecture/`.
+Interaktiv decision-builder + rapport-viewer for Microsoft AI-beslutninger. Erstatter v2 5-stegs-pipelinen med en multi-surface-app som persisterer state og visualiserer importerte rapporter inline. Spec: v3-arkitektur dokumentert under `.claude/projects/2026-05-03-playground-v3-architecture/`. v1.10.0-utvidelser dokumentert under `.claude/projects/2026-05-03-ms-ai-architect-v1-10-playground/`.
-- **Fil:** `playground/ms-ai-architect-playground.html` (~3870 linjer, single-file v3-arkitektur)
-- **4 surfaces:** Onboarding (18 felles felt fra `/architect:onboard`) → Home (prosjekt-liste + 3 entry-tracks) → Catalog (24 commands gruppert i 5 expansion-grupper med søk) → Project (per-prosjekt tabs, command-form-prefill fra felles state, paste-back-import med rapport-visualisering)
-- **Persistens:** IndexedDB-primær med localStorage-fallback. Schema-versjonert (`STATE_KEY = 'ms-ai-architect-state-v1'`) med eager `MIGRATIONS`-pipeline for fremtidige skjema-endringer.
-- **17 rapport-renderers:** Hver rapport-produserende command har én markdown-parser (markdown → struktur) og én renderer (struktur → HTML-visualisering: pyramide, matrix, radar, findings, distribution, capability-matrix, m.fl.) rutet via en kanonisk archetype-routing-tabell.
-- **Theme:** Mørk default + lys theme-toggle, persistert i `localStorage('ms-ai-architect-theme')`. Theme-bootstrap-script i `` unngår FOUC.
+- **Fil:** `playground/ms-ai-architect-playground.html` (~3870+ linjer, single-file v3-arkitektur)
+- **4 surfaces:** Onboarding (18 felles felt — 4 strukturerte / 14 fritekst etter v1.10.0) → Home (prosjekt-liste + 3 entry-tracks) → Catalog (24 commands gruppert i 5 expansion-grupper med søk) → Project (per-prosjekt tabs, command-form-prefill fra felles state, paste-back-import med rapport-visualisering)
+- **Persistens:** IndexedDB-primær med localStorage-fallback. Schema-versjonert (`STATE_KEY = 'ms-ai-architect-state-v1'`) med eager `MIGRATIONS`-pipeline. v1.10.0 introduserer `dataVersion v1→v2`-migrasjon (idempotent) som backfill-er `verdict`+`keyStats`.
+- **17 rapport-renderers (felles grunnskjelett):** Alle wrapper output via `renderPageShell()` med eyebrow + h1 + valgfri verdict-pill + valgfri key-stats-grid + arketype-spesifikk body. Parser → struktur → HTML rutet via kanonisk archetype-routing-tabell.
+- **Foundation-helpers:** `renderPageShell`, `renderVerdictPill`, `renderKeyStatsGrid`, `inferVerdict`, `inferKeyStats`, `KEY_STATS_CONFIG`.
+- **Tier 3-adopsjon:** kanban (conformity, review), mat-ladder (migrate, poc), screen-tabs (utredning, project surface), scenario-card-grid (license, compare), residual-pair (dpia, ros), top-risks (ros), recommendation-card (security, ros), suppressed-panel (review), critique-card (adr), read-more (utredning, summary), traffic-light (poc).
+- **Theme:** Mørk default + lys theme-toggle med Aksel-tokens i begge moduser (lagt til i v1.10.0). Persistert i `localStorage('ms-ai-architect-theme')`. Theme-bootstrap-script i `` unngår FOUC.
- **Eksport/import:** JSON Decision Record-envelope (Blob + FileReader), schema-versjon-bevisst på import.
-### Validering
+### Validering (v1.10.0-tall)
| Test | Kommando | Dekning |
|------|----------|---------|
-| Statisk struktur | `bash tests/test-playground-v3.sh` | 170 PASS — vendored CSS, surfaces, 24 commands, 14 parsere, 17 renderers, design-system-klasser, action-handlers |
+| Statisk struktur | `bash tests/test-playground-v3.sh` | 201 PASS — vendored CSS, surfaces, 24 commands, 14 parsere, 17 renderers (felles grunnskjelett), design-system-klasser, action-handlers, Tier 3-bruk, onboarding field-distribution |
| Parser-fixtures | `bash tests/test-playground-parsers.sh` | 70 PASS — 17 fixtures × parser-routing |
-| Kombinert (E2E) | `bash tests/run-e2e.sh --playground` | begge over |
+| Migrasjon | `bash tests/test-playground-migrations.sh` | 7 PASS — v1→v2 idempotent migrasjon |
+| Kombinert (E2E) | `bash tests/run-e2e.sh --playground` | statisk + parser-suiter |
| Manuell A11Y QA | Se `playground/MANUAL-CHECKLIST.md` | 10 seksjoner inkl. axe-core-kjøring per surface |
-| A11Y-rapport | `playground/A11Y-RAPPORT.md` | Skjelett — fylles ut etter kjøring |
+| A11Y-rapport | `playground/A11Y-RAPPORT.md` | Statisk vurdering klar — browser-axe-kjøring pending |
+
+### Inline CSS-kandidater for hoisting (v1.11.0)
+
+Sesjon 3-5 la til inline CSS i `playground/ms-ai-architect-playground.html`. Kandidater for hoisting til `shared/playground-design-system/components-tier3-supplement.css`:
+- `.pyramide-desc` / `.pyramide-desc__item`
+- `.scenario-card-grid` / `.scenario-card` (hvis ikke allerede der)
+- `.residual-pair` / `__cell` / `__cell-label/__cell-value/__cell-meta` / `__arrow`
+- `.read-more-block` (er native ``)
+- `.top-risks` / `.top-risk[data-severity]`
+- `.recommendation-card`
+- `.suppressed-panel`
+- `.screen-tabs` / `.screen-tab` / `.screen[data-active]`
+
+Ved hoisting: re-sync via `node scripts/sync-design-system.mjs ms-ai-architect`. Dette er endringer i delt asset — krever drift-deteksjon-handling per `MANIFEST.json`.
### Vendored design-system
diff --git a/plugins/ms-ai-architect/README.md b/plugins/ms-ai-architect/README.md
index 80c29d9..920c161 100644
--- a/plugins/ms-ai-architect/README.md
+++ b/plugins/ms-ai-architect/README.md
@@ -6,7 +6,7 @@
*AI-generated: all code produced by Claude Code through dialog-driven development. [Full disclosure →](../../README.md#ai-generated-code-disclosure)*
-
+



@@ -356,9 +356,20 @@ Interactive **decision-builder + report viewer** for Microsoft AI architecture d
- **4 surfaces:** Onboarding (18 shared fields) → Home (project list + 3 entry tracks) → Catalog (24 commands grouped by 5 expansion categories with search) → Project (per-project tabs, command form prefill, paste-back report import + visualization)
- **Persistent state:** IndexedDB primary store with localStorage fallback. Schema-versioned (`STATE_KEY = 'ms-ai-architect-state-v1'`) with eager `MIGRATIONS` pipeline.
- **17 report renderers:** Each report-producing command has a parser (markdown → structured) and renderer (structured → HTML visualization: pyramid, matrix, radar, findings, distribution, capability-matrix, etc.) wired through a canonical archetype-routing table.
-- **Theme:** Dark default + light mode toggle, persisted in `localStorage('ms-ai-architect-theme')`. Light-mode tokens are pending in the shared design-system; the toggle works but currently only swaps the label.
+- **Theme:** Dark default + light mode toggle, persisted in `localStorage('ms-ai-architect-theme')`. Both themes ship Aksel-aligned tokens (full WCAG AA contrast) as of v1.10.0; theme-bootstrap script in `` prevents FOUC.
- **Export/import:** JSON Decision Record envelope (Blob + FileReader), schema-version-aware on import.
+### v1.10.0 — Foundation refactor (felles grunnskjelett)
+
+All 17 report renderers now wrap output through `renderPageShell()` for a consistent visual signature:
+
+- **Foundation helpers** — `renderPageShell()`, `renderVerdictPill()`, `renderKeyStatsGrid()`, `inferVerdict()`, `inferKeyStats()` provide the shared header/eyebrow/h1, optional 5-band verdict-pill, and 3-5 key-stats grid that every renderer can opt into.
+- **Schema v1→v2 migration** — eager `MIGRATIONS` pipeline (idempotent via `dataVersion=2` guard) backfills `verdict` and `keyStats` on existing reports without disrupting existing user state.
+- **Tier 3 component adoption** — kanban (conformity, review), mat-ladder (migrate, poc), screen-tabs (utredning, project surface), scenario-card-grid (license, compare), residual-pair (dpia, ros), top-risks (ros), recommendation-card (security, ros), suppressed-panel (review), critique-card (adr), read-more (utredning, summary), traffic-light (poc).
+- **Parser extensions** — `parsePhasedPlan` adds `phases[].status` + `currentPhaseIndex` + `pocVerdict`; `parseComparison` adds `winner` field; `parseMatrixRisk` is shared across dpia + ros via `_consumer` discriminator (Strategy A).
+- **Onboarding redesign** — exactly 4 structured fields (select / multiSelect for sector, regulations, license, scenarios) + 14 free-text fields with placeholder hints. Improves prefill flexibility while keeping enum-driven fields where they matter.
+- **Theme tokens** — `[data-theme="light"]`-block added to `shared/playground-design-system/tokens.css` (and re-synced to vendored copy) with verbatim Aksel values. WCAG AA contrast in both themes.
+
```bash
# Run playground locally
open plugins/ms-ai-architect/playground/ms-ai-architect-playground.html
@@ -368,10 +379,11 @@ open plugins/ms-ai-architect/playground/ms-ai-architect-playground.html
| Test | Command | Coverage |
|------|---------|----------|
-| Static structure | `bash tests/test-playground-v3.sh` | 170 PASS — vendored CSS, surfaces, 24 commands, 14 parsers, 17 renderers, design-system classes, action handlers |
+| Static structure | `bash tests/test-playground-v3.sh` | 201 PASS — vendored CSS, surfaces, 24 commands, 14 parsers, 17 renderers (felles grunnskjelett), design-system classes, action handlers, Tier 3-bruk, onboarding field-distribution |
| Parser fixtures | `bash tests/test-playground-parsers.sh` | 70 PASS — 17 fixtures × parser routing |
-| Combined (E2E) | `bash tests/run-e2e.sh --playground` | both above |
-| Manual a11y QA | See `playground/MANUAL-CHECKLIST.md` | 10 sections incl. axe-core run per surface |
+| Migrations | `bash tests/test-playground-migrations.sh` | 7 PASS — v1→v2 idempotent migration |
+| Combined (E2E) | `bash tests/run-e2e.sh --playground` | static + parser suites |
+| Manual a11y QA | See `playground/MANUAL-CHECKLIST.md` + `playground/A11Y-RAPPORT.md` | 10 sections incl. axe-core run per surface |
### Vendored design-system
diff --git a/plugins/ms-ai-architect/playground/A11Y-RAPPORT.md b/plugins/ms-ai-architect/playground/A11Y-RAPPORT.md
index cc71bc8..8ab98de 100644
--- a/plugins/ms-ai-architect/playground/A11Y-RAPPORT.md
+++ b/plugins/ms-ai-architect/playground/A11Y-RAPPORT.md
@@ -1,9 +1,9 @@
-# A11Y-rapport — ms-ai-architect Playground v3
+# A11Y-rapport — ms-ai-architect Playground v3 / v1.10.0
-**Status:** Skjelett — fylles ut etter manuell QA (se MANUAL-CHECKLIST.md)
-**Sist oppdatert:** 2026-05-03
-**Versjon:** v3 (single-file `ms-ai-architect-v3.html`)
-**Standard:** WCAG 2.2 AA + Aksel/Digdir-anbefalinger
+**Status:** Kodebasert vurdering klar. Browser-kjørt axe-core gjenstår (manuell QA per `MANUAL-CHECKLIST.md` seksjon 10).
+**Sist oppdatert:** 2026-05-04
+**Versjon:** Playground v3 i ms-ai-architect v1.10.0
+**Standard:** WCAG 2.2 AA + Aksel/Digdir-anbefalinger + EN 301 549
---
@@ -11,50 +11,120 @@
| Felt | Verdi |
|------|-------|
-| Test-dato | _Fyll inn ved kjøring_ |
-| Tester | _Navn_ |
-| Browser | _Chrome xx / Firefox xx / Safari xx_ |
-| OS | _macOS xx_ |
-| Verktøy | axe-core (latest CDN) + manuell tab-test |
-| Tema testet | Begge (lys + mørk) |
-
-## Surfaces testet
-
-| Surface | Status | Fokus-rekkefølge | Kontrast | Kommentar |
-|---------|--------|-------------------|----------|-----------|
-| Onboarding | _pending_ | _pending_ | _pending_ | 5 grupper, 18 felter |
-| Home | _pending_ | _pending_ | _pending_ | 3 entry-tracks + prosjekt-liste |
-| Catalog | _pending_ | _pending_ | _pending_ | Søk + 5 expansion-grupper, 24 commands |
-| Project | _pending_ | _pending_ | _pending_ | Tabs, paste-import, rapport-slots |
-
-## Kjente avvik
-
-_Ingen registrert ennå (skjelett-rapport)._
-
-## Notater på kontrast
-
-- **Mørk modus (default):** `--color-text-primary` mot `--color-bg`-tokens. Forventet ratio ≥ 4.5:1 (WCAG AA).
-- **Lys modus (Step 13):** Aktiveres via theme-toggle, persistert i `localStorage('ms-ai-architect-theme')`. Krever separat axe-run i lys modus.
-- **Severity-farger** (`--color-severity-critical/high/medium/low`): testet for 3:1 mot bakgrunn (UI-ikon-grense).
-
-## Notater på keyboard-navigasjon
-
-- **Tab-rekkefølge:** Topbar → main-surface → modaler. Onboarding-flyt: form-progress sidebar er sticky men reserveres for klikk-hopp (ikke tab).
-- **Modal:** Forventer fokus-trap (esc lukker, tab sirkulerer innen modalen). Wires opp i `mountModal`/`unmountModal` (Step 7).
-- **Theme-toggle:** Aktiverbar med Enter/Space.
-- **Pyramide-rapport (classify):** `aria-current="true"` på aktiv tier; resten leselig som listepunkter.
-
-## Notater på skjermleser
-
-- **Landmarks:** ``, ``, `