diff --git a/CLAUDE.md b/CLAUDE.md index 149f778..ba7185c 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -18,7 +18,7 @@ plugins/ shared/ playground-design-system/ v0.1 — Aksel/Digdir-aligned CSS design system + JSON schemas for plugin Playgrounds (consumed by ms-ai-architect, okr, llm-security, ultraplan-local, config-audit) - playground-examples/ — Reference scenarios (ROS-Lier, OKR-Bærum, security-Vegvesen) + showcase landing + playground-examples/ — Reference scenarios (ROS-Lier, OKR-Bærum, security-Direktorat) + showcase landing ``` Hvert plugin er selvstendig med egen CLAUDE.md, README, hooks, agents og commands. `shared/` inneholder marketplace-nivå infrastruktur som flere plugins bygger på. diff --git a/README.md b/README.md index 6a2482d..92b510d 100644 --- a/README.md +++ b/README.md @@ -251,7 +251,7 @@ Targets five plugins: `ms-ai-architect`, `okr`, `llm-security`, `ultraplan-local - **Tier 1 components** — radar/spider, 5×5 matrix-heatmap (bottom-left origin, ROS/DPIA), findings-browser, critique-card, wizard/stepper, live-meter with antipattern lints - **Tier 2 components** — decision-tree (AI Act 4-step), traffic-lights, diff-review, treemap (token hotspots), distribution P10/P50/P90, command-pipeline output, AI Act 4-color pyramide, pipeline-cockpit, verdict-pill + 5-band risk-meter, codepoint-reveal (Unicode steganography), small-multiples grid (16-category posture without overcrowded radar), OWASP badges (LLM/ASI/AST/MCP) - **JSON schemas** — `finding.schema.json`, `okr-set.schema.json`, `ros-threat.schema.json` for cross-plugin data interchange -- **Reference scenarios** — Lier kommune ROS-rapport (ms-ai-architect), Bærum kommune T2 OKR live-writer, Statens vegvesen ToxicSkills findings review (85 funn, BLOCK) +- **Reference scenarios** — Lier kommune ROS-rapport (ms-ai-architect), Bærum kommune T2 OKR live-writer, Direktoratet for digital tjenesteutvikling ToxicSkills findings review (85 funn, BLOCK) → [Full documentation](shared/playground-design-system/README.md) · [Browse showcase](shared/playground-examples/index.html) diff --git a/shared/playground-design-system/README.md b/shared/playground-design-system/README.md index 3fafd12..fd404f7 100644 --- a/shared/playground-design-system/README.md +++ b/shared/playground-design-system/README.md @@ -31,7 +31,7 @@ shared/ ├── index.html # System showcase (browse all components) ├── ros-lier-kommune.html # Scenario A — ms-ai-architect ROS report ├── okr-baerum.html # Scenario B — OKR live writer - ├── security-vegvesen.html # Scenario C — llm-security findings review + ├── security-direktorat.html # Scenario C — llm-security findings review ├── templates.html # Skeleton + print-template demos ├── ros-app.js # Scenario A interactivity └── ros-data.js # Scenario A mock data diff --git a/shared/playground-design-system/schemas/finding.schema.json b/shared/playground-design-system/schemas/finding.schema.json index 5e72dbe..74605e2 100644 --- a/shared/playground-design-system/schemas/finding.schema.json +++ b/shared/playground-design-system/schemas/finding.schema.json @@ -8,7 +8,7 @@ "properties": { "id": { "type": "string", - "description": "Stabil ID, f.eks. SVV-2026-118-F-001", + "description": "Stabil ID, f.eks. DDT-2026-118-F-001", "pattern": "^[A-Z0-9-]{4,}$" }, "title": { "type": "string", "minLength": 4, "maxLength": 140 }, @@ -23,7 +23,7 @@ "rules": { "type": "array", "items": { "type": "string", "pattern": "^[A-Z]{2,4}[0-9]{2}(\\.[0-9]+)?$" }, - "description": "Regler/categories truffet, f.eks. LLM01, ASI02, SVV01" + "description": "Regler/categories truffet, f.eks. LLM01, ASI02, DDT01" }, "source": { "type": "object", diff --git a/shared/playground-examples/index.html b/shared/playground-examples/index.html index c13b2a9..d532fd4 100644 --- a/shared/playground-examples/index.html +++ b/shared/playground-examples/index.html @@ -70,7 +70,7 @@ Scenario A Scenario B - Scenario C → + Scenario C → -
2npx @svv/sanitize --strip U+E0000-U+E007F
+
2npx @ddt/sanitize --strip U+E0000-U+E007F
3git commit -am "fix(security): strip tag codepoints"
diff --git a/shared/playground-examples/security-vegvesen.html b/shared/playground-examples/security-direktorat.html similarity index 95% rename from shared/playground-examples/security-vegvesen.html rename to shared/playground-examples/security-direktorat.html index 8f95714..dcaa413 100644 --- a/shared/playground-examples/security-vegvesen.html +++ b/shared/playground-examples/security-direktorat.html @@ -3,7 +3,7 @@ -llm-security findings — Statens vegvesen +llm-security findings — Direktoratet for digital tjenesteutvikling @@ -230,7 +230,7 @@ Playground / Scenarios / llm-security
- PLUGIN: llm-security/svv-v3.1 + PLUGIN: llm-security/ddt-v3.1
@@ -241,10 +241,10 @@
Sortert: alvorlighet ↓ @@ -480,7 +480,7 @@
-
SVV-2026-118 · F-001
+
DDT-2026-118 · F-001

