fix(screenshots): regenerate screenshots from the current demo, remove older sets
tests/screenshot/run.mjs now clears PNGs a previous run left in its output directory and writes playground/screenshots/MANIFEST.json (output directory, sha256 per PNG, sha256 of the demo state rendered). One run produced the 24 PNGs in playground/screenshots/v1.15.0/ (12 surfaces x 2 themes, including the dark onboarding view removed in 1.18.1).
Removed the v1.10.0, v1.11.0, v1.14.0 and v2-mockup sets (77 PNGs) and tests/screenshot/shoot-mockup.local.mjs. Chose regenerate for the set the runner writes and delete for the rest, because the current runner cannot reproduce the older layouts, and the mockup script reads an HTML file that is not in the repository, so its output could never be regenerated from a clone.
README gallery, docs/playground.md and tests/screenshot/README.md now point at v1.15.0 and describe the 12 surfaces the runner captures. The manifest gate goes green: 4/4.
OCR (Apple Vision, local): 0 of 24 PNGs in the tree carry text from the older demo; known positives from 715950b were found (2 of 2).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
26
README.md
|
|
@ -439,22 +439,24 @@ node scripts/build-demo-state.mjs
|
|||
|
||||
### Screenshot gallery
|
||||
|
||||
Screenshots of every surface in both themes live in `playground/screenshots/v1.11.0/` (the v1.10.0 set is preserved as historical reference). They are committed so forkers see what the plugin produces without running anything:
|
||||
Screenshots of every surface in both themes live in `playground/screenshots/v1.15.0/`, taken of the current demo project. They are committed so forkers see what the plugin produces without running anything:
|
||||
|
||||
| # | File | What you see |
|
||||
|---|------|--------------|
|
||||
| 01 | `01-onboarding-empty-light.png` | Onboarding surface, empty state (the dark variant was removed in 1.18.1; regenerate to restore it) |
|
||||
| 02 | `02-project-rapporter-regulatory-{dark,light}.png` | All 6 regulatory renderers (classify pyramid, requirements, transparency, FRIA, conformity kanban, DPIA matrix) |
|
||||
| 03 | `03-project-rapporter-security-{dark,light}.png` | 6×5 + 7×5 risk matrices, radar, top-risks, residual-pair, recommendation-card, review kanban |
|
||||
| 03 | `03-project-rapporter-economy-{dark,light}.png` | Cost distribution P10/P50/P90, license capability matrix |
|
||||
| 03 | `03-project-rapporter-documentation-{dark,light}.png` | Migrate mat-ladder, ADR critique-card, summary read-more, POC traffic-light, utredning screen-tabs, compare scenario-cards |
|
||||
| 03 | `03-project-rapporter-tool-{dark,light}.png` | 7 tool commands (no report — pipeline-string builders) |
|
||||
| 04-06 | `04-project-oversikt-{dark,light}.png` etc. | Project screen-tabs (oversikt / kontekst / eksport) |
|
||||
| 07 | `07-home-{dark,light}.png` | Home with project list + 3 entry tracks |
|
||||
| 08 | `08-catalog-{dark,light}.png` | Catalog with 29 commands in 5 expansion-grupper |
|
||||
| 09 | `09-onboarding-prefilled-{dark,light}.png` | Onboarding with state from demo |
|
||||
| 01 | `01-onboarding-empty-{dark,light}.png` | Onboarding surface, empty state |
|
||||
| 02 | `02-project-overview-{dark,light}.png` | Project view: sidebar with 17 artifacts, aggregate verdict, top risks |
|
||||
| 03 | `03-project-artifact-classify-{dark,light}.png` | EU AI Act classification (risk pyramid, role, obligations) |
|
||||
| 04 | `04-project-artifact-security-{dark,light}.png` | Security assessment (6×5 matrix) |
|
||||
| 05 | `05-project-artifact-ros-{dark,light}.png` | ROS analysis (risk matrix, radar) |
|
||||
| 06 | `06-project-artifact-cost-{dark,light}.png` | Cost estimate (P10/P50/P90 in NOK) |
|
||||
| 07 | `07-project-artifact-summary-{dark,light}.png` | Technical summary and decision note |
|
||||
| 08 | `08-project-import-modal-{dark,light}.png` | Import modal (viewport only) |
|
||||
| 09 | `09-project-search-{dark,light}.png` | Sidebar search filtering artifacts |
|
||||
| 10 | `10-home-{dark,light}.png` | Home with project list |
|
||||
| 11 | `11-catalog-{dark,light}.png` | Command catalog |
|
||||
| 12 | `12-onboarding-prefilled-{dark,light}.png` | Onboarding with state from the demo |
|
||||
|
||||
Regenerate via `cd tests/screenshot && npm install && npx playwright install chromium && node run.mjs`.
|
||||
Regenerate via `cd tests/screenshot && npm install && npx playwright install chromium && node run.mjs`. The run also writes `playground/screenshots/MANIFEST.json`; `tests/kb-update/test-screenshots-manifest.test.mjs` fails when a screenshot in the tree is not from the latest run or the demo changed after it.
|
||||
|
||||
### Validation
|
||||
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ Erstatter v2 5-stegs-pipelinen med en multi-surface-app som persisterer state og
|
|||
|
||||
`scripts/build-demo-state.mjs` leser alle 17 fixture-filer fra `playground/test-fixtures/` og injiserer dem som en `<script type="application/json" id="demo-state-v1">`-blokk i playground HTML (idempotent — erstatter eksisterende blokk). "Last inn demo-data"-knappen på onboarding-overflaten kaller `ACTIONS['load-demo']` som leser blokken, erstatter alle state-grener via Proxy-mutasjon, kjører `migrateDataVersion` (v2→v3 auto-parser raw_markdown til artifacts), og navigerer til project-surface. Demo viser 17 artifacts gruppert i sidebar med severity-badges, aggregate verdict (BLOKKERT), top-risks-liste, og fungerende re-importer/slett-knapper per artifact.
|
||||
|
||||
`tests/screenshot/` inneholder en frittstående Playwright-runner med egen `package.json` (gitignored `node_modules`). `node run.mjs` produserer 24 PNG-er (12 surfaces × 2 tema) under `playground/screenshots/v1.15.0/`. v1.15.0-surfaces: onboarding-empty, project-overview, project-artifact-{classify,security,ros,cost,summary}, project-import-modal (viewport-only — modal er position:fixed overlay), project-search, home, catalog, onboarding-prefilled. v1.10.0/v1.11.0/v1.14.0 beholdt som historisk referanse. Disse committes så forkere ser pluginen uten å installere noe. Demo-org er "Acme Kommune" og demo-prosjekt er "Acme: Kunde-chatbot".
|
||||
`tests/screenshot/` inneholder en frittstående Playwright-runner med egen `package.json` (gitignored `node_modules`). `node run.mjs` produserer 24 PNG-er (12 surfaces × 2 tema) under `playground/screenshots/v1.15.0/`. v1.15.0-surfaces: onboarding-empty, project-overview, project-artifact-{classify,security,ros,cost,summary}, project-import-modal (viewport-only — modal er position:fixed overlay), project-search, home, catalog, onboarding-prefilled. Runneren sletter PNG-er en tidligere kjøring la igjen, og skriver `playground/screenshots/MANIFEST.json` (sha256 per PNG + sha256 av demo-state-blokken). `tests/kb-update/test-screenshots-manifest.test.mjs` feiler når et PNG i treet ikke er output fra siste kjøring, eller demoen er endret etter at bildene ble tatt — kjør `node run.mjs` på nytt. Eldre sett (v1.10.0, v1.11.0, v1.14.0, v2-mockup) er fjernet i 1.18.2. Disse committes så forkere ser pluginen uten å installere noe. Demo-org er "Acme Kommune" og demo-prosjekt er "Acme: Kunde-chatbot".
|
||||
|
||||
## Design-system 100%-adoption (v1.11.0 → v1.14.0)
|
||||
|
||||
|
|
|
|||
31
playground/screenshots/MANIFEST.json
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"generator": "tests/screenshot/run.mjs",
|
||||
"dir": "playground/screenshots/v1.15.0",
|
||||
"demoStateSha256": "0530e2312ece925d5e9cbd4ec0330476eee7e1d83cfb1060e53627341a7dc83a",
|
||||
"files": {
|
||||
"01-onboarding-empty-dark.png": "5ef4a9c1e264842e1ace08d590fc52ae1392c9b277a21e0aa220356d51379c1e",
|
||||
"01-onboarding-empty-light.png": "bc0ddc7c386f3eb5d7d9a25f225563d10d917ac263c6df9571a0a8f558b4ebb7",
|
||||
"02-project-overview-dark.png": "54448f7b968da367bedd5cfbd00322b8389b29a7b2e42d777cf0958225591450",
|
||||
"02-project-overview-light.png": "eca5558a9e41edcfa7daa3d17833a8762e8769f7a1ec91d475934852db781a10",
|
||||
"03-project-artifact-classify-dark.png": "7eef903788ba0b421849472df1257bd760ff947d4857bdd3bdb70136bea838fc",
|
||||
"03-project-artifact-classify-light.png": "b015e585915f4274c2773441661aa9f1fc1afa7ce89f323be1f1ad983c8b0201",
|
||||
"04-project-artifact-security-dark.png": "04010e82de61c2bf3ee28497b3e55866aa5ba7f0f1611bf1626b8b42d11b9aba",
|
||||
"04-project-artifact-security-light.png": "28789b9a56c34f957287185d1803e401f53e09d72719115fb22ae88157734fdc",
|
||||
"05-project-artifact-ros-dark.png": "b10739151c49c2c0181b0fdf25fd17eba3cb6ef8896bf9e94d3a0851b2f72faa",
|
||||
"05-project-artifact-ros-light.png": "6c92839794ca15822d77d79d8943d1b22b97a602b240d4821d3145658a987f85",
|
||||
"06-project-artifact-cost-dark.png": "eff9771c842f82a9ff5dcb377d5d729097d41da2ede74c6856e77b0db9c7a5c3",
|
||||
"06-project-artifact-cost-light.png": "da4dc1ef35b77c9f132fb1425a01a6ca6927fb09970cf7c34a19eab5dbebf7d3",
|
||||
"07-project-artifact-summary-dark.png": "2d2d822d97d2b59d30a19b170ae64ff7d7eca65f8a4b45faf802b3195dd91133",
|
||||
"07-project-artifact-summary-light.png": "c887eb673ec49a8d9443c4da95041503c1133aed0981af756239c9651ba12331",
|
||||
"08-project-import-modal-dark.png": "4acaba5bf92643b76867297c07eae4331c5b1d19c9aa51ec015641ed510058e8",
|
||||
"08-project-import-modal-light.png": "a55af215c2c49b5a163c9d781ebb0927ffb862fcc82ee168151d5297e67ea480",
|
||||
"09-project-search-dark.png": "5fcbbb1f19d94232dbe58fb3919466b1e6fcb54afdcad9949411f0eaf30f1e52",
|
||||
"09-project-search-light.png": "c331e4b24c5fb36d7c12ccf5bf672656b972e75190082e6be031fb2232956c2f",
|
||||
"10-home-dark.png": "c4180d9ef9c379e90759b4ec2f07e43f453e69aff1ef44ad696162f3455dafbd",
|
||||
"10-home-light.png": "60c8907dfbfc3ac69797524bbe2fca2928379d15def16540436fe23b055fc117",
|
||||
"11-catalog-dark.png": "7e211e14fbd6f1fcfe5eb895065675ccfe9d86f69f110d0c812123665bb2c891",
|
||||
"11-catalog-light.png": "47439db2e9b941d9a9d6ade2244d63143c48abaeb619c779d1310dac597a6337",
|
||||
"12-onboarding-prefilled-dark.png": "c443ae30e9f63d29f6153293b388bd6e6d9256ee414ddc3ab1f712a8af8a5c11",
|
||||
"12-onboarding-prefilled-light.png": "bc0ddc7c386f3eb5d7d9a25f225563d10d917ac263c6df9571a0a8f558b4ebb7"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 244 KiB |
|
Before Width: | Height: | Size: 3.7 MiB |
|
Before Width: | Height: | Size: 3.7 MiB |
|
Before Width: | Height: | Size: 3.9 MiB |
|
Before Width: | Height: | Size: 3.9 MiB |
|
Before Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 1.9 MiB |
|
Before Width: | Height: | Size: 1.9 MiB |
|
Before Width: | Height: | Size: 825 KiB |
|
Before Width: | Height: | Size: 824 KiB |
|
Before Width: | Height: | Size: 218 KiB |
|
Before Width: | Height: | Size: 216 KiB |
|
Before Width: | Height: | Size: 214 KiB |
|
Before Width: | Height: | Size: 213 KiB |
|
Before Width: | Height: | Size: 189 KiB |
|
Before Width: | Height: | Size: 188 KiB |
|
Before Width: | Height: | Size: 218 KiB |
|
Before Width: | Height: | Size: 215 KiB |
|
Before Width: | Height: | Size: 380 KiB |
|
Before Width: | Height: | Size: 377 KiB |
|
Before Width: | Height: | Size: 246 KiB |
|
Before Width: | Height: | Size: 244 KiB |
|
Before Width: | Height: | Size: 244 KiB |
|
Before Width: | Height: | Size: 3.6 MiB |
|
Before Width: | Height: | Size: 3.6 MiB |
|
Before Width: | Height: | Size: 4 MiB |
|
Before Width: | Height: | Size: 3.9 MiB |
|
Before Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 1.9 MiB |
|
Before Width: | Height: | Size: 1.9 MiB |
|
Before Width: | Height: | Size: 815 KiB |
|
Before Width: | Height: | Size: 814 KiB |
|
Before Width: | Height: | Size: 197 KiB |
|
Before Width: | Height: | Size: 196 KiB |
|
Before Width: | Height: | Size: 193 KiB |
|
Before Width: | Height: | Size: 192 KiB |
|
Before Width: | Height: | Size: 171 KiB |
|
Before Width: | Height: | Size: 169 KiB |
|
Before Width: | Height: | Size: 215 KiB |
|
Before Width: | Height: | Size: 213 KiB |
|
Before Width: | Height: | Size: 410 KiB |
|
Before Width: | Height: | Size: 407 KiB |
|
Before Width: | Height: | Size: 246 KiB |
|
Before Width: | Height: | Size: 244 KiB |
|
Before Width: | Height: | Size: 245 KiB |
|
Before Width: | Height: | Size: 3.7 MiB |
|
Before Width: | Height: | Size: 3.7 MiB |
|
Before Width: | Height: | Size: 3.4 MiB |
|
Before Width: | Height: | Size: 3.4 MiB |
|
Before Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 2 MiB |
|
Before Width: | Height: | Size: 2 MiB |
|
Before Width: | Height: | Size: 963 KiB |
|
Before Width: | Height: | Size: 961 KiB |
|
Before Width: | Height: | Size: 197 KiB |
|
Before Width: | Height: | Size: 196 KiB |
|
Before Width: | Height: | Size: 193 KiB |
|
Before Width: | Height: | Size: 192 KiB |
|
Before Width: | Height: | Size: 171 KiB |
|
Before Width: | Height: | Size: 169 KiB |
|
Before Width: | Height: | Size: 216 KiB |
|
Before Width: | Height: | Size: 214 KiB |
|
Before Width: | Height: | Size: 415 KiB |
|
Before Width: | Height: | Size: 412 KiB |
|
Before Width: | Height: | Size: 247 KiB |
|
Before Width: | Height: | Size: 245 KiB |
BIN
playground/screenshots/v1.15.0/01-onboarding-empty-dark.png
Normal file
|
After Width: | Height: | Size: 718 KiB |
|
Before Width: | Height: | Size: 245 KiB After Width: | Height: | Size: 245 KiB |
|
Before Width: | Height: | Size: 620 KiB After Width: | Height: | Size: 611 KiB |
|
Before Width: | Height: | Size: 616 KiB After Width: | Height: | Size: 606 KiB |
|
Before Width: | Height: | Size: 879 KiB After Width: | Height: | Size: 876 KiB |
|
Before Width: | Height: | Size: 872 KiB After Width: | Height: | Size: 869 KiB |
|
Before Width: | Height: | Size: 960 KiB After Width: | Height: | Size: 944 KiB |
|
Before Width: | Height: | Size: 954 KiB After Width: | Height: | Size: 938 KiB |
|
Before Width: | Height: | Size: 863 KiB After Width: | Height: | Size: 854 KiB |
|
Before Width: | Height: | Size: 857 KiB After Width: | Height: | Size: 849 KiB |
|
Before Width: | Height: | Size: 744 KiB After Width: | Height: | Size: 731 KiB |
|
Before Width: | Height: | Size: 739 KiB After Width: | Height: | Size: 726 KiB |
|
Before Width: | Height: | Size: 816 KiB After Width: | Height: | Size: 793 KiB |
|
Before Width: | Height: | Size: 809 KiB After Width: | Height: | Size: 787 KiB |
|
Before Width: | Height: | Size: 265 KiB After Width: | Height: | Size: 262 KiB |
|
Before Width: | Height: | Size: 262 KiB After Width: | Height: | Size: 259 KiB |
|
Before Width: | Height: | Size: 594 KiB After Width: | Height: | Size: 584 KiB |
|
Before Width: | Height: | Size: 588 KiB After Width: | Height: | Size: 578 KiB |
|
Before Width: | Height: | Size: 216 KiB After Width: | Height: | Size: 216 KiB |
|
Before Width: | Height: | Size: 214 KiB After Width: | Height: | Size: 214 KiB |
|
Before Width: | Height: | Size: 415 KiB After Width: | Height: | Size: 417 KiB |
|
Before Width: | Height: | Size: 412 KiB After Width: | Height: | Size: 414 KiB |
|
Before Width: | Height: | Size: 247 KiB After Width: | Height: | Size: 247 KiB |
|
Before Width: | Height: | Size: 245 KiB After Width: | Height: | Size: 245 KiB |
|
Before Width: | Height: | Size: 740 KiB |
|
Before Width: | Height: | Size: 735 KiB |
|
Before Width: | Height: | Size: 475 KiB |
|
Before Width: | Height: | Size: 473 KiB |