feat(ms-ai-architect): add plugin to open marketplace (v1.5.0 baseline)

Initial addition of ms-ai-architect plugin to the open-source marketplace.
Private content excluded: orchestrator/ (Linear tooling), docs/utredning/
(client investigation), generated test reports and PDF export script.
skill-gen tooling moved from orchestrator/ to scripts/skill-gen/.

Security scan: WARNING (risk 20/100) — no secrets, no injection found.
False positive fixed: added gitleaks:allow to Python variable reference
in output-validation-grounding-verification.md line 109.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-04-07 17:17:17 +02:00
commit 6a7632146e
490 changed files with 213249 additions and 2 deletions

View file

@ -0,0 +1,506 @@
# EU AI Act Integration Handover til Claude Code
**Dato:** 2026-02-22
**Formål:** Legg til full EU AI Act-støtte i ms-ai-architect plugin
**Prioritet:** P1 Frister nærmer seg (2. august 2026: høyrisiko-krav trer i kraft)
**Estimert arbeid:** 812 timers Claude Code-arbeid fordelt på 10 steg
---
## Kontekst
ms-ai-architect er en Claude Code-plugin for Microsoft AI-arkitektur i norsk offentlig sektor, primært brukt av KTG (AI-rådgiver, Statens vegvesen). Pluginen har allerede DPIA- og ROS-agenter. EU AI Act-støtte skal integreres som en **overordnet regulatory layer** som feeder inn i eksisterende arbeidsflyt.
**Logisk sekvens (uforanderlig):**
```
EU AI Act-klassifisering → DPIA (Art. 13/14 input) → ROS (dimensjon 6 input)
```
Eksisterende AI Act-kunnskap i pluginen:
- `skills/ms-ai-governance/references/responsible-ai/ai-act-compliance-guide.md`
- `skills/ms-ai-governance/references/responsible-ai/ai-act-annex-iii-checklist.md`
Disse er komplette og oppdaterte per feb 2026. Ikke overskriv dem.
---
## Implementeringsrekkefølge
### STEG 1: Opprett 7 nye KB-filer
Plassering: `skills/ms-ai-governance/references/responsible-ai/`
#### 1a. `ai-act-classification-methodology.md`
Systematisk metodikk for klassifisering i fire steg:
1. Forbudt praksis-sjekk (Annex II / Art. 5)
2. Generell AI-modell (GPAI) er det en grunnmodell/frontier model?
3. Høyrisiko-sjekk via Annex III (8 kategorier) og Annex I (produktsikkerhet)
4. Begrenset/minimal risiko (default)
For hvert steg: beslutningspunkter, terskelverdier, SVV-eksempler.
Inkluder: Annex III full liste på norsk med presiseringer for transport/infrastruktur-sektoren.
#### 1b. `ai-act-provider-obligations.md`
Forpliktelser for **tilbydere** (organisasjoner som utvikler/tilpasser AI-systemer):
- Art. 9: Risk management system
- Art. 10: Datakvalitetskrav
- Art. 11: Teknisk dokumentasjon (Annex IV-format)
- Art. 12: Logging og hendelsesregistrering
- Art. 13: Transparens og informasjon til brukere
- Art. 14: Menneskelig tilsyn (human oversight)
- Art. 15: Nøyaktighet, robusthet, cybersikkerhet
- Art. 1627: Kvalitetsstyring, samsvarsvurdering, CE-merking (relevant ved anskaffelse)
SVV-kontekst: Statens vegvesen er typisk **deployer**, ikke provider. Men ved intern utvikling på topp av Azure AI/Copilot Studio: provider-rolle.
#### 1c. `ai-act-deployer-obligations.md`
Forpliktelser for **deployere** (organisasjoner som tar i bruk AI-systemer):
- Art. 26: Deployerens forpliktelser
- Bruk i tråd med provider-instruksjoner
- Menneskelig tilsyn (Art. 26(2))
- Databehandlingsansvar ved trening på egne data
- Logging (Art. 26(5) 6 måneder minimum)
- Informasjon til berørte parter
- FRIA-plikt for offentlig sektor (Art. 27)
SVV som deployer: Copilot Studio-agenter, Azure AI Foundry-løsninger, M365 Copilot.
#### 1d. `ai-act-fria-template.md`
Fundamental Rights Impact Assessment **obligatorisk for offentlig sektor** (Art. 27).
Mal med følgende seksjoner:
1. Systembeskrivelse og formål
2. Grunnleggende rettigheter som kan påvirkes (GDPR Art. 1-katalog)
3. Berørte grupper (sårbare grupper, minoriteter, ansatte)
4. Sannsynlighet og alvorlighetsgrad per rettighet
5. Eksisterende beskyttelsestiltak
6. Restrisiko og konklusjon
7. Godkjenningsstatus og dato
Norsk kontekst: Datatilsynet veileder, Nkom koordinerer nasjonal håndhevelse.
#### 1e. `ai-act-conformity-assessment.md`
Samsvarsvurdering for høyrisiko-systemer:
- Intern (Art. 43(2)): Selvvurdering mot harmoniserte standarder → EU-deklarasjon
- Ekstern (Art. 43(1)): Krav til notifisert organ (visse Annex III-kategorier)
- Teknisk dokumentasjon (Annex IV) komplett sjekkliste
- EU-deklarasjon om samsvar mal
- Registrering i EU-databasen (Art. 49, plikt for offentlig sektor)
#### 1f. `ai-act-transparency-notices.md`
Mal for transparensnotiser per Art. 13 og 52:
- Art. 13: Informasjon til brukere av høyrisiko-systemer
- Formål og funksjonalitet
- Nøyaktighet og begrensninger
- Menneskelig tilsyn
- Kontaktinformasjon
- Art. 52(1): Notis til brukere av samtalesystemer (chatbots)
- Art. 52(3): Deepfake-merking
- Art. 50: GPAI-modeller krav til maskinlesbar metadata
SVV-eksempler: Chatbot på vegvesen.no, AI i saksbehandling.
#### 1g. `ai-act-microsoft-tools-mapping.md`
Kartlegging av Microsoft-verktøy mot AI Act-krav:
- **Purview Compliance Manager**: AI Act assessment template, kontroller, improvement actions
- **Azure AI Foundry / AI Reports**: Teknisk dokumentasjon, evaluering, monitoring
- **Priva**: FRIA-støtte, personvernvurdering, data mapping
- **Entra Agent ID**: Agentidentitet og sporbarhet (Art. 12 logging)
- **Azure Policy + Defender for Cloud**: Teknisk kontroll og compliance-bevis
- **Microsoft Copilot Studio**: Innebygde transparens-features, human handoff
---
### STEG 2: Opprett ai-act-assessor agent
Fil: `agents/ai-act-assessor.md`
```yaml
name: ai-act-assessor
description: EU AI Act-klassifisering og compliance-vurdering for AI-systemer i norsk offentlig sektor
model: claude-sonnet-4-5
tools:
- Read
- Glob
- Grep
- WebSearch
- mcp__microsoft-learn__microsoft_docs_search
- mcp__microsoft-learn__microsoft_docs_fetch
```
**Triggers:** "AI Act", "høyrisiko", "Annex III", "samsvarsvurdering", "conformity assessment", "FRIA", "transparensnotis", "risikoklassifisering"
**Arbeidsflyt:**
1. Les inn systemdokumentasjon fra bruker (navn, formål, brukere, teknologi)
2. Kjør klassifiseringssjekk: Forbudt → GPAI → Høyrisiko (Annex III) → Begrenset/Minimal
3. Fastslå rolle (provider/deployer/begge)
4. List konkrete forpliktelser basert på klassifisering og rolle
5. Lag tiltaksplan med prioritet og frist
6. Anbefal neste steg: DPIA (hvis persondata), ROS (alltid for høyrisiko)
**Output-format:**
```markdown
# EU AI Act Vurdering: [Systemnavn]
## Risikoklassifisering
**Klasse:** [Forbudt / Høyrisiko / Begrenset / Minimal]
**Hjemmel:** Annex III, kategori X [beskrivelse]
## Rolle
**SVV som:** [Provider / Deployer / Begge]
## Forpliktelser
### Umiddelbart (innen 2026-08-02)
...
### Kortfristet (innen 2027-08-02)
...
## Tiltaksplan
| Tiltak | Hjemmel | Ansvar | Frist | Status |
|--------|---------|--------|-------|--------|
...
## Anbefalte neste steg
- [ ] Kjør /architect:dpia AI Act Art. 13/14 er nå input
- [ ] Kjør /architect:ros AI Act-krav i dimensjon 6 (juridisk/regulatorisk)
- [ ] [Evt. /architect:frimpact for offentlig sektor]
```
**KB-routing:**
- Primary: `skills/ms-ai-governance/references/responsible-ai/` (alle 7 nye filer + eksisterende 2)
- Secondary: `skills/ms-ai-governance/` (øvrige governance-filer)
---
### STEG 3: Opprett 5 nye commands
#### 3a. `commands/architect-classify.md`
```yaml
name: architect:classify
description: Klassifiser AI-system mot EU AI Act (Annex II/III), tildel risikonivå
```
Prompt-struktur:
1. Be bruker om: systemnavn, formål, målgrupper, teknologi, sektortilhørighet
2. Kjør ai-act-assessor agent
3. Output: Klassifiseringsrapport med risikonivå og umiddelbare forpliktelser
#### 3b. `commands/architect-requirements.md`
```yaml
name: architect:requirements
description: Hent konkrete AI Act-krav basert på risikonivå og sektortilhørighet
```
Bruker oppgir: risikonivå, rolle (provider/deployer), sektor
Output: Prioritert kravliste med artikkelreferanser og Microsoft-verktøy-mapping
#### 3c. `commands/architect-transparency.md`
```yaml
name: architect:transparency
description: Generer Art. 13/52 transparensnotis for AI-system
```
Input: Systembeskrivelse, brukergrupper, risikoklasse
Output: Ferdig transparensnotis på norsk/bokmål, klar for publisering
#### 3d. `commands/architect-frimpact.md`
```yaml
name: architect:frimpact
description: Fundamental Rights Impact Assessment (Art. 27) obligatorisk for offentlig sektor
```
Workflow: Strukturert intervju → FRIA-rapport med risikovurdering per rettighet
Merk: Skal normalt kjøres ETTER /architect:classify bekrefter høyrisiko
#### 3e. `commands/architect-conformity.md`
```yaml
name: architect:conformity
description: Samsvarsvurdering (Art. 43) for høyrisiko AI-systemer sjekkliste og EU-deklarasjon
```
Output: Annex IV teknisk dokumentasjon sjekkliste + mal for EU-samsvarserklæring
---
### STEG 4: Oppdater eksisterende agenter
#### 4a. `agents/dpia-agent.md`
Legg til i agent-instruksjonene:
```
Hvis AI Act-klassifisering er utført (sjekk om bruker har output fra /architect:classify):
- Integrer Art. 13 (transparens) og Art. 14 (menneskelig tilsyn) som eksplisitte DPIA-tiltak
- Referér AI Act-klassifisering i DPIA-rapporten under "Tilknyttede rammeverk"
- Høyrisiko-klassifisering skjerper terskelen for "høy risiko" i DPIA-forstand
Hvis AI Act-klassifisering IKKE er utført:
- Spør om systemet er vurdert mot AI Act (kan være relevant)
- Fortsett DPIA uavhengig de er separate rettslige krav
```
#### 4b. `agents/ros-analysis-agent.md`
I dimensjon 6 (Juridisk og regulatorisk risiko), legg til:
```
EU AI Act spesifikke trusler:
- T6.4: Feilklassifisering av AI-system (feil risikonivå → manglende compliance)
- T6.5: Manglende teknisk dokumentasjon (Art. 11/Annex IV)
- T6.6: Utilstrekkelig logging og hendelsesregistrering (Art. 12/26)
- T6.7: Manglende FRIA for offentlig sektor (Art. 27)
- T6.8: Overskridelse av compliance-frister (2026-08-02, 2027-08-02)
- T6.9: Ulovlig AI-praksis iht. Art. 5 (forbud)
Sanksjonsnivåer (skjerper alvorlighetsgrad):
- Art. 5-brudd: Inntil 35 MEUR eller 7% av global omsetning
- Høyrisiko-brudd: Inntil 15 MEUR eller 3%
- Øvrige brudd: Inntil 7.5 MEUR eller 1%
```
#### 4c. `agents/architecture-review-agent.md`
Legg til i review-sjekklisten:
```
EU AI Act Conformity Check (kjøres automatisk hvis systemet er AI-basert):
□ Er systemet klassifisert mot Annex III?
□ Er SVVs rolle (provider/deployer) avklart?
□ Er teknisk dokumentasjon (Annex IV) påbegynt?
□ Er Art. 14 menneskelig tilsyn implementert i arkitekturen?
□ Er logging (Art. 12/26) designet inn ikke ettermontering?
□ Er FRIA planlagt (offentlig sektor, høyrisiko)?
□ Er transparensnotis (Art. 13) planlagt for brukergrensesnitt?
```
---
### STEG 5: Oppdater CLAUDE.md
Gjør følgende endringer i `CLAUDE.md`:
**A. Legg til i innledningsavsnittet** (etter "Tilbyr strukturert arkitekturveiledning..."):
```markdown
## Regulatorisk arbeidsflyt
Alltid i denne rekkefølgen:
1. **EU AI Act-klassifisering** (`/architect:classify`) fastslår risikonivå og forpliktelser
2. **DPIA** (`/architect:dpia`) hvis systemet behandler persondata; AI Act Art. 13/14 er input
3. **ROS-analyse** (`/architect:ros`) alltid for høyrisiko-systemer; AI Act dimensjon 6 er input
Grunnen: AI Act-klassifisering påvirker omfanget av både DPIA og ROS.
```
**B. Oppdater kommandotabellen** legg til 5 nye kommandoer:
| Kommando | Beskrivelse |
|----------|-------------|
| `/architect:classify` | EU AI Act-klassifisering: Fastslå risikonivå (forbudt/høyrisiko/begrenset/minimal) |
| `/architect:requirements` | Hent konkrete AI Act-krav basert på risikonivå og rolle |
| `/architect:transparency` | Generer Art. 13/52 transparensnotis på norsk |
| `/architect:frimpact` | Fundamental Rights Impact Assessment (obligatorisk offentlig sektor) |
| `/architect:conformity` | Samsvarsvurdering (Art. 43) sjekkliste og EU-samsvarserklæring |
**C. Oppdater agenttabellen** legg til ny agent:
| Agent | Formål | Modell |
|-------|--------|--------|
| `ai-act-assessor` | EU AI Act-klassifisering og compliance-vurdering | sonnet |
**D. Oppdater skills-tabellen** ms-ai-governance: 71 → 78 referansefiler
**E. Legg til seksjon "Viktige frister"** nederst i CLAUDE.md:
```markdown
## Viktige frister (EU AI Act)
| Dato | Krav |
|------|------|
| 2026-02-02 | Forbudt AI-praksis (Art. 5) i kraft |
| 2026-08-02 | GPAI-modell-krav i kraft |
| 2027-08-02 | Høyrisiko-krav (Annex III) i kraft |
| 2030-08-02 | Overgangsperiode for eksisterende systemer utløper |
Tilsynsmyndighet Norge: Nkom (koordinerende), Datatilsynet (personvern), sektorspesifikke myndigheter.
```
---
### STEG 6: Oppdater hooks
#### 6a. `hooks/session-start-context.mjs`
Legg til AI Act-fristsjekk i SessionStart-hook:
```javascript
// AI Act deadline warning
const today = new Date();
const deadline1 = new Date('2026-08-02');
const daysToDeadline1 = Math.ceil((deadline1 - today) / (1000 * 60 * 60 * 24));
if (daysToDeadline1 > 0 && daysToDeadline1 <= 180) {
console.log(`⚠️ EU AI Act: ${daysToDeadline1} dager til høyrisiko-krav (2026-08-02)`);
}
```
#### 6b. `hooks/stop-assessment-reminder.mjs`
Legg til i Stop-hook (assessment reminder):
```javascript
// Sjekk om AI Act-vurdering bør kjøres
const aiActKeywords = ['AI-system', 'agent', 'copilot', 'modell', 'prediksjon', 'automatisering'];
const hasAiContext = aiActKeywords.some(kw => conversationContext.includes(kw));
if (hasAiContext && !conversationContext.includes('AI Act')) {
console.log('💡 Tips: Vurdere /architect:classify for EU AI Act-klassifisering?');
}
```
---
### STEG 7: Oppdater playground
Fil: `playground/azure-ai-playground.html`
I steg 3 (Konfigurer) legg til ny seksjon "Regulatory Compliance":
```html
<div class="compliance-section">
<h4>EU AI Act</h4>
<label>
<input type="checkbox" id="ai-act-classify">
Klassifiser mot Annex III (kjør /architect:classify)
</label>
<label>
<input type="checkbox" id="ai-act-fria">
FRIA obligatorisk (offentlig sektor + høyrisiko)
</label>
<label>
<input type="checkbox" id="ai-act-transparency">
Transparensnotis (Art. 13/52)
</label>
</div>
```
I eksport-formater (steg 5) legg til AI Act-output alternativ:
- "AI Act Assessment Report (Markdown)"
- "Conformity Assessment Record (JSON)"
---
### STEG 8: Opprett tester
#### 8a. `tests/fixtures/ai-act/fixture.md`
Test-case: Fiktivt AI-system hos SVV
```markdown
# Test-system: FartsPrediksjonsagent
Formål: Predikere trafikkfart på E6 ved hjelp av historisk og sanntids-data
Teknologi: Azure Machine Learning, python-modell, REST API
Brukere: Intern trafikkovervåking, ingen direkte borgerinteraksjon
Data: GPS-data fra biler, kameraer, sensorer (anonymisert)
Sektor: Transport og infrastruktur
```
Forventet output: Klassifisert som "Begrenset/Minimal" (ikke Annex III, ikke direkte borgerimpakt)
#### 8b. `tests/fixtures/ai-act/fixture-high-risk.md`
Test-case: Høyrisiko-system
```markdown
# Test-system: AutomatiskSaksbehandler
Formål: Automatisk vurdering av dispensasjonssøknader (kjøretillatelser)
Teknologi: Azure OpenAI GPT-4, Copilot Studio
Brukere: Borgere sender søknad, AI gir innstilling til saksbehandler
Data: Persondata, helseopplysninger (ved dispensasjon)
Sektor: Offentlig forvaltning
```
Forventet output: Høyrisiko (Annex III, kategori 5: offentlige tjenester og ytelser)
#### 8c. `tests/test-ai-act-output.sh`
```bash
#!/bin/bash
# Test EU AI Act assessment output quality
echo "=== AI Act Output Test ==="
# Test 1: Klassifisering minimal risiko
echo "Test 1: Minimal risiko-klassifisering..."
# [implementer test]
# Test 2: Klassifisering høyrisiko
echo "Test 2: Høyrisiko-klassifisering..."
# [implementer test]
# Test 3: FRIA-trigger ved høyrisiko + offentlig sektor
echo "Test 3: FRIA-trigger..."
# [implementer test]
echo "=== Done ==="
```
#### 8d. Oppdater `tests/run-e2e.sh`
Legg til AI Act test-suite som del av end-to-end:
```bash
echo "Running AI Act assessment suite..."
bash tests/test-ai-act-output.sh
```
---
### STEG 9: Kjør validate-plugin.sh
```bash
cd /Users/ktg/.claude/plugins/marketplaces/ktg-privat/plugins/ms-ai-architect
bash tests/validate-plugin.sh
```
Forventede advarsler (akseptable):
- Nye commands mangler i CLAUDE.md kommandotabell INNTIL steg 5 er fullført
---
### STEG 10: Kjør run-e2e.sh
```bash
bash tests/run-e2e.sh
```
Verifiser at alle eksisterende tester fortsatt passerer.
---
## Kritiske hensyn
1. **Sekvens er uforanderlig**: AI Act → DPIA → ROS. Aldri omgå dette.
2. **SVV er typisk deployer**, ikke provider. Men ved intern utvikling (Copilot Studio-agenter bygget internt): provider-rolle. Agenten skal avklare dette eksplisitt.
3. **FRIA er obligatorisk for offentlig sektor** ved høyrisiko-systemer. Ikke valgfritt.
4. **Fristen 2026-08-02 er 162 dager unna** (per 2026-02-22). SVV må ha klassifisert alle høyrisiko-systemer og ha GPAI-compliance på plass innen da.
5. **Ikke overskriv eksisterende KB-filer**: `ai-act-compliance-guide.md` og `ai-act-annex-iii-checklist.md` er komplette. Referer til dem, ikke erstatt dem.
6. **ms-ai-governance skills** skal oppgraderes: Oppdater manifest/teller fra 71 til 78 referansefiler etter at 7 nye filer er opprettet.
7. **Norsk språk**: All output til sluttbrukere skal være på norsk/bokmål. Interne agent-instruksjoner kan være på engelsk.
---
## Referanser
- EU AI Act (Regulation 2024/1689): https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32024R1689
- Nkom norsk tilsynsmyndighet: https://www.nkom.no/aktuelt/nyheter/nkom-koordinerer-eu-ai-act-i-norge
- Datatilsynet AI Act-veileder: https://www.datatilsynet.no/regelverk-og-verktoy/veiledere/kunstig-intelligens/
- Microsoft AI Act: https://learn.microsoft.com/en-us/azure/compliance/offerings/offering-eu-ai-act
- Purview Compliance Manager AI Act template: https://learn.microsoft.com/en-us/purview/compliance-manager-templates-list
---
*Handover opprettet: 2026-02-22 av Claude Sonnet 4.6 i Claude.ai Desktop*
*Plugin-versjon: Se CHANGELOG.md*

