* docs(cleanup): archief verouderde plannen, backlog en root-duplicaten
- 6 plans naar docs/old/plans/ (PBI-11/75/78, user-settings-store, Local github setup, lees-de-readme — laatste was verkeerde repo)
- docs/backlog/ naar docs/old/backlog/ (pre-MCP statische registry; live werk loopt via Scrum4Me-MCP)
- 6 root-level duplicaten naar docs/old/ (functional, {pbi,story,task}-dialog, product-backlog, backlog)
- 2 landing plans (niet uitgevoerd) krijgen archived: true frontmatter — blijven op plek maar uit INDEX
- scripts/generate-docs-index.mjs: skip docs/old/** + skip archived: true
- CLAUDE.md: rijen docs/backlog/, docs/plans/<key>-*.md, docs/manual/ weg; Track B-sectie verwijderd
- README.md / CHANGELOG.md / docs/plans/v1-readiness.md: link-fixes naar nieuwe locaties
Verify groen (lint + typecheck + 718 tests). docs/INDEX.md geregenereerd.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* docs(cleanup): registreer handmatige verplaatsingen en fix referenties
- 4 plans verplaatst naar docs/old/plans/ (M10-qr-pairing-login, auto-pr-deploy-sync, docs-restructure-ai-lookup, v1-readiness)
- 3 archive-plans verplaatst naar docs/old/plans/ (archive-map nu leeg)
- ST-1114-copilot-reviews + 3 research-docs naar nieuwe docs/Ideas/ map
- Duplicaat docs/old/2026-04-27-m8-realtime-solo.md verwijderd (origineel zit in docs/old/plans/)
- Link-fixes naar nieuwe locaties:
- CHANGELOG.md → docs/old/plans/v1-readiness.md
- docs/runbooks/deploy-control.md → docs/old/plans/auto-pr-deploy-sync.md (2x)
- docs/runbooks/worker-idempotency.md → docs/old/plans/auto-pr-deploy-sync.md
- docs/plans/docs-restructure-pbi-spec.md → docs/old/plans/docs-restructure-ai-lookup.md (4x text + 2x href)
- docs/INDEX.md geregenereerd (96 docs, was 100)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
148 lines
7.7 KiB
Markdown
148 lines
7.7 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
|
|
|
|
- **#3 Rate-limiting op alle mutation-endpoints** — `enforceUserRateLimit(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](https://github.com/madhura68/Scrum4Me/pull/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](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~~ ✅ 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](../specs/functional.md)
|
|
|
|
---
|
|
|
|
## Next
|
|
|
|
Belangrijk maar niet-blokkerend voor v1.
|
|
|
|
### Backlog-index sync
|
|
|
|
[docs/old/backlog/index.md](../old/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** — 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
|
|
|
|
---
|
|
|
|
## 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.*
|