docs: v1.0 smoke-test checklist + readiness-doc bijgewerkt

docs/runbooks/v1-smoke-test.md (NIEUW): 11-secties handmatige checklist
voor de v1.0-pre-launch verificatie — auth, mobile UA-redirect, happy-path
flow, mobile shell, edit-flows, demo-policy, rate-limiting steekproef,
realtime, debug-routes 404 in productie, Lighthouse a11y per pagina,
rollback-trigger.

v1-readiness.md: 4 Before-launch items afgevinkt (demo-policy, privacy,
README, CHANGELOG); smoke-test verwijst nu naar de checklist; PWA-test
en v1.0.0-bump zijn de twee resterende handmatige items.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Janpeter Visser 2026-05-04 14:18:25 +02:00
parent 0f40bc1c70
commit b225c83ace
3 changed files with 108 additions and 7 deletions

View file

@ -110,6 +110,7 @@ Auto-generated on 2026-05-04 from front-matter and headings.
| [Branch, PR & Commit Strategy](./runbooks/branch-and-commit.md) | `runbooks/branch-and-commit.md` | active | 2026-05-03 |
| [Vercel Deployment](./runbooks/deploy-vercel.md) | `runbooks/deploy-vercel.md` | active | 2026-05-03 |
| [MCP Integration — Scrum4Me Tools](./runbooks/mcp-integration.md) | `runbooks/mcp-integration.md` | active | 2026-05-03 |
| [v1.0 Smoke Test Checklist](./runbooks/v1-smoke-test.md) | `runbooks/v1-smoke-test.md` | active | 2026-05-04 |
| [StoryDialog Profiel](./story-dialog.md) | `story-dialog.md` | active | 2026-05-03 |
| [TaskDialog Profiel](./task-dialog.md) | `task-dialog.md` | active | 2026-05-03 |
| [Scrum4Me — API Test Plan](./test-plan.md) | `test-plan.md` | active | 2026-05-03 |

View file

@ -93,13 +93,13 @@ Twee verwante todo's over de todo-feature uitbreiden. Past bij de strategische r
Must-do voor publieke aankondiging, maar mag pas vlak vóór v1.0-tag.
- [ ] **Smoke-test productie** na merge: registreren → product → PBI → story → sprint → task → solo → completion. Ook mobile flow (DevTools UA-spoof of echt toestel). 12-min-job.
- [ ] **PWA-installatie test** op echt mobiel (Android + iOS) — bevestig manifest landscape, controleer iOS-fallback via CSS-overlay.
- [ ] **Demo-policy regression-pass:** demo-user mag niets schrijven via UI/API/MCP. Drie-laags-demo-block.
- [ ] **Privacy review:** zit er PII in logs? Sentry-events strippen? Avatar-upload-paden?
- [ ] **README + Quick start verifiëren** op een schone clone — kan iemand binnen 10 min `npm run dev` draaien?
- [ ] **Bump naar v1.0.0** + GitHub release met release-notes (mirror van wat in v0.9.0 zit, met v1-claim "stabiele MVP")
- [ ] **CHANGELOG.md** aanmaken (ontbreekt nu) — een vlakke `Keep-a-Changelog`-formaat is genoeg
- [ ] **Smoke-test productie** — checklist klaar in [docs/runbooks/v1-smoke-test.md](../runbooks/v1-smoke-test.md), 11 secties, ~15 min
- [ ] **PWA-installatie test** op echt mobiel (Android + iOS) — bevestig manifest landscape, controleer iOS-fallback via CSS-overlay
- [x] **Demo-policy regression-pass** — code-side gefixt: 3 gaps gedicht (toggleTodo, archiveCompletedTodos, leaveProduct). Drielaags-block geverifieerd voor alle mutation-actions
- [x] **Privacy review** — Sentry sendDefaultPii=false; geen PII in logs; 4 debug-routes nu NODE_ENV-guarded (404 in productie)
- [x] **README + Quick start verifiëren** — test-count 69 → 445 gecorrigeerd, env-vars-tabel uitgebreid (CRON_SECRET, Sentry vars), CHANGELOG-link toegevoegd
- [x] **CHANGELOG.md** aangemaakt (Keep a Changelog formaat met [Unreleased] + [0.9.0])
- [ ] **Bump naar v1.0.0** + GitHub release met release-notes
---

View file