View file

@ -0,0 +1,172 @@
# Gap-analyse: Microsoft AI-kapabiliteter vs KB
**Dato:** 2026-02-18
**Scope:** ms-ai-architect-plugin KB (364 filer, 20 kategorier, 62 playground-items)
**Metode:** MCP-research (microsoft-learn) + WebSearch (feb 2026)
**Formål:** Identifisere gaps mellom faktiske Microsoft AI-kapabiliteter og pluginens kunnskapsbase
---
## A. Helt nye domener som mangler i KB (kritiske gaps)
Nye tjenester og kapabiliteter annonsert/lansert etter siste KB-oppdatering (jan 2026).
| # | Gap | Hva det er | Kilde/Tidspunkt | Prioritet |
|---|-----|-----------|-----------------|-----------|
| 1 | **Entra Agent ID + Registry** | Identitetsstyring for AI-agenter. Zero Trust-prinsipper for agent-identiteter. Agent Registry for livssyklushåndtering. | Ignite nov 2025 | **P1** |
| 2 | **Security Copilot (inkl. i E5)** | 12 innebygde security-agenter for trusseletterforskning, identitetsanalyse, sårbarhetshåndtering. Inkludert i M365 E5 fra nov 2025. | GA nov 2025 | **P1** |
| 3 | **GPT-5-serien** | Neste generasjon: gpt-5 (flaggskip), gpt-5-mini (kostnadseffektiv), gpt-5-nano (on-device), gpt-5-chat (samtalefokusert). | GA aug 2025 | **P1** |
| 4 | **GPT-4.1-serien** | Mellomgenerasjon: gpt-4.1, gpt-4.1-mini, gpt-4.1-nano. Optimert for kode og instruksjonsfølging. | GA apr 2025 | **P1** |
| 5 | **Foundry Agent Service (GA)** | Managed multi-agent runtime med persistent workflows, error recovery, inter-agent kommunikasjon. MCP og A2A-protokollstøtte. | GA mai 2025 | **P1** |
| 6 | **Computer-Using Agents (CUA)** | Desktop-automatisering uten API. Agenter som interagerer med GUI via skjermbilder og museklikk. Copilot Studio-integrasjon. | Preview sep 2025 | **P2** |
| 7 | **Copilot Tuning** | Fine-tune M365 Copilot-modeller på enterprise-data. Tilpasning av Copilot-oppførsel til organisasjonsdomene. | Preview jun 2025 | **P2** |
| 8 | **Foundry Local** | On-device inference uten skytilkobling. Kjører modeller lokalt for latensfølsomme eller offline-scenarier. | GA 2025 | **P2** |
| 9 | **Foundry Workflows** | Visuell multi-agent orkestreringsdesigner. Drag-and-drop design av agent-workflows med feilhåndtering og branching. | GA 2025 | **P2** |
| 10 | **Microsoft Agent Framework** | Open-source multi-agent SDK. Felles abstraksjon for Semantic Kernel, AutoGen og Copilot Studio-agenter. | Open source | **P2** |
| 11 | **Fabric AI Functions** | `ai.embed()`, `ai.generate_response()` direkte i Microsoft Fabric. AI integrert i data-lakehouse. | GA nov 2025 | **P2** |
| 12 | **Agent2Agent-protokoll (A2A)** | Agent-til-agent kommunikasjonsprotokoll. Åpen standard for interoperabilitet mellom agentsystemer. | GA 2025 | **P2** |
| 13 | **Deep Research tool** | o3-deep-research + Bing-integrasjon. Dybdeanalyse med automatisk websøk og kildehenvisninger. | GA | **P2** |
| 14 | **AI Prompt Shield (Entra)** | Nettverksbasert prompt injection-beskyttelse. Entra-integrert forsvar som filtrerer ondsinnet input på nettverksnivå. | Preview | **P2** |
| 15 | **Dynamics 365 AI-agenter** | Case Management, Sales, Finance, Customer Intent. Ferdigbygde agenter for Dynamics-scenarier. | GA 2025 | **P3** |
| 16 | **GitHub Copilot Enterprise** | Code-assistanse med organisasjonskontekst. Tilpasset kodegenerering basert på interne repos. | GA | **P3** |
| 17 | **Sora (video-generering)** | AI-videogenerering i Azure AI Foundry. Tekst-til-video og bilde-til-video. | GA, kun Sweden Central | **P3** |
| 18 | **GPT-image-modeller** | Neste generasjon bildegenerering i Foundry. Erstatter DALL-E 3. | Preview/GA | **P3** |
| 19 | **Browser Automation (Foundry)** | Playwright-basert web-interaksjon for agenter. Automatisert navigering og datahenting fra nettsider. | Preview aug 2025 | **P3** |
### Tiltaksoversikt P1-gaps
| Gap | Tiltak | Ny KB-fil |
|-----|--------|-----------|
| Entra Agent ID | Ny fil i `ai-security-engineering/` | `entra-agent-id-zero-trust.md` |
| Security Copilot | Ny fil i `ai-security-engineering/` | `security-copilot-integration.md` |
| AI Prompt Shield | Ny fil i `ai-security-engineering/` | `ai-prompt-shield-network.md` |
| GPT-5/4.1-serien | Ny fil i `platforms/` | `model-catalog-2026.md` |
| GPT-5/4.1 pricing | Ny fil i `cost-optimization/` | `gpt5-gpt41-pricing-models.md` |
| Foundry Agent Service | Ny fil i `agent-orchestration/` | `foundry-agent-service-ga.md` |
| A2A-protokoll | Ny fil i `agent-orchestration/` | `agent-to-agent-a2a-protocol.md` |
| Foundry Workflows | Ny fil i `agent-orchestration/` | `foundry-workflows-visual-orchestration.md` |
| CUA | Ny fil i `agent-orchestration/` | `computer-using-agents-cua.md` |
---
## B. Eksisterende KB som trenger oppdatering
### Plattformfiler (høyest prioritet)
| KB-fil | Hva som mangler | Prioritet |
|--------|----------------|-----------|
| `platforms/azure-ai-foundry.md` | "Microsoft Foundry" rebranding (Satya, Build 2025), Foundry Agent Service GA-detaljer, nye verktøy (Workflows, Local, CUA), GPT-5/4.1 i modellkatalog | **P1** |
| `platforms/copilot-studio.md` | CUA-integrasjon, Copilot Tuning, Code Interpreter GA, MCP GA (nov 2025), VS Code-utvidelse, GPT-5 som default-modell | **P1** |
| `platforms/power-platform.md` | AI Builder + Document Intelligence GA, Prompt Builder med Foundry-tilkobling, Copilot Credits-endringer (fra mai-modell), nye AI-funksjoner i Power Pages | **P1** |
| `platforms/m365-copilot.md` | GPT-5 som default-modell, Copilot Library, Copilot Tuning, Agent Builder med GPT-5, Copilot Pages GA, nye Copilot-agenter | **P1** |
### Andre KB-kategorier
| KB-kategori | Filer som trenger oppdatering | Prioritet |
|-------------|------------------------------|-----------|
| `architecture/licensing-matrix.md` | Security Copilot i E5, Copilot Credits-endringer, nye lisenstyper | **P1** |
| `architecture/decision-trees.md` | Nye modeller (GPT-5/4.1), CUA-gren, Foundry Workflows-gren | **P2** |
| `agent-orchestration/*.md` | A2A-protokoll, Foundry Workflows, CUA-integrasjon, MCP GA | **P2** |
| `ai-security-engineering/*.md` | Entra Agent ID, AI Prompt Shield, Security Copilot-integrasjon | **P1** |
| `cost-optimization/*.md` | GPT-5/4.1 pricing, Copilot Credits-oppdatering, nye PTU-modeller | **P2** |
---
## C. Playground-gaps (items som mangler)
Nåværende: 62 items i ITEMS-array. Følgende bør legges til:
| # | Manglende item | `id` | `aisle` | `sources` | Prioritet |
|---|---------------|------|---------|-----------|-----------|
| 1 | GPT-5 (flaggskip) | `llm-gpt5` | `llm` | `['openai','foundry']` | **P1** |
| 2 | GPT-5-mini | `llm-gpt5-mini` | `llm` | `['openai','foundry']` | **P1** |
| 3 | GPT-4.1 | `llm-gpt41` | `llm` | `['openai','foundry']` | **P1** |
| 4 | GPT-4.1-mini | `llm-gpt41-mini` | `llm` | `['openai','foundry']` | **P1** |
| 5 | Foundry Agent Service (multi-agent) | *eksisterer som `agent-foundry`* | — | — | OK |
| 6 | CUA (Computer-Using Agents) | `agent-cua` | `agent` | `['studio']` | **P2** |
| 7 | Foundry Workflows | `agent-workflows` | `agent` | `['foundry']` | **P2** |
| 8 | Agent2Agent-protokoll | `agent-a2a` | `agent` | `['foundry','studio']` | **P2** |
| 9 | Copilot Tuning | `llm-copilot-tuning` | `llm` | `['studio','m365']` | **P2** |
| 10 | Security Copilot | `sec-copilot` | `security` | `['m365']` | **P2** |
| 11 | Entra Agent ID | `auth-agent-id` | `identity` | `['m365']` | **P1** |
| 12 | Deep Research | `agent-deep-research` | `agent` | `['foundry']` | **P2** |
| 13 | Fabric AI Functions | `data-fabric-ai` | `data` | `['fabric']` | **P3** |
| 14 | DeepSeek-R1/V3 | `llm-deepseek` | `llm` | `['foundry']` | **P2** |
**Merk:** `agent-foundry` eksisterer allerede og dekker Foundry Agent Service. Items #5 trenger kun oppdatering av eksisterende item, ikke ny oppføring.
---
## D. Norway East-begrensninger (nytt)
Viktig for norsk offentlig sektor: Ikke alle kapabiliteter er tilgjengelige i Norway East-regionen.
### Azure AI Search
| Funksjon | Norway East | Alternativ |
|----------|-------------|------------|
| Agentic Retrieval | Ikke tilgjengelig | Sweden Central, West Europe |
| Semantic Ranker (free tier) | Ikke tilgjengelig | Sweden Central |
| Query Rewrite | Ikke tilgjengelig | Sweden Central, West Europe |
| Standard Search | Tilgjengelig | — |
| Integrated Vectorization | Tilgjengelig | — |
### Azure AI Foundry / OpenAI
| Funksjon | Norway East | Alternativ |
|----------|-------------|------------|
| GPT-4o, GPT-4o-mini | Tilgjengelig | — |
| GPT-5 (full) | Ikke bekreftet | Sweden Central, West Europe |
| GPT-4.1, GPT-4.1-mini | Tilgjengelig (standard) | — |
| o1/o3 Reasoning | Begrenset | Sweden Central |
| Sora (video) | Ikke tilgjengelig | Sweden Central, East US 2 |
| GPT-image | Kun global deployment | — |
| DALL-E 3 | Tilgjengelig | — |
### Databricks (via Foundry)
| Funksjon | Norway East | Alternativ |
|----------|-------------|------------|
| Vector Search | Ikke tilgjengelig | West Europe |
| Mosaic AI | Ikke tilgjengelig | West Europe |
| Predictive Optimization | Ikke tilgjengelig | West Europe |
### Konsekvenser for arkitekturanbefalinger
1. **Multi-region-strategi nødvendig** for avanserte funksjoner (Agentic Retrieval, GPT-5, Sora)
2. **Sweden Central** er nærmeste alternativ med bredest funksjonalitet
3. **Data Boundary-krav** kan begrense multi-region: Verifiser at Sweden Central er innenfor EU Data Boundary
4. **Fallback-arkitektur** bør designes for tjenester som ikke er i Norway East
---
## E. Prioritert handlingsplan
### Fase 1: Plattformoppdatering (denne sesjonen)
1. Oppdater 4 plattformfiler med MCP-research
2. Opprett 9 nye KB-filer for P1/P2-gaps
3. Oppdater playground ITEMS-array
4. Oppdater CLAUDE.md
### Fase 2: Dybdedekning (neste sesjon)
1. Oppdater `architecture/licensing-matrix.md`
2. Oppdater `architecture/decision-trees.md`
3. Oppdater eksisterende agent-orchestration-filer med A2A/MCP GA
4. Legg til Norway East-begrensninger i relevante filer
### Fase 3: Lavere prioritet (fremtidig)
1. P3-gaps: Dynamics 365, GitHub Copilot Enterprise, Sora, Browser Automation
2. Fabric AI Functions (krever ny `fabric` brand i playground)
3. Playground-scenarioer for nye items
---
## F. Verifiseringsplan
| Sjekk | Kommando | Forventet |
|-------|---------|-----------|
| Strukturell validering | `bash tests/validate-plugin.sh` | PASS |
| KB-ferskhet | `bash scripts/kb-staleness-check.sh` | Nye filer datert 2026-02 |
| KB-antall | `find skills/ -name "*.md" \| wc -l` | 373+ (opp fra 364) |
| Playground items | Grep ITEMS-array | 76+ items (opp fra 62) |
| Playground browser-test | Åpne i browser | Nye items synlige |
---
*Generert: 2026-02-18 | Neste review: 2026-03*

