ktg-plugin-marketplace/plugins/ms-ai-architect/CLAUDE.md
Kjell Tore Guttormsen 9664bf1b1c feat(ms-ai-architect): release v1.9.0 with playground v3 + screenshot suite
Version bump: v1.8.0 -> v1.9.0 (minor — plugin API surface unchanged).

Version sync:
- .claude-plugin/plugin.json (canonical), README.md badge,
  CHANGELOG.md (full v1.9.0 entry with playground v3 architecture,
  validation suite, A11Y artifacts, SemVer rationale),
  marketplace root README.md listing.

Screenshot suite (new):
- scripts/screenshots/capture-playground.py — Playwright Python automation
  that opens playground from file://, populates __store with Statens vegvesen
  ANPR demo data, navigates each surface, paste-imports fixtures, scrolls to
  the relevant report-slot, and saves viewport screenshots.
- 6 PNG screenshots in playground/screenshots/ covering: onboarding (18/18
  filled), home (3 projects), catalog (24 commands across 5 expansion groups),
  classify pyramid (high-risk Annex III), ROS 5x5 matrix + 7-dim radar,
  cost P10/P50/P90 distribution.

Doc updates (3 levels per repo policy):
- Plugin README: new "Screenshots" subsection embeds all 6 with description
  columns, plus reproduce command.
- Plugin CLAUDE.md: new "Screenshot-suite (v1.9.0)" subsection documenting
  the automation, demo-state seeding, and re-run trigger conditions.
- Marketplace root README: ms-ai-architect listing now mentions the
  screenshot suite + reproduce command.

Reproduce screenshots: python3 scripts/screenshots/capture-playground.py.

Notes:
- Light-mode tokens are not in the vendored design-system yet. The toggle
  swaps data-theme + label correctly (Step 13 mechanics intact), but the
  CSS palette only ships dark. Captured dark-mode only; light-mode capture
  re-enables when shared/playground-design-system gains [data-theme="light"]
  overrides.
- Local CSS fix in playground HTML: added `[hidden] { display: none !important; }`
  in the inline app-shell <style> block. The vendored .error-summary rule
  sets display: flex which overrode HTML's [hidden] default, leaking the
  onboarding error banner on cold start. Plugin-local for now; a proper
  fix belongs in shared/playground-design-system/components-tier3.css.

Verified post-bump:
- bash tests/validate-plugin.sh -> 215/215 PASS
- bash tests/run-e2e.sh --playground -> 240/240 PASS
2026-05-03 20:40:07 +02:00

