From 9601c6a93bb84f0ace3457a91fb9c543fadc2b86 Mon Sep 17 00:00:00 2001 From: Kjell Tore Guttormsen Date: Sat, 16 May 2026 20:58:51 +0200 Subject: [PATCH] =?UTF-8?q?feat(ms-ai-architect):=20v1.15.0=20=E2=80=94=20?= =?UTF-8?q?playground=20v3=20project-view=20integration?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Erstatter v2 project-surface (screen-tabs + category-tabs + per-command paste-cards) med v3 renderProjectView (sidebar med 17 artifacts + main-area + import-modal overlay). renderActive() ruter project-surface til renderProjectSurfaceV3() som wrapper renderProjectView + topbar + app-shell. V2-surface helt fjernet: - renderProjectSurface (152 linjer) - renderCommandSubCard (87 linjer) - rehydratePasteImports (15 linjer) - ACTIONS['project-screen'], currentProjectScreen - 5 v2-CSS-klasser: .project-tabs, .project-tab*, .sub-zone, .paste-import-row, .project-header__*, .command-cards Zombie-handlers beholdt for test-back-compat: currentProjectTab, ACTIONS['project-tab'], ACTIONS['parse'], handlePasteImport, window.__handlePasteImport. Unreachable fra v3 DOM men nødvendige for test-playground-v3.sh + test-playground-parsers.sh. 2 fingerprint-gap lukket: - requirements.headers: utvidet med "EU AI Act — Krav" pattern - license.headers: utvidet med "Lisens-kapabilitetsmatrise" pattern - KNOWN_GAP_FIXTURES = {} i test-playground-fingerprints.sh migrateDataVersion utvidet med parserFor (3. arg): - Demo-state med kun raw_markdown auto-parses til project.artifacts[cid] - defaultParserFor(cmdId) resolverer PARSERS[archetypeFor(cmdId)] - 3 bootstrap-callsites oppdatert (cold-load, import, load-demo) Ship-QA bugfixes funnet via browser-dogfood: - components-tier4-project-view.css lagt til i -kjeden (var ikke loaded -> modal-overlay og two-column layout virket ikke) - renderImportModal setter data-open="true" (DS-kontrakt for display: flex) Bundler også sesjon 2-4 deliverables som ikke ble committed tidligere: - shared/playground-design-system v0.6.0 (Tier 4 project-view CSS + 6 tokens) - ms-ai-architect/playground/vendor/ re-sync til DS v0.6.0 - tests/test-playground-fingerprints.sh (sesjon 4 NY - 32 PASS) - tests/test-playground-projectview.sh (sesjon 4 NY - 30 PASS) - tests/test-playground-actions.sh (sesjon 4 NY - 19 PASS) - tests/test-playground-migrations.sh utvidet (7 -> 16 PASS) - tests/run-e2e.sh wirer alle 6 playground-suiter Stats: - bash tests/run-e2e.sh --playground: 386 PASS, 0 FAIL, 2 WARN (pre-eks) - bash tests/run-e2e.sh (full): All E2E suites passed - bash tests/validate-plugin.sh: 219 PASS Screenshots regenerert til playground/screenshots/v1.15.0/ (24 PNG-er, 12 surfaces x 2 tema). Nye v3-surfaces: project-overview, project-artifact-*, project-import-modal (viewport-only), project-search. Docs oppdatert (3 nivåer): README.md (badge + version history), CHANGELOG.md, CLAUDE.md (playground-seksjon + valideringstabell), rot-README.md + rot-CLAUDE.md (marketplace-landingen + plugin-index). .gitignore: ny pattern *.local.html + *.local.json for sesjon-state-filer. Co-Authored-By: Claude Opus 4.7 --- .claude-plugin/plugin.json | 2 +- .gitignore | 2 + CHANGELOG.md | 61 + CLAUDE.md | 25 +- README.md | 3 +- playground/ms-ai-architect-playground.html | 1326 +++++++++++++---- .../v1.15.0/01-onboarding-empty-dark.png | Bin 0 -> 734866 bytes .../v1.15.0/01-onboarding-empty-light.png | Bin 0 -> 251047 bytes .../v1.15.0/02-project-overview-dark.png | Bin 0 -> 634826 bytes .../v1.15.0/02-project-overview-light.png | Bin 0 -> 631086 bytes .../03-project-artifact-classify-dark.png | Bin 0 -> 899955 bytes .../03-project-artifact-classify-light.png | Bin 0 -> 893075 bytes .../04-project-artifact-security-dark.png | Bin 0 -> 982840 bytes .../04-project-artifact-security-light.png | Bin 0 -> 976542 bytes .../v1.15.0/05-project-artifact-ros-dark.png | Bin 0 -> 883370 bytes .../v1.15.0/05-project-artifact-ros-light.png | Bin 0 -> 877439 bytes .../v1.15.0/06-project-artifact-cost-dark.png | Bin 0 -> 761708 bytes .../06-project-artifact-cost-light.png | Bin 0 -> 756280 bytes .../07-project-artifact-summary-dark.png | Bin 0 -> 835449 bytes .../07-project-artifact-summary-light.png | Bin 0 -> 828184 bytes .../v1.15.0/08-project-import-modal-dark.png | Bin 0 -> 271539 bytes .../v1.15.0/08-project-import-modal-light.png | Bin 0 -> 267928 bytes .../v1.15.0/09-project-search-dark.png | Bin 0 -> 608708 bytes .../v1.15.0/09-project-search-light.png | Bin 0 -> 602636 bytes .../screenshots/v1.15.0/10-home-dark.png | Bin 0 -> 221526 bytes .../screenshots/v1.15.0/10-home-light.png | Bin 0 -> 219143 bytes .../screenshots/v1.15.0/11-catalog-dark.png | Bin 0 -> 425099 bytes .../screenshots/v1.15.0/11-catalog-light.png | Bin 0 -> 421652 bytes .../v1.15.0/12-onboarding-prefilled-dark.png | Bin 0 -> 253195 bytes .../v1.15.0/12-onboarding-prefilled-light.png | Bin 0 -> 251047 bytes .../playground-design-system/CHANGELOG.md | 60 + .../playground-design-system/MANIFEST.json | 13 +- .../vendor/playground-design-system/base.css | 1 + .../components-tier4-project-view.css | 666 +++++++++ .../playground-design-system/tokens.css | 11 + tests/run-e2e.sh | 4 + tests/screenshot/run.mjs | 129 +- tests/test-playground-actions.sh | 248 +++ tests/test-playground-fingerprints.sh | 218 +++ tests/test-playground-migrations.sh | 274 +++- tests/test-playground-projectview.sh | 323 ++++ tests/test-playground-v3.sh | 19 +- 42 files changed, 2980 insertions(+), 405 deletions(-) create mode 100644 playground/screenshots/v1.15.0/01-onboarding-empty-dark.png create mode 100644 playground/screenshots/v1.15.0/01-onboarding-empty-light.png create mode 100644 playground/screenshots/v1.15.0/02-project-overview-dark.png create mode 100644 playground/screenshots/v1.15.0/02-project-overview-light.png create mode 100644 playground/screenshots/v1.15.0/03-project-artifact-classify-dark.png create mode 100644 playground/screenshots/v1.15.0/03-project-artifact-classify-light.png create mode 100644 playground/screenshots/v1.15.0/04-project-artifact-security-dark.png create mode 100644 playground/screenshots/v1.15.0/04-project-artifact-security-light.png create mode 100644 playground/screenshots/v1.15.0/05-project-artifact-ros-dark.png create mode 100644 playground/screenshots/v1.15.0/05-project-artifact-ros-light.png create mode 100644 playground/screenshots/v1.15.0/06-project-artifact-cost-dark.png create mode 100644 playground/screenshots/v1.15.0/06-project-artifact-cost-light.png create mode 100644 playground/screenshots/v1.15.0/07-project-artifact-summary-dark.png create mode 100644 playground/screenshots/v1.15.0/07-project-artifact-summary-light.png create mode 100644 playground/screenshots/v1.15.0/08-project-import-modal-dark.png create mode 100644 playground/screenshots/v1.15.0/08-project-import-modal-light.png create mode 100644 playground/screenshots/v1.15.0/09-project-search-dark.png create mode 100644 playground/screenshots/v1.15.0/09-project-search-light.png create mode 100644 playground/screenshots/v1.15.0/10-home-dark.png create mode 100644 playground/screenshots/v1.15.0/10-home-light.png create mode 100644 playground/screenshots/v1.15.0/11-catalog-dark.png create mode 100644 playground/screenshots/v1.15.0/11-catalog-light.png create mode 100644 playground/screenshots/v1.15.0/12-onboarding-prefilled-dark.png create mode 100644 playground/screenshots/v1.15.0/12-onboarding-prefilled-light.png create mode 100644 playground/vendor/playground-design-system/components-tier4-project-view.css create mode 100755 tests/test-playground-actions.sh create mode 100755 tests/test-playground-fingerprints.sh create mode 100755 tests/test-playground-projectview.sh diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 1f6ffb3..b28039a 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "ms-ai-architect", - "version": "1.14.0", + "version": "1.15.0", "description": "Microsoft AI Solution Architect - structured architecture guidance for the full Microsoft AI stack", "author": { "name": "Kjell Tore Guttormsen" diff --git a/.gitignore b/.gitignore index cea12c5..b66d25a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ *.local.md +*.local.html +*.local.json .mcp.json .DS_Store .claude/ diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c3902d..9a7a19d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,67 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.15.0] - 2026-05-16 + +### Changed — playground v3 project-view integration + +V2 project-surface (screen-tabs + category-tabs + per-command paste-cards) erstattet av v3 project-view (sidebar + main + import-modal). Sluttproduktet av 5 sesjoner: V2-PROJECT-VIEW-SPEC, JS-foundation, renderProjectView/renderProjectArtifact/renderArtifactNav, testing (97 nye assertions), og nå integration + ship. + +#### Sesjon 5: integration + ship + +- `renderActive()` ruter `project`-surface til ny `renderProjectSurfaceV3()` som wrapper renderProjectView + topbar + app-shell. +- `renderProjectSurface` (152 linjer), `renderCommandSubCard` (87 linjer), `rehydratePasteImports` (15 linjer) slettet. +- `currentProjectScreen` modul-var slettet; `currentProjectTab` beholdt som zombie for `ACTIONS['project-tab']`/`ACTIONS['parse']`/`handlePasteImport` (test-back-compat). +- `ACTIONS['project-screen']` slettet. +- 5 v2-CSS-klasser slettet: `.project-tabs`, `.project-tab`, `.project-tab__count`, `.sub-zone`, `.paste-import-row`, `.project-header__*`, `.command-cards`. + +#### Fingerprint-gap lukket + +- `requirements.headers`: utvidet til `/^\s*#\s*(EU\s*AI\s*Act\s*[—-]\s*Krav|AI\s*Act-?krav|Krav per|Requirements)/im` (matcher "EU AI Act — Krav for høyrisiko provider+deployer"). +- `license.headers`: utvidet til `/^\s*#\s*(Lisens(kart|kapabilitets|-kapabilitets)?(legging|matrise)?|License\s*Mapping)/im` (matcher "Lisens-kapabilitetsmatrise"). +- `KNOWN_GAP_FIXTURES = {}` i `tests/test-playground-fingerprints.sh` (var `{ requirements: true, license: true }`). + +#### Migrasjon utvidet (v2→v3) med parserFor + +- `migrateDataVersion(state, archetypeFor, parserFor)` tredje arg lagt til. +- Hvis `reports[cid].parsed` mangler men `raw_markdown` finnes, kjøres `parserFor(cid)` automatisk. +- `defaultParserFor(cmdId)` resolverer `PARSERS[archetypeFor(cmdId)]`. +- Tre callsites oppdatert: cold-load, import-state, load-demo. + +#### Browser-fixes funnet via dogfood + +- `components-tier4-project-view.css` lagt til i ``-chain (filen var vendored, men ikke loaded → modal-overlay og two-column layout virket ikke). +- `renderImportModal` setter `data-open="true"` på `.import-modal`-div (DS-kontrakt: `display: flex` aktiveres kun ved `[data-open="true"]`). + +#### Tester + +- `bash tests/run-e2e.sh --playground` → **386 PASS**, 0 FAIL, 2 WARN (pre-eksisterende: `.cmd-pipeline` reservert; multiselect form-felt). + - v3-static: 219 PASS (var 202 — la til 17 nye renderer-routing-asserts) + - parsers: 70 PASS + - migrations: 16 PASS + - fingerprints: 32 PASS (var 30, 2 WARN → 32, 0 WARN) + - project-view: 30 PASS + - actions: 19 PASS +- `bash tests/validate-plugin.sh` → 219 PASS. + +#### Screenshots regenerert til v1.15.0/ + +24 PNG-er (12 surfaces × 2 tema, retina, fullPage der applicable). Nye surfaces: project-overview, project-artifact-{classify, security, ros, cost, summary}, project-import-modal (viewport-only), project-search. + +#### Demo-flyt verifisert i nettleser + +- "Last inn demo-data" → 17 artifacts loaded + migrasjonen v2→v3 fyller `parsed`/`verdict`/`keyStats`. +- Sidebar viser alle 17 grupperte commands med severity-badges. +- Aggregate verdict (BLOKKERT) + key stats (17/17, 5/5, 2026-05-04) i header. +- Importer/Re-importer-modal åpner som overlay med backdrop. +- Per-artifact navigasjon (klikk i sidebar) → mounter riktig renderer i main-area. + +### Notes on 1.15.0 + +- Sesjon 5 fullført i én pass — token-budsjettet (~80-100k) holdt. +- v2-mockup.local.html + V2-PROJECT-VIEW-SPEC.local.md beholdt inntil sesjon 8 ship (per scope grenser). +- Pre-eksisterende kosmetiske issues (duplisert artifact-title, "Manglende rapporter"-heading-feil) ikke fikset — utenfor scope for sesjon 5 (integration), planlagt v1.16.0. + ## [1.14.0] - 2026-05-08 ### Changed — playground root-cause refaktor (6 sesjoner) diff --git a/CLAUDE.md b/CLAUDE.md index c9b5562..bdc5cd6 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -187,12 +187,14 @@ claude --plugin ./plugins/ms-ai-architect /architect:help ``` -## Playground (v3 / v1.14.0) +## Playground (v3 / v1.15.0) -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/`. v1.10.0-utvidelser dokumentert under `.claude/projects/2026-05-03-ms-ai-architect-v1-10-playground/`. v1.11.0 leverer design-system 100%-adoption (PARALLEL-CSS-migrasjon til DS-konvensjon, inline `