Scrum4Me/docs/plans/v1-readiness.md
Madhura68 a0a10001d5 feat(rate-limit): per-user mutation-rate-limiting (v1-readiness #3)
lib/rate-limit.ts: 11 nieuwe scope-configs + enforceUserRateLimit(scope, userId)
helper. Returnt { error, code: 429 } shape voor consistent foutbeleid.

Toegepast op de high-value mutation-paths:
- actions/pbis.ts createPbiAction
- actions/stories.ts createStoryAction
- actions/tasks.ts saveTask (alleen create-path) + createTaskAction
- actions/todos.ts createTodoAction
- actions/sprints.ts createSprintAction
- actions/products.ts createProductAction + createProductFormAction
- actions/api-tokens.ts createApiTokenAction
- actions/questions.ts answerQuestion
- actions/claude-jobs.ts enqueueClaudeJobAction + enqueueClaudeJobsBatchAction
- app/api/profile/avatar/route.ts POST
- app/api/stories/[id]/log/route.ts POST

Limits zijn ruim genoeg voor normaal gebruik, eng genoeg voor abuse-loops:
create-task 100/min, create-todo 60/min, create-pbi 30/min, create-product
5/min, create-token 10/uur, etc. Per-user scope (geen globale block).

Niet aangeraakt: reorder/status-toggle (intra-session frequent, lage abuse),
update/delete (laag-volume), cron-routes (CRON_SECRET-gated).

Consumer-tweaks: 'success' in result narrowing waar TS de bredere union niet
meer accepteerde. Tests: 9 nieuwe op rate-limit-helper.

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

7.7 KiB

title status audience language last_updated
Scrum4Me — v1.0 readiness active
maintainer
contributor
nl 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) blijven bewust uit scope.


What's already done

  • #3 Rate-limiting op alle mutation-endpointsenforceUserRateLimit(scope, userId) helper in lib/rate-limit.ts met 11 nieuwe scopes; toegepast op create-actions (PBI/Story/Task/Todo/Sprint/Product/Token), enqueueClaudeJob(s), answerQuestion, en API-routes (story log POST, avatar upload). Limits zijn ruim genoeg voor normaal gebruik, eng genoeg om abuse-loops te stoppen
  • #2 Sentry error-monitoring@sentry/nextjs geconfigureerd via PR #85; SDK is no-op zonder DSN, activatie via Vercel env-vars
  • #1 Edit-icoon op Product (todo cmoq3ox51) — pencil-icoon op dashboard-card via PR #83; product-detail-header behoudt tekst
  • v0.9.0 (release): 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
  • 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

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

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 klaar

Verschoven naar What's already done. Helper enforceUserRateLimit(scope, userId) in lib/rate-limit.ts toegepast op alle high-value create-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

Next

Belangrijk maar niet-blokkerend voor v1.

Backlog-index sync

docs/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~~ ✅
               ~~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.