248 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AI Architect Plugin
Microsoft AI Solution Architect plugin for Claude Code.
## Hva denne pluginen gjør
Tilbyr strukturert arkitekturveiledning for Microsoft AI-stakken:
- Azure AI Foundry, Copilot Studio, M365 Copilot
- Power Platform AI (AI Builder, Power Automate)
- Microsoft Agent Framework
- Sikkerhet og compliance
- EU AI Act-klassifisering og compliance
## Regulatorisk arbeidsflyt
`/architect:classify``/architect:dpia` (Art. 13/14 input) → `/architect:ros` (dimensjon 6 input)
## Kommandoer
| Kommando | Beskrivelse |
|----------|-------------|
| `/architect` | Start en strukturert arkitekturrådgivning med Cosmo Skyberg |
| `/architect:help` | Vis oversikt over alle kommandoer, agenter og kunnskapsbaser |
| `/architect:compare` | Sammenlign Microsoft AI-plattformer for et gitt scenario |
| `/architect:security` | Sikkerhets- og compliance-vurdering (6 dimensjoner) |
| `/architect:cost` | Kostnadsestimat med konfidensgradering (NOK) |
| `/architect:adr` | Generer Architecture Decision Record (MADR v3.0) |
| `/architect:research` | Utforsk siste nytt for en Microsoft AI-plattform |
| `/architect:poc` | Generer POC-plan med suksesskriterier og risiko |
| `/architect:license` | Kartlegg AI-kapabiliteter per lisenstype |
| `/architect:migrate` | Planlegg migrasjon mellom plattformer |
| `/architect:utredning` | AI-arkitekturutredning for norsk offentlig sektor |
| `/architect:diagram` | Generer arkitekturdiagram med Imagen 3 (mcp-image) |
| `/architect:review` | Kjør arkitekturgjennomgang mot norske offentlig sektor-krav |
| `/architect:generate-skills` | Generer kunnskapsfiler med MCP-research (batch) |
| `/architect:ros` | Gjennomfør ROS-analyse (Risiko- og Sårbarhetsanalyse) for et AI-system |
| `/architect:dpia` | Gjennomfør DPIA/PVK for et AI-system |
| `/architect:summary` | Generer teknisk sammendrag og beslutningsnotat fra arkitekturvurderinger |
| `/architect:export` | Eksporter arkitekturdokument til PDF |
| `/architect:classify` | EU AI Act-klassifisering: risikonivå + rolle |
| `/architect:requirements` | Konkrete AI Act-krav basert på risikonivå og rolle |
| `/architect:transparency` | Generer Art. 13/50 transparensnotis på norsk |
| `/architect:frimpact` | FRIA (Art. 27) — obligatorisk for offentlig sektor |
| `/architect:conformity` | Samsvarsvurdering (Art. 43) — sjekkliste + erklæring |
| `/architect:onboard` | Onboard pluginen med virksomhetsspesifikk kontekst |
## Agenter
| Agent | Formål | Modell |
|-------|--------|--------|
| `research-agent` | MCP-isolert research med microsoft-learn | opus |
| `security-assessment-agent` | 6-dimensjons sikkerhetsrammeverk med 1-5 scoring | opus |
| `cost-estimation-agent` | Kostnadsestimering i NOK med TCO-sammenligning | opus |
| `adr-writer-agent` | ADR-generering i MADR v3.0-format | opus |
| `license-mapper-agent` | Kryssreferering av lisenser mot plattformkapabiliteter | opus |
| `diagram-generation-agent` | Arkitekturdiagrammer med Imagen 3 via mcp-image | opus |
| `architecture-review-agent` | Arkitekturgjennomgang mot Digdir, AI Act, NSM, Schrems II | opus |
| `ros-analysis-agent` | ROS-analyse med 7 dimensjoner, NS 5814-metodikk og AI-trusselbibliotek | opus |
| `dpia-agent` | DPIA/PVK for AI-systemer med risikomatrise og tiltakstabell | opus |
| `summary-agent` | Teknisk sammendrag og beslutningsnotat fra arkitekturvurderinger | opus |
| `ai-act-assessor` | EU AI Act-klassifisering, forpliktelser og compliance-vurdering | opus |
| `onboarding-agent` | Strukturert onboarding-intervju for virksomhetstilpasning | opus |
## Skills (5 domenespesifikke)
| Skill | Formål | Referansefiler | BrukerIntent |
|-------|--------|----------------|--------------|
| `ms-ai-advisor` | Cosmo Skyberg-persona, 7-fase arbeidsflyt, plattformvalg | 62 | "Hjelp meg velge" |
| `ms-ai-governance` | Norsk offentlig sektor-styring, EU-regelverk, ansvarlig AI | 78 | "Er dette lovlig?" |
| `ms-ai-security` | Sikkerhetsscoring (6x5), kostnadsestimering (P10/P50/P90) | 60 | "Er dette trygt?" |
| `ms-ai-engineering` | RAG, agenter, Azure AI Services, data, MLOps, multimodal | 153 | "Hvordan bygger jeg dette?" |
| `ms-ai-infrastructure` | BCDR, hybrid/edge, suveren sky | 34 | "Hvordan drifter jeg dette?" |
### Kunnskapsbase-routing i agenter (max 3 filer per invokasjon)
Agenter leser navngitte kjernefiler, ikke hele kataloger:
- **security-assessment-agent**: security-scoring-rubrics-6x5.md, ai-security-scoring-framework.md, ai-threat-modeling-stride.md
- **cost-estimation-agent**: deterministic-cost-calculation-model.md, azure-ai-foundry-cost-governance.md, cost-models.md
- **architecture-review-agent**: decision-trees.md, security.md, public-sector-checklist.md + domene-spesifikke ved behov
- **ros-analysis-agent**: ros-ai-threat-library.md, ros-scoring-rubrics-7x5.md, ros-methodology-ns5814-iso31000.md
- **dpia-agent**: dpia-norwegian-methodology-ai.md, gdpr-compliance-ai-systems.md, ai-impact-assessment-framework.md
- **ai-act-assessor**: ai-act-classification-methodology.md + relevante ai-act-*.md filer (maks 3 per fase)
- **summary-agent**: Leser assessment-outputs fra sesjon, ikke KB-filer
## MCP-servere
- `microsoft-learn` — Offisiell Microsoft dokumentasjon (search, fetch, code samples)
- `mcp-image` — Bildegenerering med Imagen 3 for arkitekturdiagrammer (via diagram-generation-agent)
### Anbefalte MCP-servere (ikke påkrevd)
- `azure-mcp-server` (microsoft/azure-mcp-server) — Live Azure-infrastrukturinspeksjon (Storage, Key Vault, Monitor, AI Search, RBAC)
- `bicep-mcp-server` — IaC-generering for Azure-ressurser
- `azure-devops-mcp` (microsoft/azure-devops-mcp) — Work items, pipelines, repos
Se `references/architecture/recommended-mcp-servers.md` for detaljer.
## Utvikling
### Legge til ny kunnskapsbase
1. Opprett `.md`-fil i riktig undermappe under den relevante skillens `references/`-mappe (f.eks. `skills/ms-ai-engineering/references/`)
2. Følg format fra eksisterende filer (header, dato, seksjoner, "For Cosmo"-seksjon)
3. Oppdater relevant SKILL.md med referanse
### Legge til ny kommando
1. Opprett `commands/navn.md` med frontmatter (`description`, `argument-hint`)
2. Følg mønster fra eksisterende kommandoer
3. Oppdater `commands/help.md` med ny kommando
4. Oppdater denne CLAUDE.md
### Legge til ny agent
1. Opprett `agents/navn-agent.md` med frontmatter (`name`, `description`, `model`, `color`, `tools`)
2. Inkluder tydelig "triggers on" i description
3. Oppdater denne CLAUDE.md
### Testing
#### Statisk validering
```bash
# Kjør plugin-validering (frontmatter, encoding, KB-referanser)
bash tests/validate-plugin.sh
```
#### KB-ferskhet (sitemap-basert)
```bash
# Ukentlig oppdatering: poll sitemaps → endringsrapport
node scripts/kb-update/run-weekly-update.mjs --force
# Med discovery av nye relevante sider
node scripts/kb-update/run-weekly-update.mjs --force --discover
# Kun endringsrapport (etter polling)
node scripts/kb-update/report-changes.mjs
# Bygg/oppdater URL-registry fra referansefiler
node scripts/kb-update/build-registry.mjs [--merge]
```
Systemet poller Microsoft Learn sitemaps ukentlig, sammenligner `<lastmod>` med filenes `Last updated:` header, og genererer en prioritert endringsrapport. Session-start hook trigger bakgrunns-poll automatisk hvis >7 dager siden siste.
**Match rate:** ~69% av 1342 URLer matche mot sitemaps. ~31% (mest `azure/ai-foundry/openai/`-stier) finnes ikke i sitemaps pga. Microsofts URL-restrukturering.
Legacy (deprecated):
```bash
bash scripts/kb-staleness-check.sh # mtime-basert, upålitelig etter git clone
```
#### E2E-regresjonstester
```bash
# Kjør alle E2E-suiter
bash tests/run-e2e.sh
# Kjør enkeltsuiter
bash tests/run-e2e.sh --security
bash tests/run-e2e.sh --cost
bash tests/run-e2e.sh --summary
bash tests/run-e2e.sh --ai-act
```
Fixture-basert validering av agent-output (sikkerhet, kostnad, sammendrag). Tester struktur, encoding, og domene-spesifikke krav uten å invokere Claude.
#### Manuell test
```bash
# Test at plugin registreres
cd <plugin-root>
claude --plugin ./plugins/ms-ai-architect
# Kjør hovedcommand
/architect
# Vis alle kommandoer
/architect:help
```
## Playground (v3)
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/`.
- **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 `<head>` unngår FOUC.
- **Eksport/import:** JSON Decision Record-envelope (Blob + FileReader), schema-versjon-bevisst på import.
### Validering
| 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 |
| Parser-fixtures | `bash tests/test-playground-parsers.sh` | 70 PASS — 17 fixtures × parser-routing |
| Kombinert (E2E) | `bash tests/run-e2e.sh --playground` | begge over |
| 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 |
### Screenshot-suite (v1.9.0)
`scripts/screenshots/capture-playground.py` automatiserer screenshots av alle 4 surfaces + 3 rapport-arketyper via Playwright. Output går til `playground/screenshots/` og embeddes i plugin README. Krever Playwright Python-pakke + chromium. Kjøres med `python3 scripts/screenshots/capture-playground.py` — ca. 15-20 sekunder. Demo-state seedes inline (Statens vegvesen ANPR-eksempel matcher fixture-filene), så ingen interaktivt brukerflow er nødvendig.
Kjør på nytt etter design-endringer i playground eller `shared/playground-design-system/` (etter sync).
### Vendored design-system
Playground laster CSS fra `playground/vendor/playground-design-system/` — en vendored
kopi av marketplace-rotens `shared/playground-design-system/`. Dette holder pluginen
**standalone**: HTML-filen kan åpnes fra `file://` uavhengig av marketplace-roten.
- **Sync-skript:** `node scripts/sync-design-system.mjs ms-ai-architect` (ved marketplace-rot)
- **Drift-deteksjon:** `MANIFEST.json` lagrer SHA-256 per fil. Re-sync feiler hvis
vendored fil er endret lokalt — `--force` overstyrer.
- **Lastes i HTML:** `<link>`-tags til `fonts.css`, `tokens.css`, `base.css`,
`components.css`, `components-tier2.css`, `components-tier3.css`,
`components-tier3-supplement.css` (i den rekkefølgen).
- **Aldri rediger** filer under `vendor/playground-design-system/` direkte —
endringer går i `shared/`, deretter re-sync.
> v2-spec under `docs/playground-v2-spec.md` er beholdt som historisk
> referanse, men er IKKE gjeldende kontrakt. v3-arkitekturen er
> dokumentert i `.claude/projects/2026-05-03-playground-v3-architecture/`.
## Relaterte plugins (fremtidig)
- `ms-rag-architect` — RAG-spesialist (egen plugin)
- `ms-power-automate-architect` — Power Automate deep-dive
- `ms-azure-ai-architect` — Azure AI Services deep-dive
- `ms-foundry-architect` — Azure AI Foundry spesialist
- `ms-copilot-studio-architect` — Copilot Studio spesialist
## Hooks (2)
| Event | Script | Formål |
|-------|--------|--------|
| SessionStart | `session-start-context.mjs` | Viser aktive utredninger, KB-ferskhet, onboarding-status + AI Act-frister |
| Stop | `stop-assessment-reminder.mjs` | Påminnelse om ucommittede vurderinger, neste steg |
> Secrets scanning consolidated to llm-security plugin.
## Viktige frister (EU AI Act)
| Frist | Krav | Status |
|-------|------|--------|
| 2025-02-02 | Forbudte AI-praksiser (Art. 5) | Gjeldende |
| 2025-08-02 | Governance og sanksjoner (Art. 99) | Gjeldende |
| 2026-08-02 | GPAI-krav + Annex III høyrisiko | 161 dager |
| 2027-08-02 | Alle høyrisiko-krav (full compliance) | 527 dager |
**Tilsynsmyndigheter:** Datatilsynet (personvern), nasjonal AI-tilsynsmyndighet (under etablering), sektortilsyn.