Skjulte instruksjoner i konsulentens revisjonsbrev (Tag-prompt-injeksjon)

@@ -513,7 +513,7 @@
42 - Vi anbefaler at Statens vegvesen viderefører gjeldende + Vi anbefaler at Direktoratet for digital tjenesteutvikling viderefører gjeldende
43 @@ -555,10 +555,10 @@
Hvorfor det er kritisk her

- Konsulenten leverer et revisjonsbrev som skal mates til SVVs interne AI-assistent for å produsere et sammendrag til etatsledelsen. + Konsulenten leverer et revisjonsbrev som skal mates til DDTs interne AI-assistent for å produsere et sammendrag til etatsledelsen. Hvis sammendraget genereres uten sanering av denne typen tegn, vil ledelsen lese et resultat som er aktivt manipulert av leverandørens dokument, og som ikke samsvarer med tekst en saksbehandler ville lese ved manuell gjennomgang. - Dette er — uavhengig av intensjonen bak — en alvorlig avvik fra integritetskravet i SVVs informasjonssikkerhets­policy § 7.3. + Dette er — uavhengig av intensjonen bak — en alvorlig avvik fra integritetskravet i DDTs informasjonssikkerhets­policy § 7.3.

@@ -596,7 +596,7 @@
  • OWASP LLM01 (2025-rev.)
  • OWASP Agentic-AI ASI02
  • NSM Grunnprinsipper 2.7.4
  • -
  • SVV info-sec § 7.3
  • +
  • DDT info-sec § 7.3
  • @@ -612,13 +612,13 @@
    -
    SVV-2026-118 · F-002
    +
    DDT-2026-118 · F-002

    Personnummer eksponert i prompt-eksempel (Anneks C)

    LLM02 - SVV01 + DDT01 Kritisk
    @@ -633,7 +633,7 @@
    Anneks C · prompt-eksempel #22 treff
    -
    12"Slå opp saksgang for fnr [•••••••••••] i Autosys og oppsummer."
    +
    12"Slå opp saksgang for fnr [•••••••••••] i Saksys og oppsummer."
    13→ Modellen returnerer: 14 saker. Eldste: 2018-04-22.
    14"Sammenlign med fnr [•••••••••••]." (returner: ingen overlapp)
    @@ -672,7 +672,7 @@
    -
    SVV-2026-118 · F-003
    +
    DDT-2026-118 · F-003

    Modell-svar inneholder ekstern markdown-lenke til ukjent domene

    @@ -686,16 +686,16 @@
    Hva ble funnet -

    Tre svar fra modellen inneholder lenker formatert som markdown [oppdatert vegliste](https://vegnett-no.example/...) til et domene som ikke er på SVVs whitelist. Hvis svaret rendes i Confluence eller Sharepoint vil saksbehandleren se en klikkbar lenke som ser troverdig ut.

    +

    Tre svar fra modellen inneholder lenker formatert som markdown [oppdatert registerliste](https://ddt-data.example/...) til et domene som ikke er på DDTs whitelist. Hvis svaret rendes i Confluence eller Sharepoint vil saksbehandleren se en klikkbar lenke som ser troverdig ut.

    Domene-analyse
    Lenker funnet i 47 svar3 unike domener
    -
    1https://vegvesen.no/... ✓ whitelistet (32 forekomster)
    +
    1https://ddt.no/... ✓ whitelistet (32 forekomster)
    2https://lovdata.no/... ✓ whitelistet (8)
    -
    3https://vegnett-no.example/oppdat-2026 ⚠ ukjent · domene reg. 11. mars 2026
    +
    3https://ddt-data.example/oppdat-2026 ⚠ ukjent · domene reg. 11. mars 2026
    @@ -712,7 +712,7 @@

    Norske kontekst-oppdateringer brukt i denne skanningen

    -

    SVV vedlikeholder regelsettet selv. Her er det som ble lagt til siden forrige skanning.

    +

    DDT vedlikeholder regelsettet selv. Her er det som ble lagt til siden forrige skanning.

    v3.1.0 · 02. mai
    @@ -720,7 +720,7 @@
    02. mai
    - SVV01-pii-norsk: lagt til detektor for D-nummer (gyldig MOD-11) + DDT01-pii-norsk: lagt til detektor for D-nummer (gyldig MOD-11) avd. Personvern · 14 testtilfeller
    + ny regel @@ -729,14 +729,14 @@ 28. apr
    ASI02-unicode-steg: utvidet tag-blokk med U+E0080–U+E00FF (rapportert av Atea sikkerhets­fora) - SVV-CERT · ekstern kilde + DDT-CERT · ekstern kilde
    ↑ utvidet
    19. apr
    - SVV02-anbuds­integritet: ny terskel for sammenlign-prompts som ber modellen rangere leverandører + DDT02-anbuds­integritet: ny terskel for sammenlign-prompts som ber modellen rangere leverandører avd. Anskaffelser · krav SAK-2026-04
    + ny regel @@ -757,7 +757,7 @@

    Tiltaksplan — sortert på TTF (tid til løsning)

    -

    Plan generert automatisk basert på SVVs eskalasjonsmatrise. Eier kan endres etter signoff.

    +

    Plan generert automatisk basert på DDTs eskalasjonsmatrise. Eier kan endres etter signoff.

    @@ -765,19 +765,19 @@
    F-003 Whitelist-validering av lenker i modellsvar — slå på - M. Rein + K. Nordmann 30 min
    F-001 Pre-prosessor for U+E0000-blokken — installere på AI-gateway - SVV-Plattform + DDT-Plattform 2 t
    F-002 Tilbakekalle revisjonsbrev v3, be om sanert versjon - M. Rein + Innkjøp + K. Nordmann + Innkjøp 1 d
    @@ -803,7 +803,7 @@
    - Plugin: llm-security/svv-v3.1 · regelsett: 84 regler aktive + Plugin: llm-security/ddt-v3.1 · regelsett: 84 regler aktive Skann-ID: 4422 · sluttid 09:14:22 · varighet 8.4 s
    diff --git a/shared/playground-examples/templates.html b/shared/playground-examples/templates.html index a2fff14..a7e66ed 100644 --- a/shared/playground-examples/templates.html +++ b/shared/playground-examples/templates.html @@ -232,7 +232,7 @@

    Single-report

    Én rapport, fire seksjoner: header med metadata + verdict-pill, hovedinnhold, sidefelt, signatur. Bygd for projector-bruk og PDF-eksport.

    - scenarios/security-vegvesen.html + scenarios/security-direktorat.html
    @@ -273,7 +273,7 @@

    Findings-review

    Posture-grid + filter-bar + finding-kort + tiltaksplan. Strukturen i Scenario C i konsentrert form.

    - scenarios/security-vegvesen.html + scenarios/security-direktorat.html