# Manuell QA-sjekkliste — ms-ai-architect Playground v3 **Versjon:** v3 (single-file `ms-ai-architect-v3.html`) **Sist oppdatert:** 2026-05-03 **Bruk:** Krysser av når seksjonen er verifisert. Bruk DevTools-konsoll for assertions. Åpne `playground/ms-ai-architect-v3.html` direkte fra filsystemet (`file://`). Ingen server kreves. Kjør hver seksjon i rekkefølge — flere tester forutsetter state fra tidligere seksjoner. --- ## 1. Onboarding round-trip (felles state) - [ ] Åpne playground i tom state (slett `localStorage` først hvis nødvendig: `localStorage.clear()`) - [ ] Forventet redirect til onboarding-surface (siden ingen organization.name finnes) - [ ] Fyll inn alle 5 grupper (organization, technology, security, architecture, business) - [ ] Klikk "Lagre og fortsett" - [ ] **Assertion:** `JSON.parse(localStorage.getItem('ms-ai-architect-state-v1')).shared.organization.name` returnerer det du skrev inn - [ ] Re-onboard via topbar — verifiser at felter er forhåndsutfylt fra forrige runde ## 2. Schema-migrasjon - [ ] **Assertion:** `__store.state.__schema_version` er satt til siste SCHEMA_VERSION-verdi - [ ] Manuelt nedgrader: `localStorage.setItem('ms-ai-architect-state-v1', JSON.stringify({__schema_version: 0, projects: []}))` - [ ] Reload — forventet at MIGRATIONS-pipeline kjører og oppdaterer `__schema_version` til siste versjon - [ ] Ingen console.error-meldinger underveis ## 3. Prosjekt-CRUD - [ ] Fra Home-surface: klikk "Nytt prosjekt" - [ ] Modal vises — fyll inn navn + beskrivelse → "Opprett" - [ ] **Assertion:** `__store.state.projects.length === 1` - [ ] Naviger til prosjektet (klikk fleet-tile) - [ ] Klikk "Slett" → bekreft → tilbake til Home med 0 prosjekter - [ ] **Assertion:** `__store.state.projects.length === 0` ## 4. Command-skjema-prefill - [ ] Opprett et nytt prosjekt - [ ] Åpne en command (f.eks. "classify") fra prosjekt-tab - [ ] Verifiser at felter med `from: 'shared'` er forhåndsutfylt fra onboarding - [ ] **Assertion:** `__buildCommand('classify', {})` returnerer en streng som starter med `/architect:classify` - [ ] Endre et felt → "Forhåndsvis" → bekreft pipeline-streng oppdateres ## 5. Paste-import per rapport-type (17 commands) For hver av de 17 rapport-produserende commands: - [ ] Åpne fixture-fila under `playground/test-fixtures/.md` - [ ] Kopier hele innholdet - [ ] I prosjekt-tabben: lim inn i textarea → klikk "Analyser rapport" - [ ] Verifiser at `[data-report-slot=""]` rendrer rapport (ikke "Kunne ikke parse") - [ ] **Assertion:** `__handlePasteImport('', '')` returnerer uten feil Commands å teste: classify, requirements, transparency, frimpact, conformity, dpia, security, ros, review, cost, license, migrate, adr, summary, poc, utredning, compare. ## 6. Parse-feil — skadet markdown - [ ] Lim inn ufullstendig markdown (slett en seksjon-overskrift fra fixture) - [ ] Verifiser at `[data-report-slot]` rendrer en synlig feil-melding (ikke crash) - [ ] **Assertion:** Console viser ingen uncaught exceptions - [ ] Feil-meldingen identifiserer hvilken seksjon som mangler ## 7. Eksport/import-syklus - [ ] Etter onboarding + 1+ prosjekt + 1+ rapport: klikk "Eksporter" i topbar - [ ] JSON-fil lastes ned (Blob via URL.createObjectURL) - [ ] Slett alt: `localStorage.clear()` + reload - [ ] Klikk "Importer" → velg den eksporterte fila - [ ] **Assertion:** Alle prosjekter, rapporter og onboarding-svar er gjenopprettet ## 8. Theme-toggle (Step 13) - [ ] Klikk theme-toggle (text "Mørk" eller "Lys" i topbar) - [ ] **Assertion:** `document.documentElement.getAttribute('data-theme')` matcher `localStorage.getItem('ms-ai-architect-theme')` - [ ] Reload siden — bekreft tema overlever - [ ] Verifiser ingen flash-of-wrong-theme (FOUC) ved reload (theme-bootstrap-script i ``) - [ ] Bytt tema flere ganger — alle surfaces bytter farge konsistent ## 9. file://-standalone - [ ] Kopier mappen `plugins/ms-ai-architect/` til en helt ny lokasjon (f.eks. `/tmp/standalone-test/`) - [ ] Åpne `playground/ms-ai-architect-v3.html` derfra med `open` eller direkte i nettleser - [ ] Verifiser ingen console-errors ved load - [ ] Alle 4 surfaces fungerer (onboarding, home, catalog, project) - [ ] Vendored CSS lastes (`vendor/playground-design-system/*.css`) ## 10. axe-core a11y per surface For hver surface (onboarding, home, catalog, project): 1. Naviger til surfacen 2. Åpne DevTools-konsollen 3. Lim inn: ```js var s = document.createElement('script'); s.src = 'https://cdnjs.cloudflare.com/ajax/libs/axe-core/4.10.0/axe.min.js'; document.head.appendChild(s); ``` 4. Vent til axe lastes (~1 sek), så kjør: ```js axe.run().then(r => console.log(JSON.stringify({violations: r.violations.length, byImpact: r.violations.reduce((a,v)=>{a[v.impact]=(a[v.impact]||0)+1;return a;},{})}, null, 2))); ``` 5. Hvis violations: kjør `axe.run().then(r => console.table(r.violations.map(v => ({id:v.id, impact:v.impact, nodes:v.nodes.length, help:v.help}))))` for detaljert tabell 6. Lim inn JSON-resultatet i A11Y-RAPPORT.md (seksjon "axe-core-kjøring") **Forventet baseline:** 0 critical, ≤ 3 serious totalt, ≤ 5 moderate. Alle skal logges i A11Y-RAPPORT.md selv om de er innenfor toleranse. **Tab-test:** Etter axe — naviger hele surfacen kun med Tab/Shift+Tab/Enter. Notér i rapporten hvis fokus-rekkefølge føles uintuitiv eller hvis en interaktiv element ikke er nåbar. ## Avslutning - [ ] Alle seksjoner ovenfor avkrysset - [ ] A11Y-RAPPORT.md oppdatert med browser-versjon, tester-navn, dato - [ ] axe-core JSON limt inn i rapporten - [ ] Avvik dokumentert med severity og handlingsplan