ktg-plugin-marketplace/plugins/ms-ai-architect/playground/MANUAL-CHECKLIST.md
Kjell Tore Guttormsen 68a2240aae docs(ms-ai-architect): playground v3 A11Y-RAPPORT + MANUAL-CHECKLIST [skip-docs]
Step 16 (Wave 5).

playground/A11Y-RAPPORT.md (new, 60 lines):
- Skeleton with test setup, 4 surface rows (pending), known violations
  (empty), contrast notes (light + dark mode), keyboard navigation
  notes, screen-reader landmark map, axe-core run instructions.
- Filled in by tester after MANUAL-CHECKLIST.md execution.

playground/MANUAL-CHECKLIST.md (new, 115 lines):
- 10 sections per test-strategist output:
  1. Onboarding round-trip (shared state)
  2. Schema-migration (downgrade + reload)
  3. Project CRUD
  4. Command form prefill from shared state
  5. Paste-import per report type (17 commands enumerated)
  6. Parse error (corrupt markdown)
  7. Export/import cycle
  8. Theme-toggle persistence (Step 13)
  9. file://-standalone verification
  10. axe-core a11y per surface (CDN injection + axe.run + table)
- Each section has a concrete pass/fail criterion with a DevTools-console
  assertion. Section 10 includes axe.run paste-and-execute snippet.
2026-05-03 20:12:00 +02:00

5.6 KiB

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/<command>.md
  • Kopier hele innholdet
  • I prosjekt-tabben: lim inn i textarea → klikk "Analyser rapport"
  • Verifiser at [data-report-slot="<command>"] rendrer rapport (ikke "Kunne ikke parse")
  • Assertion: __handlePasteImport('<cmd>', '<paste>') 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 <head>)
  • 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:
    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:
    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