From 222928b1b454326a4c484271d0daf326608d41a3 Mon Sep 17 00:00:00 2001 From: Madhura68 Date: Mon, 4 May 2026 11:15:09 +0200 Subject: [PATCH] docs: v1.0 readiness checklist MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Living document onder docs/plans/v1-readiness.md. Vier secties (Now/Next/ Before launch/Later) met concrete actions voor de stap van v0.9.0 → v1.0.0. Now-kandidaten: - Edit-icoon op Product (todo cmoq3ox51 — UI-gat) - Sentry/error-monitoring - Rate-limiting op alle mutation-endpoints - Accessibility-audit (Lighthouse a11y >=95) Co-Authored-By: Claude Opus 4.7 (1M context) --- docs/INDEX.md | 1 + docs/plans/v1-readiness.md | 155 +++++++++++++++++++++++++++++++++++++ 2 files changed, 156 insertions(+) create mode 100644 docs/plans/v1-readiness.md diff --git a/docs/INDEX.md b/docs/INDEX.md index b4b99a4..c33281c 100644 --- a/docs/INDEX.md +++ b/docs/INDEX.md @@ -50,6 +50,7 @@ Auto-generated on 2026-05-04 from front-matter and headings. | [ST-1111 — Voer uit-knop met Claude Code job queue](./plans/ST-1111-claude-job-trigger.md) | active | 2026-05-03 | | [ST-1114 — Copilot reviews op dashboard](./plans/ST-1114-copilot-reviews.md) | active | 2026-05-03 | | [Tweede Claude Agent — Planning Agent](./plans/tweede-claude-agent-planning.md) | proposal | 2026-05-03 | +| [Scrum4Me — v1.0 readiness](./plans/v1-readiness.md) | active | 2026-05-04 | ### Archive diff --git a/docs/plans/v1-readiness.md b/docs/plans/v1-readiness.md new file mode 100644 index 0000000..757668d --- /dev/null +++ b/docs/plans/v1-readiness.md @@ -0,0 +1,155 @@ +--- +title: "Scrum4Me — v1.0 readiness" +status: active +audience: [maintainer, contributor] +language: nl +last_updated: 2026-05-04 +--- + +# Scrum4Me — v1.0 readiness + +**Versie:** v0.9.0 (zojuist gepusht naar productie via Vercel) +**Doel:** v1.0.0 als eerste stabiele release. Living document — bijwerken na elke sprint of merge naar `main`. + +--- + +## Summary + +De kernfunctionaliteit (auth, producten, PBI/story/task-hiërarchie, sprints, solo-paneel, REST-API, MCP-integratie, QR-pairing, mobile-shell) is **af en in productie**. Tests, lint, build en doc-link-checker zijn allemaal groen. Wat ontbreekt voor v1 is geen feature-werk maar **launch-discipline**: een paar UI-gaten dichten, ops-instrumentatie (error monitoring, rate-limiting beredeneren), accessibility-audit, en de stale backlog-index opschonen. Alle "Expliciet buiten scope voor v1"-items uit de functional spec ([docs/specs/functional.md:20](../specs/functional.md)) blijven bewust uit scope. + +--- + +## What's already done + +- v0.9.0 ([release](https://github.com/madhura68/Scrum4Me/releases/tag/v0.9.0)): mobile-shell met landscape-lock (PBI-11, 7 stories, 21 tasks) +- v0.4.0 t/m v0.8.x: ondermeer sprint-screen filter-popover + edit-iconen, PBI/story/task edit-icons, code-velden verplicht, demo read-only, M11 Claude-vragen-kanaal, M10 QR-pairing +- CI op `main` en PR's: lint + typecheck + prisma validate + test + build via [`.github/workflows/ci.yml`](../../.github/workflows/ci.yml) +- 432 unit/integration tests · 60 test-files · doc-link-checker 86/86 valid +- Drie architectuur-beslissingen voor mobile geformaliseerd in [docs/architecture/project-structure.md](../architecture/project-structure.md) + +--- + +## Now + +Korte lijst (3-5 items) die je vóór de v1.0-tag wil afronden. Deze blokkeren een betekenisvolle launch. + +### 1. Edit-icoon op Product — todo `cmoq3ox51` ([dashboard + product-detail]) + +`ProductDialog` en `updateProductAction` bestaan al (commits `4103e36`, `1b94f32`), maar er is **nergens een zichtbare edit-trigger** voor de eindgebruiker. Op story-niveau hetzelfde patroon als ST-1109 PBI/Story/Task edit-iconen die we deze sprint geshipt hebben. + +Concreet: +- Pen-icoon in product-card ([components/dashboard/product-list.tsx](../../components/dashboard/product-list.tsx)) → opent `` via `` (bestaat al, alleen niet zichtbaar voor non-owners?) +- Pen-icoon in product-header op `/products/[id]` is al aanwezig sinds PR#76 — verifieer of die voor de owner wel werkt en breed genoeg +- Demo-blok: `EditProductButton` heeft al `disabled={isDemo}`-check; verifieer + +### 2. Error monitoring (Sentry of vergelijkbaar) + +CI vangt build-fouten af, maar er is geen runtime-monitoring. Voor een echte v1 wil je productie-fouten zien voordat een gebruiker het meldt. Vercel heeft native Sentry-integratie (Marketplace → Sentry). + +Concreet: +- `npm i @sentry/nextjs` +- `npx @sentry/wizard@latest -i nextjs` +- DSN als env-var via Vercel project settings (development + production environments) +- Sample-rate conservatief (10% performance, 100% errors) — Hobby-plan-vriendelijk +- Bevestig dat Postgres-LISTEN/NOTIFY-fouten in worker-routes (`/api/realtime/*`) gevangen worden + +### 3. Rate-limiting op alle mutation-endpoints + +Nu enkel op `loginAction` en `/api/auth/pair/start` (zie [`actions/auth.ts`](../../actions/auth.ts) en [`app/api/auth/pair/start/route.ts`](../../app/api/auth/pair/start/route.ts)). Voor v1 met externe MCP-integratie is breder coverage nodig. + +Concreet: +- Inventariseer alle Server Actions + API-routes die schrijven (Prisma `create/update/delete/upsert`) +- Wikkel `checkRateLimit` per gebruiker (al beschikbaar in [`lib/rate-limit.ts`](../../lib/rate-limit.ts)) om de zware ones — task-create, story-create, claude-question-create, todo-create +- Per-IP fallback voor anonymous-paths + +### 4. Accessibility audit op happy-path + +`@base-ui/react` levert WAI-ARIA defaults; we gebruiken semantische HTML; maar er is geen audit-bewijs. + +Concreet: +- DevTools Lighthouse a11y-pass op `/login`, `/dashboard`, `/products/[id]`, `/products/[id]/sprint`, `/products/[id]/solo`, `/m/products/[id]`, `/m/products/[id]/solo` +- Score-doel ≥95 per pagina +- Fix wat onder de 95 valt — meestal contrast of missende labels +- Documenteer score in [docs/specs/functional.md § Niet-functionele vereisten](../specs/functional.md) + +--- + +## Next + +Belangrijk maar niet-blokkerend voor v1. + +### Backlog-index sync + +[docs/backlog/index.md](../backlog/index.md) toont M10 (ST-1001 t/m 1008) en M11 (ST-1101 t/m 1108) als unchecked, terwijl ze allemaal gemerged zijn. Loop één keer door en zet `[x]`. Is een 5-min-job die de doc weer betrouwbaar maakt voor wie 'm leest. + +### Solo observaties (todo `cmohuu5h8`) + +"Filters en sortering. blokjes kleiner maken 2 op een rij" — UX-polish op het Solo-paneel. Niet trivial: vereist een filter-popover-pattern (we hebben er net een uitgerold op het sprint-screen — herbruik kan). + +### Algemene observaties (todo `cmohthfyw`) + +"Dunne border om tekstvlakken (onzichtbaar als niet actief), default active PB kiezen, hover-card voor detail-info, landingpage AI-assisted/AI-driven framing." — verzameling kleinere UI-aanscherpingen, ieder eigen scope. + +### ToDo prioriteit + AI-suggesties (todos `cmohtgdwf`, `cmohswbb9`) + +Twee verwante todo's over de todo-feature uitbreiden. Past bij de strategische richting "AI-driven dev-flow" maar geen v1-blokker. + +--- + +## Before launch + +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 + +--- + +## Later + +Bewust uit scope voor v1 (uit functional spec § Expliciet buiten scope) — of grotere domein-uitbreidingen die hun eigen PBI verdienen. + +- **Daily Scrum / Sprint Review / Retrospective**-schermen — v2 +- **E-mail-uitnodigingsflow voor teams** — nu enkel via username +- **Notificaties + reminders** — out of scope +- **Native mobile app** — web-first; mobile-shell is genoeg +- **Tijdregistratie / burndown-charts** — buiten positionering +- **WIA AI agent** (todo `cmog2gzjb`) — eigen project-domein +- **Claude-code-integratie via tabel-trigger** (todo `cmohn3728`) — past bij M12-richting maar geen v1 +- **Inspaningsmonitor-import** (todo `cmohul0ri`) — separate product +- **GitHub Issues / Linear / Jira-integratie** — v2 + +--- + +## Priority order (quick reference) + +``` +Now: 1. Edit-icoon op Product (UI-gat) + 2. Sentry/error-monitoring + 3. Rate-limiting op mutation-endpoints + 4. Accessibility-audit (Lighthouse a11y ≥95) + +Next: 5. Backlog-index.md sync + 6. Solo observaties (filters/sortering) + 7. Algemene UI-observaties + 8. Todo prioriteit + AI-suggesties + +Before launch: 9. Smoke-test productie (desktop + mobile) + 10. PWA-installatie test op echte mobiel + 11. Demo-policy regression-pass + 12. Privacy/PII review + 13. README quick-start verificatie + 14. CHANGELOG.md + 15. Bump → v1.0.0 + release + +Later: (zie sectie hierboven — v2-domein of buiten scope) +``` + +--- + +*Updated: 2026-05-04 (na v0.9.0 release). Refresh dit document na elke sprint of major merge.*