From ff8fe9bf16db6f76f3b3ef96303e609ca2795df9 Mon Sep 17 00:00:00 2001 From: Madhura68 Date: Sun, 10 May 2026 02:22:41 +0200 Subject: [PATCH] docs: fix broken links in research-repo plan MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit docs/plans/lees-de-readme-md-validated-book.md beschrijft een research- repo migratiepad. De links waren geschreven vanuit het research-repo- perspectief (paden als stores/data-store.ts, ../Scrum4Me/CLAUDE.md, docs/plans/zustand-store-rearchitecture.md zonder relative-prefix), wat de doc-link-checker hier laat falen. - Header-note toegevoegd dat het document voor de research-repo is. - Interne refs (zustand-store-rearchitecture.md, CLAUDE.md) → relatieve paden die in deze repo wél resolven (./zustand-..., ../../CLAUDE.md). - Research-repo-only refs (stores/data-store.ts, hooks/use-event-stream.ts, components/*-select.tsx, etc.) → inline code-tags met "(research-repo)" suffix; de link-checker slaat ze over en de leesbaarheid blijft. Verify: npm run docs:check-links → ✓ All doc links valid (118 files). --- .../plans/lees-de-readme-md-validated-book.md | 46 +++++++++++-------- 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/docs/plans/lees-de-readme-md-validated-book.md b/docs/plans/lees-de-readme-md-validated-book.md index c68f1eb..9804ebe 100644 --- a/docs/plans/lees-de-readme-md-validated-book.md +++ b/docs/plans/lees-de-readme-md-validated-book.md @@ -1,8 +1,16 @@ # Scrum4Me-Research — Zustand rearchitecture (reset + execute) +> **Scope:** dit plan is geschreven voor de research-repo +> [`madhura68/Scrum4Me-Research`](https://github.com/madhura68/Scrum4Me-Research), +> niet voor dit hoofdproject. Bestandsverwijzingen die naar +> `stores/data-store.ts`, `hooks/use-event-stream.ts`, +> `components/*-select.tsx` etc. wijzen, bestaan in de research-repo — +> niet hier. Ze staan in `code`-tags zodat de doc-link-checker ze niet +> probeert te resolven. + ## Context -Het bestaande [docs/plans/zustand-store-rearchitecture.md](docs/plans/zustand-store-rearchitecture.md) beschrijft een doel-architectuur (`product-workspace-store` met genormaliseerde entities, race-safe loaders, resync-laag, optimistic mutations). De research-repo is dé plek om dat eerst te testen voordat het in `Scrum4Me/` belandt. +Het bestaande [zustand-store-rearchitecture.md](./zustand-store-rearchitecture.md) beschrijft een doel-architectuur (`product-workspace-store` met genormaliseerde entities, race-safe loaders, resync-laag, optimistic mutations). De research-repo is dé plek om dat eerst te testen voordat het in `Scrum4Me/` belandt. Probleem nu: de research-repo wijkt af van het hoofdproject. Mijn custom `data-store.ts` lijkt qua vorm op de doel-architectuur, maar springt over de baseline heen. We willen aantonen dat de migratie *vanaf* de huidige Scrum4Me-patronen werkt, niet vanaf een verzonnen tussenvorm. @@ -10,8 +18,8 @@ Dus: eerst de research-repo terugbrengen naar dezelfde stores/hooks/routes als S ## Bron-documenten -- **Doel-architectuur**: [docs/plans/zustand-store-rearchitecture.md](docs/plans/zustand-store-rearchitecture.md) (in research-repo). Dit plan voert dat document uit; herhaalt het niet. -- **Conventies**: [CLAUDE.md](../Scrum4Me/CLAUDE.md) hoofdproject. Taal NL, MD3 tokens, `@base-ui/react` render-prop, `*-server.ts`, enum UPPER_SNAKE↔lowercase via `lib/task-status.ts`. +- **Doel-architectuur**: [zustand-store-rearchitecture.md](./zustand-store-rearchitecture.md) (in research-repo). Dit plan voert dat document uit; herhaalt het niet. +- **Conventies**: [CLAUDE.md](../../CLAUDE.md) hoofdproject. Taal NL, MD3 tokens, `@base-ui/react` render-prop, `*-server.ts`, enum UPPER_SNAKE↔lowercase via `lib/task-status.ts`. ## Drie-faseplan @@ -20,10 +28,10 @@ Dus: eerst de research-repo terugbrengen naar dezelfde stores/hooks/routes als S Doel: onze research-pagina werkt op exact dezelfde store/hook/route-vorm als het hoofdproject, met identiek gedrag. **Verwijderen** (research-repo): -- [stores/data-store.ts](stores/data-store.ts) — mijn megastore -- [hooks/use-event-stream.ts](hooks/use-event-stream.ts) — vervangen door `use-backlog-realtime.ts` -- [hooks/use-browser-presence.ts](hooks/use-browser-presence.ts) — niet in main, drop voor reset -- [app/api/realtime/events/route.ts](app/api/realtime/events/route.ts) — vervangen door `app/api/realtime/backlog/route.ts` +- `stores/data-store.ts` (research-repo) — mijn megastore +- `hooks/use-event-stream.ts` (research-repo) — vervangen door `use-backlog-realtime.ts` +- `hooks/use-browser-presence.ts` (research-repo) — niet in main, drop voor reset +- `app/api/realtime/events/route.ts` (research-repo) — vervangen door `app/api/realtime/backlog/route.ts` - Mijn custom `loadX/resyncAll`-paden in selectie-componenten **Kopiëren uit `/Users/janpetervisser/Development/Scrum4Me/`** (1-op-1 of stripped van auth): @@ -48,12 +56,12 @@ Doel: onze research-pagina werkt op exact dezelfde store/hook/route-vorm als het - `GET /api/tasks/[id]` **Componenten herschrijven**: -- [components/product-select.tsx](components/product-select.tsx) → leest `useProductsStore`, schrijft naar `useProductStore.setCurrentProduct` -- [components/pbi-select.tsx](components/pbi-select.tsx) → leest `useBacklogStore` (filter op currentProduct), `useSelectionStore.selectPbi`. Triggert fetch op product-mount via een `useBacklogLoader`-helper die initial data binnenhaalt. -- [components/story-select.tsx](components/story-select.tsx) → idem voor stories -- [components/tasks-table.tsx](components/tasks-table.tsx) → leest `tasksByStory[selectedStoryId]`. **Max 10 rijen, scrollbaar** (al ingebouwd, behouden) -- [components/task-detail-card.tsx](components/task-detail-card.tsx) → fetcht task detail apart (geen full-fat backlog veld; matcht main's `tasks/[id]` route) -- [components/event-stream-panel.tsx](components/event-stream-panel.tsx) → blijft bestaan voor research-doel (event-tap), maar luistert nu mee op dezelfde EventSource via `use-backlog-realtime` (of een tweede readonly listener); selecteerbare events met JSON-detail rechts blijven. Twee checkboxes (Postgres / Browser). Truncate met ellipsis in de lijst. +- `components/product-select.tsx` (research-repo) → leest `useProductsStore`, schrijft naar `useProductStore.setCurrentProduct` +- `components/pbi-select.tsx` (research-repo) → leest `useBacklogStore` (filter op currentProduct), `useSelectionStore.selectPbi`. Triggert fetch op product-mount via een `useBacklogLoader`-helper die initial data binnenhaalt. +- `components/story-select.tsx` (research-repo) → idem voor stories +- `components/tasks-table.tsx` (research-repo) → leest `tasksByStory[selectedStoryId]`. **Max 10 rijen, scrollbaar** (al ingebouwd, behouden) +- `components/task-detail-card.tsx` (research-repo) → fetcht task detail apart (geen full-fat backlog veld; matcht main's `tasks/[id]` route) +- `components/event-stream-panel.tsx` (research-repo) → blijft bestaan voor research-doel (event-tap), maar luistert nu mee op dezelfde EventSource via `use-backlog-realtime` (of een tweede readonly listener); selecteerbare events met JSON-detail rechts blijven. Twee checkboxes (Postgres / Browser). Truncate met ellipsis in de lijst. **Werkwijzen (verifiëren tijdens reset)**: - Comments en UI-tekst NL @@ -69,7 +77,7 @@ Doel: onze research-pagina werkt op exact dezelfde store/hook/route-vorm als het ### Fase B — Rearchitecture uitvoeren -Volgt de 15 stappen uit [docs/plans/zustand-store-rearchitecture.md](docs/plans/zustand-store-rearchitecture.md) §Implementatiepad. Concreet voor de research-repo: +Volgt de 15 stappen uit [zustand-store-rearchitecture.md](./zustand-store-rearchitecture.md) §Implementatiepad. Concreet voor de research-repo: 1. **Map** `stores/product-workspace/` aanmaken (factory + provider + selectors). 2. **`activeProduct`** wordt nu nog gespiegeld vanuit `useProductStore`; voor de research-pagina geen layout/server-side bepaling — we lezen het uit de pulldown-state. @@ -134,10 +142,10 @@ Volgt de 15 stappen uit [docs/plans/zustand-store-rearchitecture.md](docs/plans/ ## Bestandsmutaties (overzicht) ### Verwijderen na Fase A -- [stores/data-store.ts](stores/data-store.ts) -- [hooks/use-event-stream.ts](hooks/use-event-stream.ts) -- [hooks/use-browser-presence.ts](hooks/use-browser-presence.ts) — komt deels terug in Fase B als helper voor visibility/online resync trigger -- [app/api/realtime/events/route.ts](app/api/realtime/events/route.ts) +- `stores/data-store.ts` (research-repo) +- `hooks/use-event-stream.ts` (research-repo) +- `hooks/use-browser-presence.ts` (research-repo) — komt deels terug in Fase B als helper voor visibility/online resync trigger +- `app/api/realtime/events/route.ts` (research-repo) ### Toevoegen Fase A (uit Scrum4Me) - `stores/backlog-store.ts` @@ -174,7 +182,7 @@ Volgt de 15 stappen uit [docs/plans/zustand-store-rearchitecture.md](docs/plans/ 6. Vergelijk: `diff Scrum4Me/stores/backlog-store.ts Scrum4Me-Research/stores/backlog-store.ts` → identiek (modulo lokale interface-uitbreidingen waar gedocumenteerd) ### Na Fase B (target) -Alle acceptatiecriteria uit [docs/plans/zustand-store-rearchitecture.md §Acceptatiecriteria](docs/plans/zustand-store-rearchitecture.md): +Alle acceptatiecriteria uit [zustand-store-rearchitecture.md §Acceptatiecriteria](./zustand-store-rearchitecture.md): - Eén waarheid per entity in de store ✓ - Selectors als enige UI-leesweg ✓ - SSE patcht zonder full-page refresh ✓