View file

@ -0,0 +1,82 @@
# Knowledge Base Update Policy
**Last updated:** 2026-02
**Applies to:** ms-ai-architect plugin (5 skills, 364 reference files)
---
## Update Frequency
| Priority | Category Pattern | Threshold | Rationale |
|----------|-----------------|-----------|-----------|
| Critical | cost, pricing, pris | 30 days | Azure prices change monthly |
| High | responsible-ai, norwegian-public-sector-governance, ai-security-engineering | 60 days | Regulations and compliance evolve quarterly |
| Medium | platforms, copilot-extensibility, azure-ai-services, multi-modal, performance-scalability, monitoring-observability, agent-orchestration, data-engineering, api-management, hybrid-edge, bcdr, rag-architecture, mlops-genaiops, prompt-engineering | 90 days | Feature updates follow Azure release cycles |
| Low | architecture, development, patterns | 180 days | Foundational patterns change slowly |
## Category-to-Skill Mapping
| Category | Skill Directory | File Count |
|----------|----------------|------------|
| rag-architecture | ms-ai-engineering | ~20 |
| azure-ai-services | ms-ai-engineering | ~25 |
| copilot-extensibility | ms-ai-engineering | ~15 |
| prompt-engineering | ms-ai-engineering | ~15 |
| data-engineering | ms-ai-engineering | ~20 |
| api-management | ms-ai-engineering | ~10 |
| agent-orchestration | ms-ai-engineering | ~15 |
| multi-modal | ms-ai-engineering | ~10 |
| mlops-genaiops | ms-ai-engineering | ~15 |
| performance-scalability | ms-ai-engineering | ~10 |
| monitoring-observability | ms-ai-engineering | ~10 |
| responsible-ai | ms-ai-governance | ~25 |
| norwegian-public-sector-governance | ms-ai-governance | ~25 |
| cost-optimization | ms-ai-security | ~15 |
| ai-security-engineering | ms-ai-security | ~15 |
| hybrid-edge | ms-ai-infrastructure | ~15 |
| bcdr | ms-ai-infrastructure | ~15 |
| platforms | ms-ai-advisor | ~20 |
| architecture | ms-ai-advisor | ~20 |
## Operational Procedure
### Regular Check (Monthly)
1. Run staleness check:
```bash
bash scripts/kb-staleness-check.sh --json --output kb-status.json
```
2. Review stale files by priority:
```bash
bash scripts/kb-staleness-check.sh --priority-only
```
3. Update critical/high priority files:
```
/architect:generate-skills --update --priority critical
/architect:generate-skills --update --priority high
```
### Quarterly Review
1. Run full staleness report
2. Update all medium+ priority files
3. Review and archive obsolete files
4. Update this policy if thresholds need adjustment
### Update vs Regenerate
- **Update** (preferred): Preserves existing structure, updates facts/dates/URLs. Uses Edit tool.
- **Regenerate**: Full rewrite. Use when file structure is outdated or content is >50% stale.
## Quality Gates
- Updated files must pass: `bash tests/validate-plugin.sh`
- Updated files must have "Verified (MCP {month})" markers on MCP-sourced facts
- Updated files must maintain 7-15 KB size range
- No broken links or stale Microsoft Learn URLs
## Automation
The SessionStart hook (`session-start-context.mjs`) automatically reports KB staleness levels at session start. The `kb-staleness-check.sh` script supports both human-readable and JSON output formats for integration with CI/CD or monitoring.