@ -0,0 +1,100 @@
---
title: "v1.0 Smoke Test Checklist"
status: active
audience: [maintainer]
language: nl
last_updated: 2026-05-04
---
# v1.0 Smoke Test Checklist
Loop deze checklist door **vóór** je v1.0.0 tagt. Alleen handmatig — geen automation.
Time-budget: ~15 min.
**Productie-URL:** https://scrum4me.jp-visser.nl
---
## 1. Auth + dashboard (3 min)
- [ ] **Demo-login:** `demo` / `demo1234` → dashboard rendert, alle write-acties geven 403
- [ ] **Logout** vanuit user-menu → redirect naar `/login`
- [ ] **Register** met nieuwe gebruikersnaam → succesvol, redirect naar `/dashboard`
- [ ] **Login fout-flow:** verkeerd wachtwoord → generieke fout, geen leak
## 2. Mobile UA-redirect (2 min)
- [ ] DevTools mobile-emulatie iPhone 12 (UA-spoof) → log in → automatisch naar `/m/products/[id]/solo` (of `/m/settings` zonder actief product)
- [ ] Tablet-UA (iPad) → blijft op `/dashboard`
- [ ] Desktop blijft `/dashboard`
## 3. Product → PBI → Story → Sprint → Task happy-path (5 min)
- [ ] **Product aanmaken** (eigen account) → naam, code, DoD ingevuld
- [ ] **PBI aanmaken** in Product Backlog kolom → priority + status
- [ ] **Story aanmaken** onder PBI → titel + acceptatiecriteria
- [ ] **Sprint starten** met sprint-goal
- [ ] **Story slepen** vanuit Product Backlog naar Sprint Backlog
- [ ] **Task aanmaken** in Sprint → titel + implementation_plan
- [ ] **Task drag-and-drop** in Solo Paneel: To Do → Bezig → Klaar
- [ ] **Story-status auto-promotie:** alle taken DONE → story status DONE
## 4. Mobile shell (2 min — op echte phone of DevTools landscape iPhone 12)
- [ ] `/m/products/[id]` rendert in tab-mode (3 tabs onderaan: Backlog/Solo/Settings)
- [ ] Portrait-orientatie → rotate-overlay
- [ ] `/m/products/[id]/solo` toont 3-koloms kanban met horizontal scroll
- [ ] Task-detail dialog opent full-screen (`<640px`) — sticky header + footer bereikbaar
- [ ] `/m/settings` toont username + actieve product + logout-knop met bevestiging
- [ ] `/m/pair` toont QR-pairing-confirmation (M10 intact)
- [ ] **Geen** NavBar / AppIcon / Scrum4Me-tekst zichtbaar op `/m/*`
## 5. Edit-flows (1 min)
- [ ] **Pencil-icon op product-card** (dashboard hover) → ProductDialog opent
- [ ] **PBI ✎-icoon** (hover) → PbiDialog opent en saved
- [ ] **Story ✎-icoon** (sprint screen Sprint Backlog) → StoryDialog opent
- [ ] **Task ✎-icoon** (Taken-kolom) → TaskDialog opent
## 6. Demo-policy (1 min)
Inloggen als demo-gebruiker:
- [ ] PBI/Story/Task create-knoppen disabled met DemoTooltip
- [ ] Edit-iconen disabled
- [ ] Logout-knop bereikbaar (demo mag uitloggen)
- [ ] Productselector gaat door op view, maar Activeer-acties geven 403
## 7. Rate-limiting (steekproef, 1 min)
- [ ] Probeer 31 PBIs in <60s aan te maken via UI 31e geeft toast "Te veel acties achter elkaar"
- [ ] (Optioneel) `bash scripts/test-api.sh` → alle endpoints groen
## 8. Realtime (1 min)
- [ ] Open `/products/[id]/solo` in twee browsers (één als owner, één als teamlid)
- [ ] Status-toggle in browser A → ziet binnen 1s in browser B (SSE-pipe)
- [ ] Claude-vraag binnenkrijgen → bell-badge verschijnt zonder refresh
## 9. Debug-routes (productie afgeschermd)
- [ ] `https://scrum4me.jp-visser.nl/debug-env`**404** (NODE_ENV-guard)
- [ ] `https://scrum4me.jp-visser.nl/debug-realtime` → **404**
- [ ] `https://scrum4me.jp-visser.nl/api/debug/realtime-stream` → **404**
## 10. Lighthouse op happy-path
- [ ] `/login` — a11y ≥95
- [ ] `/dashboard` — a11y ≥95
- [ ] `/products/[id]` — a11y ≥95 (was 86 vóór PR #88)
- [ ] `/products/[id]/sprint` — a11y ≥95
- [ ] `/products/[id]/solo` — a11y ≥95
> Performance score in dev-mode is misleidend (dev-bundles, Chrome-extensies).
> Test op productie of `npm run build && npm run start` voor betrouwbare cijfers.
## 11. Rollback-trigger
Als één van bovenstaande faalt:
- Vercel dashboard → Deployments → vorige Ready deploy → "Promote to Production"
- Issue-titel: "v1.0 smoke-test failure: \<korte beschrijving\>"
- Tag v1.0.0 NIET totdat alles groen is