ktg-plugin-marketplace/plugins/ms-ai-architect/CHANGELOG.md
Kjell Tore Guttormsen 1d8c2aa9ce docs(ms-ai-architect): add v1.11.0 sections to README + CHANGELOG
- README.md: new "v1.11.0 — Design-system 100%-adoption" section under
  Playground (v3), parallel to existing v1.10.0 Foundation refactor
  section. Documents hoisted DS components, PARALLEL CSS migration,
  inline style trim, visual upgrade benchmarks, and intentional
  plugin-local survivors.
- CHANGELOG.md: new [1.11.0] entry with Added subsection, plugin-local
  survivors note, and 3-session rollout note. Tests baseline 278 PASS.

Follow-up to release commit 7ffaa82 — release was pushed without these
deeper doc sections.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-04 17:52:28 +02:00

279 lines
21 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.

# Changelog
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.11.0] - 2026-05-04
### Added — Design-system 100%-adoption + visual upgrade
The playground now consumes the shared `playground-design-system` v0.3.0 end-to-end. Plugin contract (24 commands, 12 agents, 5 skills, 2 hooks, MCP) is unchanged — playground-internal release.
- **Hoisted to shared DS (v0.3.0)** — 13 generic components moved from inline `<style>` to `shared/playground-design-system/components-tier3-supplement.css`: `.eyebrow`, `.page__*`, `.key-stats`/`.key-stat`, `.verdict-pill-lg` (5-band), `.tab-list`/`.tab`/`.tab-panel`, `.top-risks`/`.top-risk[data-severity]`, `.recommendation-card`, `.card__*` subcomponents, `.card--severity-{level}`, form-patterns (`.field-row`, `.field-label`, `.field-help`, `.multi-select`, `.checkbox-row`, `.required-mark`), `.stack-lg/-md/-sm`, `.pyramide-tier-detail`, `.scenario-card-grid`/`.scenario-card[data-status="winner"]`, `.app-shell` variants. 567 new lines, 107 new selectors. Re-synced to vendored DS via `scripts/sync-design-system.mjs ms-ai-architect`.
- **PARALLEL CSS migration** — all 6 plugin-local naming groups renamed to DS conventions: `.topbar* → .app-header*`, `.residual-pair* → .pair-before-after*`, `.command-card* / .catalog-card* → .card + .card__*`, `.screen-tabs/-tab/screen → .tab-list/.tab/.tab-panel`, `.pyramide-desc* → .pyramide-tier-detail*`. Includes markup restructure for tab-component (`data-active="..."``[hidden]`-attr) and pair-before-after (`data-severity` → BEM modifier). ~50 markup occurrences updated.
- **Inline `<style>` trim** — block reduced 202 → 127 lines (~37%). `renderPageShell` + `renderKeyStatsGrid` refactored to DS markup (`.page__header-main` + `.page__header-aside` + `h1.page__title`; `.key-stat--{level}` BEM modifier).
- **Visual upgrade (benchmarked against showcase)** — AI Act pyramid width fix (min-width 480px, font-size-md, responsive @media), severity-coded left-border on report-cards in project surface based on `parsed.verdict`, app-header restructure (brand + breadcrumb + spacer + actions), eyebrow-label "PROSJEKTER · X av X" on home, `.stack-lg` vertical rhythm on home/project/catalog body.
- **Demo state rename** — `Acme AS``Acme Kommune` and `Demosystem``Acme Kunde-chatbot` consistently across all 17 fixtures (39 Acme occurrences). `build-demo-state.mjs` updated: `organization.name` = "Acme Kommune", `projects[0].id` = "acme-kunde-chatbot", `projects[0].name` = "Acme: Kunde-chatbot".
- **`playground/screenshots/v1.11.0/`** — 24 regenerated PNGs (~27 MB total) reflecting the visual upgrade. v1.10.0 set preserved as historical reference.
- **`tests/screenshot/run.mjs`** — `OUT_DIR` + comments bumped to v1.11.0.
### Plugin-local survivors (intentional)
Components kept inline because they are semantically distinct from DS counterparts:
- `.verdict-pill` (domain go/block semantics, distinct from DS `.verdict-pill-lg` severity bands)
- `.scenario-card[data-status="met/partial/missing"]` (DS only ships "winner")
- `.read-more-block` + `.suppressed-panel` (native `<details>`; DS uses JS-toggled `aria-expanded`)
- Surface-specific layouts: `.onboarding-*`, `.home-*`, `.project-*`, `.modal*`, `.command-form*`, `.catalog-cards`-container
### Notes on 1.11.0
- 3-session rollout (commits `40631c0` Fase 1-3 + `31aed40` Fase 4-6 + `7ffaa82` Fase 7-9). Session 1+2 committed with `[skip-docs]` because user-facing docs are bundled with the release commit.
- Tests: 201 static + 70 parser-fixture + 7 migration = 278 PASS playground-suite, 0 FAIL. Pre-existing `tests/test-ros-output.sh` fixture-missing failure is unchanged.
- DS bump is purely additive — other vendor consumers (okr, llm-security, ultraplan-local, config-audit) do not need to re-sync to remain green.
---
## [1.10.1] - 2026-05-04
### Added — Demo system + screenshot gallery
The playground now ships with a one-click demo and committed screenshots so forkers can see what the plugin produces without running anything.
- **`<script type="application/json" id="demo-state-v1">` inline block** — built by `scripts/build-demo-state.mjs` from `playground/test-fixtures/*.md`. Contains a complete state: 18 onboarding fields prefilled for "Demo kommune", one demo project with all 17 reports as `raw_markdown`. ~37 KB inline, file://-safe (no fetch).
- **"Last inn demo-data" button** on the onboarding action-bar. Clicking it replaces all state with the demo and navigates to the project surface.
- **`raw_markdown` persistence** — `handlePasteImport` now writes `markdown` to `project.reports[id].raw_markdown` (with equal-value guard to prevent render loops). Survives page reload.
- **`rehydratePasteImports()`** — on project surface mount, fills textareas from `raw_markdown` and re-renders visualizations. Hooked via `queueMicrotask` after `innerHTML` commit.
- **`tests/screenshot/` tooling** — standalone Playwright runner (its own `package.json`, gitignored `node_modules`). Captures 24 PNGs per release (12 surfaces × 2 themes) at `deviceScaleFactor: 2` retina, `fullPage: true`.
- **`playground/screenshots/v1.10.0/`** — 24 committed screenshots (~28 MB total) covering onboarding, home, catalog, project surface (rapporter × 5 tabs, oversikt, kontekst, eksport).
### Notes on 1.10.1
- v1.10.0 was tagged earlier on 2026-05-04 with the foundation refactor. v1.10.1 ships the demo + screenshots without changing any v1.10.0 behavior — purely additive: one inline JSON block, one button, two new functions, one tooling directory.
- Plugin contract (24 commands, 12 agents, 5 skills, 2 hooks, MCP) remains unchanged.
- Tests: 215 plugin-validation + 201 + 70 + 7 = 493 PASS. Pre-existing `tests/test-ros-output.sh` fixture-missing failure is unchanged.
---
## [1.10.0] - 2026-05-04
### Added — Playground v3 felles grunnskjelett (foundation refactor)
All 17 report renderers now share a unified visual signature through `renderPageShell()`. The plugin contract (24 commands, 12 agents, 5 skills, 2 hooks, MCP) is unchanged — this release is playground-internal.
- **Foundation helpers:** `renderPageShell()`, `renderVerdictPill()`, `renderKeyStatsGrid()`, `inferVerdict()`, `inferKeyStats()`, `KEY_STATS_CONFIG` — provide eyebrow + h1 + optional 5-band verdict-pill + optional 3-5 key-stats-grid that every renderer wraps around its archetype-specific body.
- **Schema v1→v2 migration:** Eager `MIGRATIONS` pipeline at cold-load and import time, idempotent via `dataVersion=2` guard. Backfills `verdict` and `keyStats` on existing reports without disrupting user state. `tests/test-playground-migrations.sh` (7 PASS) validates idempotency.
- **Tier 3 supplement components integrated:** kanban (conformity, review), mat-ladder (migrate, poc), screen-tabs (utredning, project surface), scenario-card-grid (license, compare), residual-pair (dpia, ros), top-risks (ros), recommendation-card (security, ros), suppressed-panel (review), critique-card (adr), read-more (utredning, summary), traffic-light (poc).
- **Parser extensions (R15 forward-compat):**
- `parsePhasedPlan``phases[].status` (planned/active/done) + `currentPhaseIndex` + `pocVerdict`
- `parseComparison``winner` field from `## Vinner: <id>`-line
- `parseMatrixRisk``_consumer` discriminator (Strategy A) for shared dpia + ros usage
- **Onboarding redesign:** Exactly 4 structured fields (select / multiSelect for sector, regulations, license, scenarios) + 14 free-text fields with placeholder hints. Improves prefill flexibility while keeping enum-driven fields where they matter.
### Added — Light theme tokens
- `[data-theme="light"]`-block in `shared/playground-design-system/tokens.css` (re-synced to `playground/vendor/`) with verbatim Aksel values. Both themes meet WCAG 2.2 AA contrast.
- Theme-bootstrap-script in `<head>` reads saved `localStorage('ms-ai-architect-theme')` before stylesheets parse — no flash-of-wrong-theme.
### Added — v1.10.0 fixtures and validation
- `tests/test-playground-migrations.sh` — new 7 PASS suite for v1→v2 idempotency.
- `tests/fixtures/playground/state-v1-snapshot.json` — pre-migration state fixture.
- `tests/test-playground-v3.sh` extended to 201 PASS — new asserts on per-renderer `renderPageShell` usage, Tier 3-bruk (kanban / mat-ladder / screen-tabs / scenario-cards), onboarding field-distribution (4 strukturerte / 14 fritekst), `_consumer`-strategi A.
- Regenerated fixtures: `migrate.md`, `poc.md` (per-phase Status + POC-Verdict), `compare.md` (`## Vinner:`-line).
- `playground/A11Y-RAPPORT.md` — populated with code-based static assessment of all 4 surfaces and 17 renderers (was: skeleton). Browser-axe-core run still pending per `MANUAL-CHECKLIST.md` section 10.
### Changed
- `playground/ms-ai-architect-playground.html` — all 17 renderers wrap output via `renderPageShell()`. Inline CSS additions (e.g. `.pyramide-desc`, `.scenario-card-grid`, `.residual-pair`, `.read-more-block`, `.top-risks`, `.recommendation-card`, `.suppressed-panel`) are flagged as v1.11.0 candidates for hoisting to `shared/playground-design-system/components-tier3-supplement.css`.
- Plugin README — refreshed v1.10.0 section with foundation-helpers, Tier 3 adoption list, parser extensions, schema migration, theme-tokens.
- Plugin CLAUDE.md — Playground (v3) section now reflects v1.10.0 architecture, validation counts (201 + 70 + 7), and inline-CSS hoisting candidates.
- Marketplace root README — bumped ms-ai-architect to v1.10.0 with felles grunnskjelett summary.
### Notes
- **Plugin API surface unchanged.** All 24 commands, 12 agents, 5 skills (387 reference docs), 2 hooks, and MCP server configuration remain identical to v1.9.0. v1.10.0 is a minor bump per SemVer because the playground state schema change is auto-migrated and backward-compatible.
- **6-session implementation** per `.claude/projects/2026-05-03-ms-ai-architect-v1-10-playground/plan.md`:
- Session 1: Foundation (theme tokens, helpers, MIGRATIONS, v1-snapshot fixture)
- Session 2: Onboarding redesign + surface page-headers + screen-tabs
- Session 3: Sub-batch A renderers (regulatory 6) — aiact-pyramid, requirements, transparency, frimpact, conformity, dpia
- Session 4: Sub-batch B renderers (security 3) — security, ros, review (REFERENCE STANDARD)
- Session 5: Sub-batch C renderers (econ + dokumentasjon 8) — cost, license, migrate, adr, summary, poc, utredning, compare
- Session 6: Visual QA + A11Y-rapport + dokumentasjon-overhaul + version bump (this commit)
- **Pre-existing test pollution:** `tests/run-e2e.sh` references `tests/test-ros-output.sh` which expects a fixture that has never existed in git (`tests/fixtures/ros-analysis/fixture.md`). Reports as 1 suite failure but is unrelated to v1.10.0 — predates this work and is unchanged here.
- **Session 4 commit `645f016` (B.1 bundling):** That commit message was bundled with ultraplan-local work due to hook timing — historical only, not relevant to plugin behavior.
---
## [1.9.0] - 2026-05-03
### Added — Playground v3 (full architecture rewrite)
The playground at `playground/ms-ai-architect-playground.html` was rebuilt from scratch as a multi-surface decision-builder + report viewer (3867 lines, single-file). It replaces the v2 5-step pipeline with a project-aware app that persists state across sessions and visualizes parsed reports inline.
- **4 surfaces:**
- Onboarding — 5 grouped expansion sections (organization, technology, security, architecture, business) with 18 fields covering organization profile, tech stack, compliance, architecture preferences, and business references. Drives prefill across all 24 commands.
- Home — 3 entry tracks (Onboard / New project / Catalog) plus project list with completion-meter per project.
- Catalog — 24 commands grouped in 5 expansion categories (regulatory, security, economy, documentation, tool) with full-text search, filtered counts, and direct form-launch.
- Project — per-project tabs (one per command category), command form prefilled from shared onboarding state, paste-back markdown import that parses and visualizes reports inline.
- **Persistent state:** IndexedDB primary store with localStorage fallback. Schema-versioned (`STATE_KEY = 'ms-ai-architect-state-v1'`) with eager `MIGRATIONS` pipeline that runs at cold-load and import time. Throttled writer prevents excessive disk traffic.
- **17 inline report renderers** routed via canonical archetype-routing table:
- Regulatory (6): classify pyramid, requirements list, transparency text, FRIA, conformity checklist, DPIA matrix-risk-6×5
- Security (3): security 5×5 matrix, ROS 5×5 matrix with 7-dimension threat library, review findings
- Economy (2): cost distribution P10/P50/P90, license capability matrix
- Documentation (6): migrate phased plan, ADR, summary markdown, POC verdict, utredning, compare
- **14 markdown parsers** with the same archetype keys, exposed as `window.__PARSERS`. All parsers return `{ok, data}` or `{ok, errors[]}` — never throw.
- **Light/dark theme toggle** in the topbar, persisted in `localStorage('ms-ai-architect-theme')`. FOUC-safe: a small bootstrap script in `<head>` reads the saved value before stylesheets parse.
- **Export/import** as JSON Decision Record envelope (Blob + FileReader). Schema-version-aware on import; downgrades trigger MIGRATIONS automatically.
- **Vendored design-system** at `playground/vendor/playground-design-system/`, kept in sync via `scripts/sync-design-system.mjs ms-ai-architect` from the marketplace root. SHA-256 MANIFEST detects local drift.
- **24 ACTIONS** registered through a single delegated click handler on `document` — keeps event-handler footprint minimal.
### Added — Playground validation
- `tests/test-playground-v3.sh` — bash 3.2-compatible static structure tests (170 PASS lines): vendored CSS link order, file://-safety, surfaces, 24 commands, 14 parsers, 17 renderers, design-system class usage, exposed globals, 23 ACTIONS handlers.
- `tests/test-playground-parsers.sh` — 70 PASS lines: validates 17 fixtures × parser routing keys + handlePasteImport wiring.
- `tests/run-e2e.sh --playground` — new flag dispatching both suites; included in `--all`.
- `playground/test-fixtures/` — 17 synthetic markdown fixtures (one per report-producing command) covering all canonical parser archetypes. Generic example data only.
- `playground/A11Y-RAPPORT.md` — accessibility report skeleton with WCAG 2.2 AA test grid for both themes.
- `playground/MANUAL-CHECKLIST.md` — 10-section manual QA checklist (round-trip, schema migration, project CRUD, command form prefill, paste-import per report type, parse errors, export/import cycle, theme toggle, file://-standalone, axe-core a11y per surface) with concrete DevTools-console assertions.
### Changed
- `playground/ms-ai-architect-playground.html` — replaced (v2 1990 lines → v3 3867 lines). Same canonical filename, so external links continue to resolve.
- Plugin README — new "## Playground (v3)" section documenting the 4-surface architecture and validation matrix.
- Plugin CLAUDE.md — replaced v2 5-step pipeline section with v3 architecture overview. `docs/playground-v2-spec.md` retained as historical reference but no longer the contract; v3 spec lives at `.claude/projects/2026-05-03-playground-v3-architecture/`.
- Marketplace root README — playground listing for ms-ai-architect updated to describe v3 architecture, persistence model, 17 renderers, theme toggle, and 240-test validation.
### Notes
- **Plugin API surface unchanged.** All 24 commands, 12 agents, 5 skills (387 reference docs), 2 hooks, and MCP server configuration remain identical to v1.8.0. Playground v3 is an additive, optional UI surface — users invoking `/architect:*` directly see no behavioral difference.
- v1.9.0 is a minor bump per SemVer because the plugin contract (commands/agents/skills/hooks/MCP) is backward-compatible. The playground's local IndexedDB state schema would only affect users who had the v2 playground running; existing state is auto-migrated by the eager MIGRATIONS pipeline.
---
## [1.8.0] - 2026-04-09
### Added
- Sitemap-based KB change detection system (`scripts/kb-update/`)
- `build-registry.mjs` — extracts 1342 unique URLs from 387 reference files
- `poll-sitemaps.mjs` — streams 18 Microsoft Learn sitemaps for `<lastmod>` changes
- `report-changes.mjs` — prioritized change report (critical/high/medium/low)
- `discover-new-urls.mjs` — finds relevant new MS Learn pages not yet covered
- `run-weekly-update.mjs` — weekly orchestrator with `--force`, `--discover`, `--dry-run`
- Shared libraries: `url-normalize.mjs`, `sitemap-stream.mjs`, `registry-io.mjs` (zero npm deps)
- Background poll trigger in session-start hook (auto-runs if >7 days since last check)
### Changed
- Session-start hook reads sitemap-based change report instead of broken mtime staleness check
- `generate-skills --update` reads `change-report.json` for targeted MCP updates with `changed_urls`
- KB maintenance section in README updated with automated freshness and auto-update info
### Deprecated
- `scripts/kb-staleness-check.sh` (mtime-based, unreliable after git clone — kept for backwards compat)
---
## [1.7.0] - 2026-04-07
### Changed
- Open-source release in ktg-plugin-marketplace
- Moved skill-gen tooling from `orchestrator/` to `scripts/skill-gen/`
- Fixed broken DPIA knowledge base reference path (norwegian-public-sector-governance/ → responsible-ai/)
- Removed orphaned `pre-edit-secrets` hook (secrets scanning consolidated to llm-security plugin)
- Updated all badge counts (version 1.7.0, 387 ref docs, 12 agents)
- Fixed agent model column in CLAUDE.md (sonnet → opus, matching actual frontmatter)
- Added missing `ai-act-assessor` agent to README agent table
- Added Bash scope guardrail to `commands/export.md`
- Added supply chain warning for remote install scripts in knowledge base
### Removed
- Internal orchestrator tooling (Linear integration, hardcoded issue IDs)
- Client-specific utredning examples (`docs/utredning/`)
- Generated test report artifacts (`e2e-test-report.md`, `.pdf`)
---
## [1.6.0] - 2026-02-19
### Added
- ROS analysis command and agent (`/architect:ros`)
- 7-dimension risk assessment with NS 5814/ISO 31000 methodology
- AI threat library (49 threats across 7 categories)
- Sector-specific checklists (health, transport, finance, justice, education)
- MAESTRO multi-agent security model integration
- 7 new KB reference documents (3,131 lines)
- E2E test suite for ROS (24 checks)
- `summary-agent` integration for ROS output
---
## [1.5.0] - 2026-02-13
### Added
- E2E regression tests (43 checks across 3 suites: security, cost, summary)
- Auto onboarding detection at session start
- Systematic KB update process with staleness policy
- `kb-staleness-check.sh` with `--json` output mode
---
## [1.4.0] - 2026-02-13
### Added
- Onboarding agent (`/architect:onboard`) — 5-phase structured interview
- README rewrite to English
---
## [1.3.0] - 2026-02-13
### Changed
- 5-skill migration: 1 monolithic skill → 5 domain-specific skills (ms-ai-advisor, ms-ai-engineering, ms-ai-governance, ms-ai-security, ms-ai-infrastructure) with 364 reference documents
- Fixed 13 broken KB references
- Fixed UTF-8 encoding issues across reference files
---
## [1.2.0] - 2026-02-13
### Added
- Runtime hooks: secrets detection (`pre-edit-secrets.mjs`), session context, stop reminders
- Test infrastructure: hook tests, KB integrity tests, plugin discovery tests
- `/architect:export` command for PDF export
---
## [1.1.0] - 2026-02-13
### Added
- `summary-agent`: executive summary and decision memo synthesis
- `dpia-agent`: DPIA/PVK for AI systems
- Utredning orchestrator v2
- Production readiness (21 bug fixes)
---
## [1.0.0] - 2026-02-12
### Added
- Initial release: 20 knowledge bases, 8 agents, `architecture-review-agent`
- Cosmo Skyberg architect persona with 7-phase advisory methodology
- MCP integration with Microsoft Learn for live documentation verification
- Core commands: `/architect`, `/architect:research`, `/architect:security`, `/architect:cost`, `/architect:adr`, `/architect:diagram`, `/architect:review`, `/architect:compare`
---
## [0.4.0] - 2026-02-07
### Note
First formal version. Previously unversioned.
### What existed
- 145+ reference documents across 14 categories
- 6 specialized agents: research, security assessment, cost estimation, ADR writer, license mapper, diagram generation
- 13 commands: research, compare, cost, license, security, poc, adr, migrate, utredning, generate-skills, diagram, setup, help
- Cosmo Skyberg architect persona
- MCP integration with Microsoft Learn
- Session logging with ADR reminders