View file

@ -0,0 +1,155 @@
# From Clone to PR: Building ROS Analysis for ms-ai-architect
Step-by-step guide for **Windows**. Start at Step 1, end with a PR containing a complete ROS analysis feature.
## Prerequisites
- [Node.js](https://nodejs.org/) (LTS) — required for Claude Code and MCP servers
- [Git for Windows](https://git-scm.com/download/win) — includes Git Bash (needed for test scripts)
- [Claude Code](https://docs.anthropic.com/en/docs/claude-code) — `npm install -g @anthropic-ai/claude-code`
## Step 1: Clone and Register
Open PowerShell:
```powershell
# Create the marketplace directory
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.claude\plugins\marketplaces"
# Clone
git clone https://github.com/guttormsen108/ktg-privat.git "$env:USERPROFILE\.claude\plugins\marketplaces\ktg-privat"
```
Edit `%USERPROFILE%\.claude\settings.json` (create if it doesn't exist):
```json
{
"enabledPlugins": {
"ms-ai-architect@ktg-privat": true
},
"mcpServers": {
"microsoft-learn": {
"command": "npx",
"args": ["-y", "@nicobailey/microsoft-learn-mcp-server"]
}
}
}
```
> **Tip:** Open the file with `notepad $env:USERPROFILE\.claude\settings.json`
## Step 2: Verify
```powershell
cd "$env:USERPROFILE\.claude\plugins\marketplaces\ktg-privat"
claude
```
You should see:
```
Architect: Ingen virksomhetstilpasning. Kjor /architect:onboard (~5 min).
```
Type `/architect:help` — if you see a list of commands, the plugin works.
## Step 3: Create a Branch
```powershell
git checkout -b feat/ros-analysis
```
## Step 4: Read the Pattern Files
Before writing anything, ask Claude to read these files. They are the patterns your ROS implementation must follow:
```
Read these files:
- plugins/ms-ai-architect/commands/dpia.md
- plugins/ms-ai-architect/agents/dpia-agent.md
- plugins/ms-ai-architect/agents/security-assessment-agent.md
- plugins/ms-ai-architect/skills/ms-ai-security/references/ai-security-engineering/security-scoring-rubrics-6x5.md
- plugins/ms-ai-architect/CLAUDE.md
```
Key patterns to understand:
- **Command** (`dpia.md`): collects context via dialog, then delegates to agent via `Task`
- **Agent** (`dpia-agent.md`): phased methodology, KB-routing to reference files, structured output
- **Scoring** (`security-scoring-rubrics-6x5.md`): deterministic rubrics with checkpoints per cell
## Step 5: Plan the Implementation
This is the critical step. Type `plan` first, then your prompt:
```
plan Build a professional ROS analysis feature for the ms-ai-architect
plugin. It needs: a /architect:ros command, a ros-analysis-agent,
knowledge base files (threat library, scoring rubrics, sector checklists,
methodology guide, report templates, integration guide), E2E tests,
and updates to CLAUDE.md + help.md + SKILL.md.
Follow the patterns in dpia.md, dpia-agent.md, and
security-scoring-rubrics-6x5.md exactly.
```
Claude will explore the codebase and produce a detailed plan listing every file to create/modify. **Review the plan carefully.** The plan should include roughly:
- **~10 new files**: command, agent, 6 knowledge base references, test script, test fixture
- **~5 modified files**: CLAUDE.md, help.md, SKILL.md, summary-agent.md, run-e2e.sh
When satisfied, approve the plan. Claude implements exactly what was approved — nothing more.
## Step 6: Verify
After implementation, run validation in **Git Bash** (not PowerShell — the test scripts are bash):
```bash
# Open Git Bash from Start menu, then:
cd ~/.claude/plugins/marketplaces/ktg-privat
# Plugin structure validation
bash plugins/ms-ai-architect/tests/validate-plugin.sh
# E2E tests (no Claude invocation needed)
bash plugins/ms-ai-architect/tests/run-e2e.sh --ros
```
> **Note:** Alternatively, ask Claude to run the tests for you — Claude's built-in Bash tool handles this on Windows.
Fix any failures before proceeding.
## Step 7: Commit and PR
Ask Claude:
```
Commit all changes and create a PR to main
```
Commit message convention: `feat(architect): add ROS analysis command and agent`
CLAUDE.md must be updated in the same commit as the new functionality.
## What the Final PR Should Contain
| Type | Files | Description |
|------|-------|-------------|
| Command | `commands/ros.md` | `/architect:ros` with quick and full mode |
| Agent | `agents/ros-analysis-agent.md` | Multi-phase ROS with scoring rubrics |
| KB: Threats | `references/.../ros-ai-threat-library.md` | ~45 AI-specific threats |
| KB: Scoring | `references/.../ros-scoring-rubrics-7x5.md` | Deterministic rubrics (7 dimensions x 5 levels) |
| KB: Sectors | `references/.../ros-sector-checklists.md` | Health, transport, finance, justice, education |
| KB: Methodology | `references/.../ros-methodology-ns5814-iso31000.md` | NS 5814 / ISO 31000 process mapping |
| KB: Templates | `references/.../ros-report-templates.md` | Quick and full report templates |
| KB: Integration | `references/.../ros-dpia-security-integration.md` | When to use ROS vs DPIA vs Security |
| Tests | `tests/test-ros-output.sh` + `tests/fixtures/ros-analysis/` | E2E structure validation |
| Docs | CLAUDE.md, help.md, SKILL.md, summary-agent.md, run-e2e.sh | Updated tables and references |
## Quick Reference
| Action | How |
|--------|-----|
| See all commands | Type `/` and scroll |
| Plan mode | Type `plan` before your prompt |
| Auto-accept tool calls | Shift+Tab |
| Cancel | Esc |
| New conversation | `/clear` |
| Context usage | `/cost` |

View file

@ -0,0 +1,249 @@
# Playground AI Act Integration — Sesjonplan
## Kontekst
Playground (`playground/azure-ai-playground.html`, 1850L) har allerede en `ai-act-high` checkbox i Step 1 (intake) og Step 2 (filter). Når den er valgt, vises en gul "AI Act høy-risiko" compliance-sjekk i Step 3. Men dette er bare en passiv indikator — ingen risikonivåer, ingen rollevisning, ingen utvidet eksport.
Denne sesjonen utvider Step 3 og Step 5 med AI Act-bevissthet.
## Hva som finnes i dag
| Sted | Linje | Innhold |
|------|-------|---------|
| Step 1 (intake) | L356 | `<input type="checkbox" value="ai-act-high">` |
| Step 2 (filter) | L455 | `<input type="checkbox" data-filter="compliance" value="ai-act-high">` |
| Step 3 (`getComplianceStatus()`) | L1449-1451 | Gul status-badge: `{ label: 'AI Act hoy-risiko', status: 'yellow' }` |
| Step 5 (prompt) | L1639 | Compliance-krav inkluderer `ai-act-high` som tekst |
| Step 5 (JSON) | L1765 | `compliance: state.intake.compliance` (inkluderer `ai-act-high`) |
## Endring 1: Step 1 — Utvid AI Act-valg fra checkbox til dropdown
**Nå:** Én checkbox (`ai-act-high`).
**Etter:** Dropdown med 4 risikonivåer + "Ikke vurdert".
```html
<!-- Erstatt L356 -->
<div class="param-input" style="margin-top:0.5rem">
<label>EU AI Act risikonivå</label>
<select onchange="updateAiActLevel(this.value)">
<option value="">Ikke vurdert</option>
<option value="minimal">Minimal risiko</option>
<option value="limited">Begrenset risiko</option>
<option value="high-risk">Høyrisiko (Annex III)</option>
<option value="prohibited">Forbudt (Art. 5)</option>
</select>
</div>
<div class="param-input">
<label>Rolle i AI Act</label>
<select onchange="state.intake.aiActRole=this.value">
<option value="">Ikke bestemt</option>
<option value="deployer">Deployer</option>
<option value="provider">Provider</option>
<option value="deployer-provider">Deployer + Provider</option>
</select>
</div>
```
**State-utvidelse:**
```javascript
// I state.intake (rundt L?? i init/state):
aiActLevel: '', // '', 'minimal', 'limited', 'high-risk', 'prohibited'
aiActRole: '', // '', 'deployer', 'provider', 'deployer-provider'
```
**Ny funksjon:**
```javascript
function updateAiActLevel(level) {
state.intake.aiActLevel = level;
// Synk legacy compliance-array
const idx = state.intake.compliance.indexOf('ai-act-high');
if (level === 'high-risk' || level === 'prohibited') {
if (idx === -1) state.intake.compliance.push('ai-act-high');
} else {
if (idx !== -1) state.intake.compliance.splice(idx, 1);
}
}
```
**Filter i Step 2 (L455):** Behold eksisterende `ai-act-high` filter — den fungerer allerede.
## Endring 2: Step 3 — Utvidet compliance-sjekk
**Nå:** `getComplianceStatus()` (L1410-1454) viser gul badge.
**Etter:** AI Act-sjekken blir dynamisk basert på nivå og rolle.
Erstatt L1448-1451 med:
```javascript
// AI Act
const aiLevel = state.intake.aiActLevel;
if (aiLevel === 'high-risk') {
checks.push({ label: 'AI Act: Høyrisiko (Annex III)', status: 'red' });
checks.push({ label: 'FRIA påkrevd (Art. 27)', status: 'red' });
if (!hasObservability) {
checks.push({ label: 'Logging min. 6 mnd påkrevd (Art. 12/26)', status: 'red' });
}
} else if (aiLevel === 'limited') {
checks.push({ label: 'AI Act: Begrenset risiko', status: 'yellow' });
checks.push({ label: 'Transparensplikt (Art. 50)', status: 'yellow' });
} else if (aiLevel === 'minimal') {
checks.push({ label: 'AI Act: Minimal risiko', status: 'green' });
} else if (aiLevel === 'prohibited') {
checks.push({ label: 'AI Act: FORBUDT — kan ikke brukes', status: 'red' });
} else if (state.intake.compliance.includes('ai-act-high')) {
// Legacy fallback
checks.push({ label: 'AI Act høy-risiko', status: 'yellow' });
}
```
## Endring 3: Step 3 — AI Act anbefalingspanel
Etter compliance-listen i `renderConfigure()` (L1396-1404), legg til et AI Act-panel som vises når nivå er satt:
```javascript
// Etter complianceHtml i renderConfigure()
let aiActHtml = '';
if (state.intake.aiActLevel) {
const level = state.intake.aiActLevel;
const role = state.intake.aiActRole || 'deployer';
const cmds = [];
if (level === 'high-risk') {
cmds.push({ cmd: '/architect:classify', desc: 'Bekreft klassifisering' });
cmds.push({ cmd: '/architect:frimpact', desc: 'FRIA (obligatorisk offentlig sektor)' });
cmds.push({ cmd: '/architect:dpia', desc: 'Personvernkonsekvensvurdering' });
cmds.push({ cmd: '/architect:requirements', desc: 'Konkrete Art. 9-27 krav' });
} else if (level === 'limited') {
cmds.push({ cmd: '/architect:classify', desc: 'Bekreft klassifisering' });
cmds.push({ cmd: '/architect:transparency', desc: 'Generer Art. 50 transparensnotis' });
} else if (level === 'minimal') {
cmds.push({ cmd: '/architect:classify', desc: 'Dokumenter klassifisering' });
}
aiActHtml = `
<div class="param-group" style="border-left:3px solid ${level === 'high-risk' || level === 'prohibited' ? 'var(--red)' : level === 'limited' ? 'var(--accent4)' : 'var(--accent2)'}; padding-left:0.75rem">
<h4>EU AI Act — Neste steg</h4>
${cmds.map(c => `<div style="font-size:0.82rem;margin:0.3rem 0"><code>${c.cmd}</code> — ${c.desc}</div>`).join('')}
${level === 'high-risk' ? '<div style="font-size:0.78rem;color:var(--text-dim);margin-top:0.5rem">Frist: 2. august 2026 (GPAI + Annex III)</div>' : ''}
</div>`;
}
```
Inject `aiActHtml` etter compliance-listen i HTML-template.
## Endring 4: Step 5 — AI Act i alle eksportformater
### 4a. Prompt (L1615-1654)
Etter compliance-krav-linjen (L1639), legg til:
```javascript
if (state.intake.aiActLevel) {
prompt += `EU AI Act risikonivå: ${state.intake.aiActLevel}.\n`;
if (state.intake.aiActRole) prompt += `Rolle: ${state.intake.aiActRole}.\n`;
if (state.intake.aiActLevel === 'high-risk') {
prompt += 'NB: Høyrisiko — FRIA (Art. 27) og samsvarsvurdering (Art. 43) kreves.\n';
}
}
```
### 4b. Pipeline (L1657-1687)
I `generatePipelineTab()`, legg til AI Act-commands etter standard pipeline:
```javascript
// Etter pipeline.commands mapping
if (state.intake.aiActLevel === 'high-risk') {
cmds += `
<div style="margin:1rem 0 0.5rem;font-size:0.82rem;color:var(--text-dim);font-weight:600">EU AI Act compliance</div>
`;
const aiCmds = [
{ cmd: 'classify', desc: 'Bekreft AI Act-klassifisering' },
{ cmd: 'frimpact', desc: 'FRIA — obligatorisk for offentlig sektor' },
{ cmd: 'requirements', desc: 'Konkrete deployer/provider-krav' },
{ cmd: 'conformity', desc: 'Samsvarsvurdering (Annex IV)' }
];
cmds += aiCmds.map((c, i) => `
<div class="cmd-row">
<span class="cmd-num">+${i + 1}</span>
<div class="cmd-info">
<div class="cmd-code">/architect:${c.cmd}</div>
<div class="cmd-desc">${c.desc}</div>
</div>
<button class="cmd-copy" onclick="copyToClipboard('/architect:${c.cmd}')">Kopier</button>
</div>
`).join('');
}
```
### 4c. Brief Markdown (L1701-1737)
Etter dataresidens-linjen (L1716), legg til:
```javascript
if (state.intake.aiActLevel) {
md += `**EU AI Act:** ${state.intake.aiActLevel === 'high-risk' ? 'Høyrisiko (Annex III)' : state.intake.aiActLevel === 'limited' ? 'Begrenset risiko' : state.intake.aiActLevel === 'minimal' ? 'Minimal risiko' : 'Forbudt'}\n`;
if (state.intake.aiActRole) md += `**Rolle:** ${state.intake.aiActRole}\n`;
}
```
Og etter prompt-seksjonen (L1734), legg til en AI Act-seksjon:
```javascript
if (state.intake.aiActLevel === 'high-risk') {
md += `\n## EU AI Act — Compliance-krav\n\n`;
md += `- [ ] FRIA gjennomført (Art. 27) — /architect:frimpact\n`;
md += `- [ ] Samsvarsvurdering (Art. 43) — /architect:conformity\n`;
md += `- [ ] Transparensnotis (Art. 50) — /architect:transparency\n`;
md += `- [ ] Logging min. 6 mnd (Art. 12/26)\n`;
md += `- [ ] Menneskelig tilsyn formalisert (Art. 14)\n`;
md += `\n**Frist:** 2. august 2026 (GPAI + Annex III høyrisiko)\n`;
}
```
### 4d. JSON Record (L1752-1803)
Legg til `aiAct`-objekt i returverdien:
```javascript
aiAct: state.intake.aiActLevel ? {
riskLevel: state.intake.aiActLevel,
role: state.intake.aiActRole || null,
requiresFRIA: state.intake.aiActLevel === 'high-risk',
requiresConformity: state.intake.aiActLevel === 'high-risk',
deadline: state.intake.aiActLevel === 'high-risk' ? '2026-08-02' : null
} : null,
```
## Endring 5: CSS for AI Act-fargekoding
Legg til i `<style>`-seksjonen (rundt L200):
```css
.compliance-item .status-red { color: #ef4444; }
.ai-act-panel { border-left: 3px solid var(--accent4); padding-left: 0.75rem; margin-top: 0.75rem; }
```
## Rekkefølge
1. State-utvidelse (`aiActLevel`, `aiActRole`)
2. Step 1 UI (erstatt checkbox med dropdowns)
3. `updateAiActLevel()` funksjon
4. `getComplianceStatus()` oppdatering
5. `renderConfigure()` — AI Act-panel
6. Step 5: alle 4 eksportfunksjoner
7. CSS
8. Test i nettleser (åpne HTML, velg høyrisiko, gå gjennom alle steg)
## Verifisering
- [ ] Velg "Høyrisiko" i Step 1 → compliance-sjekk viser rød badge + FRIA
- [ ] Velg "Minimal" → grønn badge
- [ ] Step 3 viser "Neste steg"-panel med relevante commands
- [ ] Step 5 Prompt inkluderer AI Act-nivå og rolle
- [ ] Step 5 Pipeline viser 4 ekstra AI Act-commands for høyrisiko
- [ ] Step 5 Brief har compliance-sjekkliste for høyrisiko
- [ ] Step 5 JSON har `aiAct`-objekt
- [ ] Legacy `ai-act-high` checkbox i Step 2 filter fungerer fortsatt
- [ ] "Ikke vurdert" → ingen AI Act-info i eksport
- [ ] Ingen regresjoner i øvrig funksjonalitet
## Estimat
~50 netto nye linjer JS, ~10 HTML, ~5 CSS. Moderat risiko — endrer eksisterende funksjoner (`getComplianceStatus`, `renderConfigure`, 4 eksportfunksjoner). Én commit.

View file

@ -0,0 +1,147 @@
# Azure AI Architecture Playground
**Target:** Lagre denne planen i `/Users/ktg/.claude/plugins/marketplaces/ktg-privat/plugins/ms-ai-architect/docs/playground-plan.md`
---
## Context
`ai-frameworks/framework-comparison.html` er en "grocery store" for open-source AI agent frameworks — 130+ features sortert i 8 kategorier, med handlekurv og eksport som Claude Code brief. Konseptet fungerer, men Azure AI-landskapet har et annet problem: brukere vet hva de vil oppna, men ikke hvilke tjenester som loser det.
**Mal:** Bygge et guidet arkitekturbeslutningsverktoy for Azure AI-plattformen, ved a bruke Playground-pluginen som generator og ms-ai-architect som kunnskapsbase. Prompt-outputen fra playground limes tilbake i Claude for a kjore `/architect`-kommandoer.
**Arbeidskatalog:** `/Users/ktg/.claude/plugins/marketplaces/ktg-privat/plugins/ms-ai-architect/` (ms-ai-architect plugin-mappen)
---
## Approach: Playground-generert HTML med 3 innganger
### Inngang 1: Scenariovelger (hovedmodus for ikke-eksperter)
- Bruker velger et scenario fra 8-10 forhapsdefinerte: "RAG-chatbot for interne dokumenter", "Autonom agent for saksbehandling", "Dokumentklassifisering", "Multi-agent workflow", "Copilot-utvidelse for M365", etc.
- Handlekurv pre-fylles med anbefalte kapabiliteter
- Hvert pre-fylt item forklarer HVORFOR det trengs
- Bruker kan justere (fjerne, legge til, bytte alternativer)
### Inngang 2: Constraint-filter (smalner valg)
- Sidebar med filtre: lisenstype (E3/E5/Azure), budsjett, dataresidens (Norway East?), compliance-krav (Schrems II, DPIA)
- Filtrene skjuler items som ikke er tilgjengelige/relevante
- Basert pa data fra `licensing-matrix.md` og `decision-trees.md`
### Inngang 3: Frittsurfing (ekspertmodus)
- Browse alle kapabiliteter pa tvers av aisles, som originalen
- For arkitekter som allerede kjenner landskapet
### Prompt output (noykkelen)
Genererer en strukturert prompt klar til a lime inn i Claude:
```
Jeg planlegger en [scenario] for [malgruppe].
Organisasjonen har [lisenstype] og krav om [compliance].
Budsjettramme: [estimat/maned].
Valgte kapabiliteter:
- [Aisle]: [Item 1] (fra [Azure-tjeneste])
- [Aisle]: [Item 2] (fra [Azure-tjeneste])
...
Kjor /architect:utredning med disse valgene som utgangspunkt.
```
---
## Data model
### Azure AI "brands" (tilsvarer frameworks i originalen)
1. **M365 Copilot** — out-of-box produktivitet
2. **Copilot Studio** — no-code/low-code agenter
3. **Azure AI Foundry** — pro-code AI-plattform
4. **Azure OpenAI Service** — direkte LLM-tilgang
5. **Azure AI Search** — RAG og sokeindeksering
6. **Azure AI Services** — Vision, Speech, Language, Document Intelligence
7. **Semantic Kernel** — orkestrerings-SDK
8. **Power Platform AI** — AI Builder, Power Automate AI
9. **Microsoft Graph** — data-tilgang og integrasjon
### Aisles (kategorier)
1. **LLM-tilgang** — modellvalg, deployment, PTU vs PAYG
2. **RAG & Sok** — vektorindeks, hybrid search, grounding
3. **Agent-orkestrering** — multi-agent, tool use, autonomi
4. **Identitet & Auth** — Managed Identity, RBAC, Entra ID
5. **Sikkerhet & Compliance** — Content Safety, DLP, Schrems II, DPIA
6. **Kanaler & UX** — Teams, web, WhatsApp, Adaptive Cards
7. **Data & Integrasjon** — Graph, connectors, datakilder
8. **Observability** — logging, monitoring, evaluering, cost tracking
### Item-metadata (utover originalen)
```json
{
"name": "Azure AI Search — Hybrid Vector+Keyword",
"desc": "Kombinerer semantisk og keyword-sok for optimal RAG-recall",
"sources": ["Azure AI Search"],
"category": "RAG & Sok",
"cost_tier": "medium",
"license_req": "azure-payg",
"compliance": {
"norway_east": true,
"schrems_ii": "ok",
"dpia_required": false
},
"maturity": "GA",
"scenarios": ["rag-chatbot", "document-search", "knowledge-base"]
}
```
---
## Implementeringsplan
### Steg 1: Opprett prosjektstruktur i ms-ai-architect
- Grunnstruktur: `playground/`, `playground/data/`, `playground/docs/`
- Legg til CLAUDE.md med prosjektbeskrivelse i playground/
### Steg 2: Ekstraher strukturert data fra ms-ai-architect
- Parse `decision-trees.md` -> scenario-til-kapabilitet-mapping
- Parse `licensing-matrix.md` -> lisens-til-kapabilitet-filter
- Parse referansefiler -> kapabilitetskatalog med metadata
- Output: `playground/data/capabilities.json` — maskinlesbar katalog
### Steg 3: Bygg playground HTML
- Bruk Playground plugin-monsteret: kontroller + preview + prompt output
- Adaptor fra grocery store HTML (aisles, cards, cart, export)
- Tilleggselementer: scenariovelger, constraint-filtre, kostnadsestimator
- Self-contained, dark theme, ingen eksterne avhengigheter
### Steg 4: Implementer de 3 inngangene
- Scenariovelger: dropdown/cards med pre-fylling
- Constraint-filter: sidebar med lisens, budsjett, compliance toggles
- Frittsurfing: browse aisles som originalen
### Steg 5: Prompt output og eksport
- Live prompt-output som oppdateres ved hvert valg
- Copy-knapp for a lime i Claude
- Alternativ eksport: markdown-brief, JSON for maskin-konsumering
### Steg 6: Koble til ms-ai-architect workflow
- Dokumenter hvordan prompt-output feeds inn i `/architect:utredning`
- Vurder om grocery store kan bli en ny `/architect:explore` command
---
## Referansefiler (eksisterende, gjenbruk)
| Fil | Bruk |
|-----|------|
| `ai-frameworks/framework-comparison.html` | UI-monster og JavaScript-patterns |
| `ms-ai-architect/.../decision-trees.md` | Scenario-mapping logikk |
| `ms-ai-architect/.../licensing-matrix.md` | Lisensfilter-data |
| `ms-ai-architect/.../cost-models.md` | Kostnadsestimering |
| `ms-ai-architect/.../public-sector-checklist.md` | Compliance-filtre |
| Playground SKILL.md + templates | HTML-genereringsmonster |
## Verifikasjon
1. Apne HTML i browser — alt fungerer uten nettverk
2. Velg scenario "RAG-chatbot" -> handlekurv pre-fylles med 5-8 items
3. Aktiver filter "E3 + Norway East" -> items som krever E5/annen region skjules
4. Kopier prompt output -> lim inn i Claude -> verifiser at den gir nok kontekst for `/architect`
5. Eksporter som markdown -> verifiser at den er lesbar og handlingsbar

View file

@ -0,0 +1,104 @@
# Playground v2: Full Self-Service Architecture Pipeline
> Spec document for the Azure AI Architecture Playground v2 rewrite.
> Status: Approved plan, ready for implementation.
---
## Definition
> **Playground er det visuelle inntakspunktet til ms-ai-architect-pluginen.** Den transformerer "jeg har et problem" til "kjor disse kommandoene med dette inputet, i denne rekkefolgem, og forvent disse leveransene."
| Playground ER | Playground er IKKE |
|---|---|
| Visuell intake-wizard for arkitekturbeslutninger | Kodegenerator eller prosjekt-scaffolding |
| Kapabilitetskatalog med intelligent filtrering | Statisk dokumentasjon eller lesestoff |
| Command-pipeline-generator for /architect-kommandoer | Erstatning for Claude — den FEEDER Claude |
| Selvbetjent for alle nivaer (nybegynner til ekspert) | Kun for tekniske arkitekter |
---
## Pipeline: 5 steg
### Steg 1: INTAKE — "Hvem er du og hva trenger du?"
- Organisasjonstype, sektor, storrelse (dropdown/cards)
- Eksisterende lisensportefolje (checkboxes: E3, E5, Copilot, Azure, Power)
- Compliance-krav (Schrems II, DPIA, AI Act, NSM)
- Dataresidens (Norway East, EU, Global)
- Problemstilling (velg scenario eller skriv fritekst)
- Brukerantall og estimert volum
- Tidsramme for prosjekt
### Steg 2: EXPLORE — "Hvilke kapabiliteter matcher?"
- Filtrert kapabilitetskatalog (grocery store)
- Items som ikke matcher intake-constraints er graaet ut
- Scenario-valg pre-fyller handlekurven med begrunnelser
- Ekspertmodus: full browsing pa tvers av aisles
### Steg 3: CONFIGURE — "Juster arkitekturen"
- Handlekurv med valgte kapabiliteter
- Juster parametere: brukerantall, volum, budsjetttak
- Live kostnadsestimat
- Compliance-sjekk: gront/gult/rodt lys per krav
### Steg 4: REVIEW — "Her er arkitekturen din"
- Arkitekturoversikt
- Kostnadsestimat (P10/P50/P90)
- Compliance traffic lights
- Risikoflagg og anbefalinger
### Steg 5: EXPORT — "Her er hva du skal gjore videre"
- A: Strukturert prompt (for Claude)
- B: Command pipeline med pre-fylte argumenter
- C: Arkitektur-brief (Markdown)
- D: JSON Decision Record
---
## UX: Tre brukernivaer
| Niva | Navn | Flyt | Klikk til output |
|---|---|---|---|
| Nybegynner | "Guide meg" | Wizard: intake -> auto-fill -> review -> export | 5-6 klikk |
| Mellom | "La meg utforske" | Intake -> browse aisles -> manual selection -> review -> export | 8-10 klikk |
| Ekspert | "Jeg vet hva jeg vil" | Hopp til browse -> manual selection -> export | 3-4 klikk |
---
## Data Model Extensions (vs v1)
| Ny dimensjon | Kilde | Pavirker |
|---|---|---|
| `skill_req` per item | citizen/pro/devops | UX-filtering, anbefaling |
| `setup_days` per item | Estimert dager | POC-planlegging |
| `user_rec` per item | Anbefalingstekst | Brukerantall-veiledning |
| Brukerantall-input | Intake-felt | `/architect:cost` pre-fill |
| Volum/dag-input | Intake-felt | `/architect:cost` pre-fill |
| Tidsramme | Intake-felt | `/architect:poc` pre-fill |
| Plattform-anbefaling per scenario | COMMAND_PIPELINES | `/architect:compare` pre-fill |
| Command pipeline per scenario | COMMAND_PIPELINES | Export steg 5B |
---
## Command Pipeline Mapping
8 av 17 `/architect:*`-kommandoer kan pre-fylles:
1. `/architect:utredning` — scenario + org + lisenser + compliance + kapabiliteter
2. `/architect:compare` — topp 2 plattformer basert pa valg
3. `/architect:security` — plattform + compliance-krav
4. `/architect:cost` — plattform + brukere + volum
5. `/architect:dpia` — scenario + persondata (kun nar relevant)
6. `/architect:diagram` — arkitekturtype + scenario
7. `/architect:summary` — genereres fra foregaende output
8. `/architect:adr` — genereres fra foregaende output
---
## Verifikasjon
1. Apne HTML i browser — alt fungerer offline
2. Nybegynner-flyt: "Guide meg" -> statlig etat -> E5 + Azure -> RAG-chatbot -> review -> kopier pipeline
3. Ekspert-flyt: Hopp til Browse -> velg 5 items -> export JSON -> verifiser valid JSON
4. Alle 4 output-formater produserer korrekt output
5. Command pipeline har riktige pre-fylte argumenter