Scrum4Me/docs/plans/v1-readiness.md
Madhura68 ac11483c68 feat(ops): Sentry error-monitoring (v1-readiness item 2)
Vier config-files volgens Next.js 15+ conventie:
- instrumentation.ts (root) → koppelt server/edge config aan runtime-hook
- instrumentation-client.ts → client-init + onRouterTransitionStart
- sentry.server.config.ts → node-runtime
- sentry.edge.config.ts → edge-runtime (proxy.ts)

next.config.ts gewrapped met withSentryConfig:
- Source-map-upload ALLEEN als SENTRY_AUTH_TOKEN gezet is
- Tunnel /monitoring omzeilt ad-blockers (*.sentry.io)
- Silent buiten CI

SDK is no-op zonder NEXT_PUBLIC_SENTRY_DSN — geen network/overhead in
dev of bij ontbrekende creds. Sample-rates conservatief: errors 100%,
performance 10% in productie / 100% in dev. Geen Replay (privacy-review
nodig + overkill voor MVP). sendDefaultPii uit.

.env.example gedocumenteerd; architectuur-doc bijgewerkt met nieuwe
sleutelbeslissing en file-tree-aanvulling. v1-readiness #1 verschoven
naar 'done', #2 hiermee in flight.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 13:24:19 +02:00

151 lines
7.5 KiB
Markdown

---
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
- **#1 Edit-icoon op Product** (todo `cmoq3ox51`) — pencil-icoon op dashboard-card via PR [#83](https://github.com/madhura68/Scrum4Me/pull/83); product-detail-header behoudt tekst
- 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~~ ✅ klaar in PR [#83](https://github.com/madhura68/Scrum4Me/pull/83)
Verschoven naar *What's already done*. Pencil-icoon op dashboard-card; product-detail page-header behoudt tekst (matched naast andere text-acties).
### 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.*