docs(naming): drop scrum4me- prefix from doc filenames
This commit is contained in:
parent
6c49a5013d
commit
f5ff3673e2
35 changed files with 198 additions and 193 deletions
|
|
@ -16,8 +16,8 @@ Inloggen op een (publieke) desktop zonder wachtwoord: desktop toont QR, telefoon
|
|||
- `desktopToken` reist alleen via HttpOnly cookie `s4m_pair` met `Path=/api/auth/pair`, `Max-Age=120`, `SameSite=Lax`
|
||||
- Twee gescheiden hashes in DB scheiden mobiel-bewijs (`secret_hash`) van desktop-bewijs (`desktop_token_hash`)
|
||||
|
||||
Backlog-entries: zie [scrum4me-backlog.md § M10](../scrum4me-backlog.md#m10-password-loze-inlog-via-qr-pairing).
|
||||
Functional spec: zie [scrum4me-functional-spec.md § F-01b](../scrum4me-functional-spec.md#f-01b-inloggen-via-mobiel-qr-pairing).
|
||||
Backlog-entries: zie [backlog.md § M10](../backlog.md#m10-password-loze-inlog-via-qr-pairing).
|
||||
Functional spec: zie [functional-spec.md § F-01b](../functional-spec.md#f-01b-inloggen-via-mobiel-qr-pairing).
|
||||
|
||||
**Implementatie-volgorde** (commit-strategy uit CLAUDE.md):
|
||||
|
||||
|
|
@ -37,7 +37,7 @@ ST-1006 staat bij de API-laag (niet bij UI) omdat het een Route Handler is; ST-1
|
|||
**Bestanden**
|
||||
- `prisma/schema.prisma` — nieuw model `LoginPairing` + back-relation op `User`
|
||||
- `prisma/migrations/<timestamp>_add_login_pairing/migration.sql` — model + trigger
|
||||
- `vendor/scrum4me`-submodule in repo `scrum4me-mcp` — schema-sync ná merge
|
||||
- `vendor/scrum4me`-submodule in repo `mcp` — schema-sync ná merge
|
||||
|
||||
**Stappen**
|
||||
|
||||
|
|
@ -93,7 +93,7 @@ ST-1006 staat bij de API-laag (niet bij UI) omdat het een Route Handler is; ST-1
|
|||
- `desktop_ip` houdt op 45 tekens om IPv6 te accommoderen (`xxxx:xxxx:…:255.255.255.255`).
|
||||
- Geen index op `user_id` nodig voor v1 — er is geen lookup-pad "geef alle pairings van user X" (komt pas bij remote-revoke in M+1).
|
||||
- Trigger emit ook bij DELETE niet nodig — pairings worden niet gedelete'd, ze gaan naar `consumed`/`cancelled`.
|
||||
- `vendor/scrum4me`-submodule in scrum4me-mcp moet ná merge op `main` direct gesynced worden, anders breekt de wekelijkse drift-check (`trig_015FFUnxjz9WMuhhWNGBQKFD`). Dit was ook een aandachtspunt bij ST-901.
|
||||
- `vendor/scrum4me`-submodule in mcp moet ná merge op `main` direct gesynced worden, anders breekt de wekelijkse drift-check (`trig_015FFUnxjz9WMuhhWNGBQKFD`). Dit was ook een aandachtspunt bij ST-901.
|
||||
|
||||
**Verificatie**
|
||||
- `npx prisma migrate dev` slaagt
|
||||
|
|
@ -661,7 +661,7 @@ ST-1006 staat bij de API-laag (niet bij UI) omdat het een Route Handler is; ST-1
|
|||
- De `session.isDemo` check overneemt: als de approver een demo-user is — wat ST-1005 al blokkeert — komen we hier niet eens, maar `is_demo` doorzetten is een extra vangnet.
|
||||
|
||||
**Verificatie**
|
||||
- Handmatig: na approve in mobiele tab, POST naar `/api/auth/pair/claim` met de cookie van start → 200 + `Set-Cookie: scrum4me-session=...`
|
||||
- Handmatig: na approve in mobiele tab, POST naar `/api/auth/pair/claim` met de cookie van start → 200 + `Set-Cookie: session=...`
|
||||
- `curl -X POST` zonder cookie → 401
|
||||
- Tweede claim → 410
|
||||
|
||||
|
|
@ -776,7 +776,7 @@ ST-1006 staat bij de API-laag (niet bij UI) omdat het een Route Handler is; ST-1
|
|||
<QrLoginButton />
|
||||
```
|
||||
|
||||
MD3-tokens uit `docs/scrum4me-styling.md`; geen willekeurige Tailwind-kleuren.
|
||||
MD3-tokens uit `docs/styling.md`; geen willekeurige Tailwind-kleuren.
|
||||
|
||||
4. **A11y**: QR-component krijgt `aria-label="QR-code voor mobiel inloggen"` en de URL wordt visueel als kopieer-bare tekst onder de QR getoond zodat screenreaders en gebruikers met cameraproblemen de URL handmatig kunnen openen.
|
||||
|
||||
|
|
@ -798,7 +798,7 @@ ST-1006 staat bij de API-laag (niet bij UI) omdat het een Route Handler is; ST-1
|
|||
|
||||
**Bestanden**
|
||||
- `docs/API.md` — drie nieuwe endpoints
|
||||
- `docs/scrum4me-architecture.md` — sectie "QR-pairing flow" + threat-model
|
||||
- `docs/architecture.md` — sectie "QR-pairing flow" + threat-model
|
||||
- `docs/patterns/qr-login.md` — nieuw pattern-doc
|
||||
- `CLAUDE.md` — verwijzing naar het pattern-doc in de patterns-tabel
|
||||
- `__tests__/integration/qr-pairing-e2e.test.ts` — optioneel, alleen als de test-infra het toelaat
|
||||
|
|
@ -807,7 +807,7 @@ ST-1006 staat bij de API-laag (niet bij UI) omdat het een Route Handler is; ST-1
|
|||
|
||||
1. **`docs/API.md`** — drie endpoints documenteren met request/response, foutcodes (400/401/403/404/410/422/429), curl-voorbeelden inclusief `--cookie-jar`. Voeg een sectie *"Cookie-mechaniek"* toe die uitlegt dat `s4m_pair` een tijdelijke pre-auth cookie is, anders dan de iron-session cookie.
|
||||
|
||||
2. **`docs/scrum4me-architecture.md`** — sectie *"QR-pairing flow"* met:
|
||||
2. **`docs/architecture.md`** — sectie *"QR-pairing flow"* met:
|
||||
- Sequence-diagram (mermaid of ASCII analoog aan M8)
|
||||
- Threat-model:
|
||||
- **Replay**: atomic `updateMany` met `status='approved'` voorkomt dubbele claim
|
||||
|
|
@ -835,13 +835,13 @@ ST-1006 staat bij de API-laag (niet bij UI) omdat het een Route Handler is; ST-1
|
|||
7. **Secret niet in access logs** — controleer Vercel runtime-logs (via `mcp__a1fa0fcf-…__get_runtime_logs`) en lokale dev-logs; zoek op de secret-string en op `s=`-substrings; verwacht: 0 hits
|
||||
|
||||
**Aandachtspunten**
|
||||
- Zorg dat de runtime-logs MCP-controle in `docs/scrum4me-test-plan.md` belandt zodat hij bij elke release herhaalbaar is.
|
||||
- Zorg dat de runtime-logs MCP-controle in `docs/test-plan.md` belandt zodat hij bij elke release herhaalbaar is.
|
||||
- `docs/patterns/qr-login.md` mag refereren naar bestaande pattern-docs (iron-session, route-handler) zonder ze te dupliceren.
|
||||
|
||||
**Verificatie**
|
||||
- `npm run lint && npx tsc --noEmit && npm test && npm run build` groen
|
||||
- Alle zeven scenario's handmatig groen, beschreven in een test-rapport-sectie
|
||||
- `vendor/scrum4me`-submodule in scrum4me-mcp gesynced ná schema-merge
|
||||
- `vendor/scrum4me`-submodule in mcp gesynced ná schema-merge
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -875,7 +875,7 @@ docs(ST-1008): add qr-login pattern doc
|
|||
|
||||
**Pre-merge gates** (uit CLAUDE.md DoD):
|
||||
- `npm run lint && npm test && npm run build` groen op CI
|
||||
- Schema-wijziging in ST-1001 → wekelijkse drift-check `trig_015FFUnxjz9WMuhhWNGBQKFD` mag niet rood staan; `vendor/scrum4me`-submodule in scrum4me-mcp meebewegen na merge
|
||||
- Schema-wijziging in ST-1001 → wekelijkse drift-check `trig_015FFUnxjz9WMuhhWNGBQKFD` mag niet rood staan; `vendor/scrum4me`-submodule in mcp meebewegen na merge
|
||||
|
||||
**Wanneer dit aanpassen:** zodra het Vercel-account naar Pro gaat — zie CLAUDE.md.
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ Persistent vraag-antwoord-kanaal tussen Claude Code (via MCP) en de actieve Scru
|
|||
|
||||
Eerste concrete uitwerking van strategische **richting B** (verdiepen van de unieke AI-driven dev-flow).
|
||||
|
||||
Backlog-entries: zie [scrum4me-backlog.md § M11](../scrum4me-backlog.md#m11-claude-vraagt-gebruiker-antwoordt) (op te leveren in ST-1108).
|
||||
Backlog-entries: zie [backlog.md § M11](../backlog.md#m11-claude-vraagt-gebruiker-antwoordt) (op te leveren in ST-1108).
|
||||
|
||||
**Beveiligingsuitgangspunten:**
|
||||
- Atomic answer via `updateMany WHERE status='open'` — concurrent dubbele submit kan niet
|
||||
|
|
@ -34,7 +34,7 @@ Backlog-entries: zie [scrum4me-backlog.md § M11](../scrum4me-backlog.md#m11-cla
|
|||
**Bestanden**
|
||||
- `prisma/schema.prisma` — model `ClaudeQuestion` + relations op `User`/`Story`/`Task`/`Product`
|
||||
- `prisma/migrations/<ts>_add_claude_questions/migration.sql` — table-DDL + trigger
|
||||
- `vendor/scrum4me`-submodule in `scrum4me-mcp` — schema-sync ná merge
|
||||
- `vendor/scrum4me`-submodule in `mcp` — schema-sync ná merge
|
||||
|
||||
**Stappen**
|
||||
|
||||
|
|
@ -113,16 +113,16 @@ Backlog-entries: zie [scrum4me-backlog.md § M11](../scrum4me-backlog.md#m11-cla
|
|||
|
||||
---
|
||||
|
||||
## ST-1102 — MCP-tools (in `scrum4me-mcp`-repo)
|
||||
## ST-1102 — MCP-tools (in `mcp`-repo)
|
||||
|
||||
**Bestanden**
|
||||
- `scrum4me-mcp/src/tools/ask-user-question.ts` — nieuw
|
||||
- `scrum4me-mcp/src/tools/get-question-answer.ts` — nieuw
|
||||
- `scrum4me-mcp/src/tools/list-open-questions.ts` — nieuw
|
||||
- `scrum4me-mcp/src/tools/cancel-question.ts` — nieuw
|
||||
- `scrum4me-mcp/src/index.ts` — register de vier tools
|
||||
- `scrum4me-mcp/scripts/smoke-test.ts` — uitbreiden met question-roundtrip
|
||||
- `scrum4me-mcp/README.md` — tool-tabel uitbreiden
|
||||
- `mcp/src/tools/ask-user-question.ts` — nieuw
|
||||
- `mcp/src/tools/get-question-answer.ts` — nieuw
|
||||
- `mcp/src/tools/list-open-questions.ts` — nieuw
|
||||
- `mcp/src/tools/cancel-question.ts` — nieuw
|
||||
- `mcp/src/index.ts` — register de vier tools
|
||||
- `mcp/scripts/smoke-test.ts` — uitbreiden met question-roundtrip
|
||||
- `mcp/README.md` — tool-tabel uitbreiden
|
||||
|
||||
**Stappen**
|
||||
|
||||
|
|
@ -162,7 +162,7 @@ Backlog-entries: zie [scrum4me-backlog.md § M11](../scrum4me-backlog.md#m11-cla
|
|||
- MCP Inspector toont 4 nieuwe tools (totaal 13)
|
||||
- Smoke-test groen: ask + answer roundtrip binnen 5s
|
||||
- Demo-token op `ask_user_question` of `cancel_question` geeft `PERMISSION_DENIED`
|
||||
- `tsc --noEmit` clean op `scrum4me-mcp`
|
||||
- `tsc --noEmit` clean op `mcp`
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -288,7 +288,7 @@ Backlog-entries: zie [scrum4me-backlog.md § M11](../scrum4me-backlog.md#m11-cla
|
|||
|
||||
**Aandachtspunten**
|
||||
- Bell-icon en avatar moeten visueel balanceren — hoogte/padding gelijktrekken
|
||||
- MD3-tokens uit `docs/scrum4me-styling.md`: badge `bg-error text-error-foreground` voor critical-count, `bg-primary` voor neutraal. Geen willekeurige Tailwind-kleuren
|
||||
- MD3-tokens uit `docs/styling.md`: badge `bg-error text-error-foreground` voor critical-count, `bg-primary` voor neutraal. Geen willekeurige Tailwind-kleuren
|
||||
- Optimistic-answer in store: voor het Server Action-resultaat zet item op pending; bij error rollback met sonner-error-toast
|
||||
- Sheet-content blijft open zodat de user meerdere vragen achter elkaar kan beantwoorden (zelfde patroon als ST-358 openstaande-stories-sheet)
|
||||
- ARIA: bell-icon heeft `aria-label="Notificaties — N open vragen"`, badge `role="status"`
|
||||
|
|
@ -379,17 +379,17 @@ Backlog-entries: zie [scrum4me-backlog.md § M11](../scrum4me-backlog.md#m11-cla
|
|||
|
||||
**Bestanden**
|
||||
- `docs/API.md` — secties "SSE — Notifications" + "Cron — Expire questions"
|
||||
- `docs/scrum4me-architecture.md` — sectie "Vraag-antwoord-kanaal" met sequence-diagram
|
||||
- `docs/architecture.md` — sectie "Vraag-antwoord-kanaal" met sequence-diagram
|
||||
- `docs/patterns/claude-question-channel.md` — herbruikbaar pattern-doc
|
||||
- `docs/scrum4me-backlog.md` — M11-tabel-rij + M11-sectie
|
||||
- `docs/backlog.md` — M11-tabel-rij + M11-sectie
|
||||
- `prisma/seed-data/parse-backlog.ts` — `M11: 'ACTIVE'`, `M10: 'COMPLETED'`, `M3.5: 'COMPLETED'`
|
||||
- `CLAUDE.md` — pattern-doc verwijzing in Implementatiepatronen-tabel
|
||||
|
||||
**Stappen**
|
||||
|
||||
1. Backlog-tabel-rij + M11-sectie in `docs/scrum4me-backlog.md` (mirror M10-format met **Implementatieplan:** verwijzing naar dit doc)
|
||||
1. Backlog-tabel-rij + M11-sectie in `docs/backlog.md` (mirror M10-format met **Implementatieplan:** verwijzing naar dit doc)
|
||||
|
||||
2. `docs/scrum4me-architecture.md` § "Vraag-antwoord-kanaal":
|
||||
2. `docs/architecture.md` § "Vraag-antwoord-kanaal":
|
||||
- Mermaid sequence-diagram: Claude → MCP → DB → trigger → SSE → user → Server Action → DB → trigger → polling-tool
|
||||
- Threat-model-tabel (replay, demo-block, access-leak, expiry, race)
|
||||
- "Waarom hergebruik scrum4me_changes-kanaal" sub-sectie
|
||||
|
|
@ -415,7 +415,7 @@ Backlog-entries: zie [scrum4me-backlog.md § M11](../scrum4me-backlog.md#m11-cla
|
|||
- Backlog-parser-self-test: `npx tsx prisma/seed-data/parse-backlog.ts` toont M11 met `priority=4 sprint=ACTIVE`
|
||||
- 6/6 acceptatie-scenario's groen
|
||||
- `npm run lint && npx tsc --noEmit && npm test && npm run build` clean
|
||||
- `vendor/scrum4me`-submodule sync in scrum4me-mcp na merge
|
||||
- `vendor/scrum4me`-submodule sync in mcp na merge
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -423,13 +423,13 @@ Backlog-entries: zie [scrum4me-backlog.md § M11](../scrum4me-backlog.md#m11-cla
|
|||
|
||||
Per [CLAUDE.md → Branch & PR Strategy](../../CLAUDE.md#branch--pr-strategy-strict--kostenbeheersing):
|
||||
- **Eén branch op Scrum4Me**: `feat/M11-claude-questions` afgesplitst van `main` ná M10-merge
|
||||
- **Aparte branch op scrum4me-mcp**: `feat/M11-question-tools`
|
||||
- **Aparte branch op mcp**: `feat/M11-question-tools`
|
||||
- Commits chronologisch per stap met ST-code in titel:
|
||||
|
||||
```
|
||||
chore(M11): swap demo-active sprint from M10 to M11
|
||||
feat(ST-1101): add ClaudeQuestion model + notify_question_change trigger
|
||||
feat(ST-1102): add 4 MCP question tools (in scrum4me-mcp)
|
||||
feat(ST-1102): add 4 MCP question tools (in mcp)
|
||||
feat(ST-1103): add answerQuestion server action
|
||||
feat(ST-1104): add /api/realtime/notifications user-scoped SSE
|
||||
feat(ST-1104): filter entity='question' from solo-realtime stream
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ applies_to: [M9]
|
|||
|
||||
Eén "actief Product Backlog" per gebruiker, persistent op `User.active_product_id`. NavBar wordt: Producten | Product Backlog | Sprint | Solo | Todo's. Zonder actief PB zijn Backlog/Sprint/Solo disabled. Sprint is alleen klikbaar als er een sprint met status `ACTIVE` bestaat. Vervangt de bestaande `last_product`-cookieflow.
|
||||
|
||||
Backlog-entries: zie [scrum4me-backlog.md § M9](../scrum4me-backlog.md#m9-actief-product-backlog).
|
||||
Backlog-entries: zie [backlog.md § M9](../backlog.md#m9-actief-product-backlog).
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -29,7 +29,7 @@ Backlog-entries: zie [scrum4me-backlog.md § M9](../scrum4me-backlog.md#m9-actie
|
|||
3. `npx prisma migrate dev --name add_user_active_product_id`.
|
||||
|
||||
**Aandachtspunten**
|
||||
- `vendor/scrum4me`-submodule in repo `scrum4me-mcp` heeft hetzelfde schema. Na merge moet daar `prisma generate && tsc --noEmit` slagen, anders breekt de wekelijkse drift-check (`trig_015FFUnxjz9WMuhhWNGBQKFD`).
|
||||
- `vendor/scrum4me`-submodule in repo `mcp` heeft hetzelfde schema. Na merge moet daar `prisma generate && tsc --noEmit` slagen, anders breekt de wekelijkse drift-check (`trig_015FFUnxjz9WMuhhWNGBQKFD`).
|
||||
- Geen seed-wijziging nodig — `null` is correcte initiële staat.
|
||||
|
||||
**Verificatie**
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ const pbiIdsToMarkDone = candidatePbis
|
|||
|
||||
## Opvolgactie buiten deze repo
|
||||
|
||||
[`madhura68/scrum4me-mcp`](https://github.com/madhura68/scrum4me-mcp): de `create_pbi` tool kan straks optioneel `status` accepteren. Submodule (`vendor/scrum4me`) moet gesynced worden na merge zodat de drift-bewaking maandag groen blijft.
|
||||
[`madhura68/mcp`](https://github.com/madhura68/mcp): de `create_pbi` tool kan straks optioneel `status` accepteren. Submodule (`vendor/scrum4me`) moet gesynced worden na merge zodat de drift-bewaking maandag groen blijft.
|
||||
|
||||
## Verificatie (end-to-end)
|
||||
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ Drie-laagse bescherming:
|
|||
| ST-1110.5 | `feat(ST-1110.5)` | 12 component/pagina-bestanden |
|
||||
| ST-1110.5 tests | `test(ST-1110.5)` | `__tests__/api/pair-claim.test.ts`, `__tests__/api/pair-start.test.ts` |
|
||||
| ST-1110.6 | `test(ST-1110.6)` | `__tests__/proxy/demo-guard.test.ts` |
|
||||
| ST-1110.7 | `docs(ST-1110.7)` | `docs/scrum4me-architecture.md`, dit bestand |
|
||||
| ST-1110.7 | `docs(ST-1110.7)` | `docs/architecture.md`, dit bestand |
|
||||
|
||||
## Aandachtspunten toekomstige stories
|
||||
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ applies_to: [ST-1111]
|
|||
| ST-1111.2 API: ClaudeJob status mappers | `a1b1f69` |
|
||||
| ST-1111.3 Server actions: enqueue + cancel | `9d9fb4b` |
|
||||
| ST-1111.4 SSE: ClaudeJob events op solo-stream + initial state | `ece0aa9` |
|
||||
| ST-1111.5 MCP-tools (scrum4me-mcp repo — aparte PR) | — |
|
||||
| ST-1111.5 MCP-tools (mcp repo — aparte PR) | — |
|
||||
| ST-1111.6 UI: 'Voer uit' + cancel in TaskDetailDialog | `b9c65eb` |
|
||||
| ST-1111.7 UI: status-pill op SoloTaskCard | `dace427` |
|
||||
| ST-1111.8 Tests: mappers + actions | `2c2a246` |
|
||||
|
|
@ -50,7 +50,7 @@ Omdat `claude_jobs` geen row-trigger heeft (zoals `tasks` en `stories`), stuurt
|
|||
await prisma.$executeRaw`SELECT pg_notify('scrum4me_changes', ${JSON.stringify(payload)}::text)`
|
||||
```
|
||||
|
||||
Voordeel: expliciete controle over het payload-shape (met `type` i.p.v. `entity`). Nadeel: MCP-tools in de `scrum4me-mcp`-repo moeten hun eigen NOTIFY-aanroep hebben bij `update_job_status`.
|
||||
Voordeel: expliciete controle over het payload-shape (met `type` i.p.v. `entity`). Nadeel: MCP-tools in de `mcp`-repo moeten hun eigen NOTIFY-aanroep hebben bij `update_job_status`.
|
||||
|
||||
### SSE-routing
|
||||
|
||||
|
|
|
|||
|
|
@ -159,7 +159,7 @@ Plaatsing:
|
|||
|
||||
**Live updates:** bestaande `useClaudeJobsStore` (Zustand, populated uit SSE) — alleen `kind` toevoegen aan filter-helpers.
|
||||
|
||||
### Stap 6 — MCP-tools (`scrum4me-mcp` repo, aparte PR)
|
||||
### Stap 6 — MCP-tools (`mcp` repo, aparte PR)
|
||||
|
||||
**Wijziging 1 — bestaande tool uitbreiden:**
|
||||
|
||||
|
|
@ -211,10 +211,10 @@ Korte prompt-flow:
|
|||
1. `wait_for_job({ accept_kinds: ['PLANNING'], wait_seconds: 600 })` — claim
|
||||
2. Lees `planning_target` uit response (PBI of STORY) + `existing_*`
|
||||
3. **Lees lokale docs uit Scrum4Me-checkout:**
|
||||
- `docs/scrum4me-functional-spec.md` (functioneel kader)
|
||||
- `docs/scrum4me-architecture.md` (technisch kader)
|
||||
- `docs/functional-spec.md` (functioneel kader)
|
||||
- `docs/architecture.md` (technisch kader)
|
||||
- `docs/patterns/*.md` (relevante patterns op basis van target-titel/-beschrijving)
|
||||
- `docs/scrum4me-styling.md` als target UI-werk betreft
|
||||
- `docs/styling.md` als target UI-werk betreft
|
||||
4. Bedenk children:
|
||||
- Voor `STORY`-target: 3-7 taken met titel, korte beschrijving, `implementation_plan` (verwijst naar relevante patterns + bestanden), priority
|
||||
- Voor `PBI`-target: 2-5 stories met titel, beschrijving in user-story-format, acceptance_criteria, priority
|
||||
|
|
@ -236,7 +236,7 @@ Bij failure: `update_job_status({ status: 'FAILED', error })` + toast voor user.
|
|||
| Status-pill rendering per status | `__tests__/components/shared/planning-job-pill.test.tsx` |
|
||||
| Knop disabled-state in StoryDialog/PbiDialog bij actieve job | `__tests__/components/backlog/dialog-planning-button.test.tsx` |
|
||||
|
||||
MCP-tools testen in `scrum4me-mcp` repo (aparte PR).
|
||||
MCP-tools testen in `mcp` repo (aparte PR).
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -260,17 +260,17 @@ MCP-tools testen in `scrum4me-mcp` repo (aparte PR).
|
|||
| `components/backlog/pbi-list.tsx` | MODIFY | Status-pill op pbi-card |
|
||||
| `components/shared/planning-job-pill.tsx` | NEW | Generic pill-component |
|
||||
| `docs/patterns/claude-agent-roles.md` | NEW | Pattern-doc: één table, kind-enum, accept_kinds-arg, lokale agent-prompts |
|
||||
| `docs/scrum4me-architecture.md` | MODIFY | Sectie "Claude Agents" uitbreiden — twee rollen, schema, queue, prompts |
|
||||
| `docs/scrum4me-pbi-dialog.md` | MODIFY | Sectie "Speciale gedragingen → Planning-trigger" toevoegen |
|
||||
| `docs/scrum4me-story-dialog.md` | MODIFY | Idem |
|
||||
| `docs/scrum4me-task-dialog.md` | MODIFY | Vermelden dat tasks ook door planning-agent kunnen ontstaan |
|
||||
| `docs/architecture.md` | MODIFY | Sectie "Claude Agents" uitbreiden — twee rollen, schema, queue, prompts |
|
||||
| `docs/pbi-dialog.md` | MODIFY | Sectie "Speciale gedragingen → Planning-trigger" toevoegen |
|
||||
| `docs/story-dialog.md` | MODIFY | Idem |
|
||||
| `docs/task-dialog.md` | MODIFY | Vermelden dat tasks ook door planning-agent kunnen ontstaan |
|
||||
| `__tests__/actions/claude-jobs-planning.test.ts` | NEW | |
|
||||
| `__tests__/lib/claude-job-status.test.ts` | MODIFY | `kind`-mapping testen |
|
||||
| `__tests__/api/realtime-solo-planning.test.ts` | NEW | |
|
||||
| `__tests__/components/shared/planning-job-pill.test.tsx` | NEW | |
|
||||
| `__tests__/components/backlog/dialog-planning-button.test.tsx` | NEW | |
|
||||
|
||||
### scrum4me-mcp repo (aparte PR, na Scrum4Me-merge)
|
||||
### mcp repo (aparte PR, na Scrum4Me-merge)
|
||||
|
||||
| File | Action |
|
||||
|---|---|
|
||||
|
|
@ -290,12 +290,12 @@ MCP-tools testen in `scrum4me-mcp` repo (aparte PR).
|
|||
4. **Status-pill component + tests** (Stap 5a) — losstaande primitive
|
||||
5. **Trigger-knoppen in StoryDialog + PbiDialog** (Stap 5b) — UI-trigger werkt, agent nog niet
|
||||
6. **Pause** — verifieer end-to-end met handmatig insert in `claude_jobs` (kind=PLANNING) of via mock-MCP-call
|
||||
7. **MCP-PR in scrum4me-mcp repo** (Stap 6) — `wait_for_job` uitbreiden, types updaten
|
||||
7. **MCP-PR in mcp repo** (Stap 6) — `wait_for_job` uitbreiden, types updaten
|
||||
8. **Lokaal `/generate-plan`-command schrijven + testen** (Stap 7) — agent claimt, leest, schrijft
|
||||
9. **End-to-end test** (Stap 8) — story → klik knop → agent rendert taken → SSE → live in TaskPanel
|
||||
10. **Docs-PR** — pattern-doc `claude-agent-roles.md`, architecture-update, dialog-profielen aanvullen
|
||||
|
||||
Branch-naming: `feat/M15-planning-agent` (Scrum4Me) + `feat/planning-agent` (scrum4me-mcp).
|
||||
Branch-naming: `feat/M15-planning-agent` (Scrum4Me) + `feat/planning-agent` (mcp).
|
||||
|
||||
Conform CLAUDE.md "branch-per-milestone": commits accumuleren lokaal, pushen pas na gebruikerstest.
|
||||
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ Doel: CLAUDE.md weerspiegelt de werkelijke 2026-04-27 workflow zonder dat het ee
|
|||
1. Workflow-sectie — MCP-first met expliciete fallback
|
||||
2. Conventies — uitbreiden met status-enums, foutcodes, test-pariteit, entity codes in commits
|
||||
3. Implementatiepatronen — rij voor `lib/task-status.ts` en `lib/code-server.ts`-boundary toevoegen
|
||||
4. Nieuwe sectie "MCP-integratie" — wat staat er, hoe te gebruiken, link naar scrum4me-mcp repo
|
||||
4. Nieuwe sectie "MCP-integratie" — wat staat er, hoe te gebruiken, link naar mcp repo
|
||||
5. Definition of Done — markeer expliciet als MVP-scope; M7 is post-MVP en heeft eigen acceptatie
|
||||
|
||||
**Niet**:
|
||||
|
|
@ -45,7 +45,7 @@ Voeg toe onder de bestaande tabel:
|
|||
|
||||
| Document | Gebruik voor |
|
||||
|---|---|
|
||||
| `https://github.com/madhura68/scrum4me-mcp` | MCP-server repo: tools, prompts, schema-sync workflow |
|
||||
| `https://github.com/madhura68/mcp` | MCP-server repo: tools, prompts, schema-sync workflow |
|
||||
|
||||
(`docs/API.md` staat er al — laten staan.)
|
||||
|
||||
|
|
@ -65,7 +65,7 @@ Vervang de 7-stap manual loop door een dual-track:
|
|||
```
|
||||
|
||||
**Track B — manueel (Codex of zonder MCP)**:
|
||||
- Lees task in `docs/scrum4me-backlog.md`
|
||||
- Lees task in `docs/backlog.md`
|
||||
- Volg verder de bestaande 7-stappen-loop
|
||||
|
||||
### 3. Sectie "Implementatiepatronen" — uitbreiden
|
||||
|
|
@ -93,7 +93,7 @@ Korte sectie (~15 regels):
|
|||
```markdown
|
||||
## MCP-integratie
|
||||
|
||||
Scrum4Me heeft een eigen MCP-server (repo: `madhura68/scrum4me-mcp`)
|
||||
Scrum4Me heeft een eigen MCP-server (repo: `madhura68/mcp`)
|
||||
die deze API exposed als native tools voor Claude Code.
|
||||
|
||||
### Tools beschikbaar in Claude Code
|
||||
|
|
@ -110,7 +110,7 @@ die deze API exposed als native tools voor Claude Code.
|
|||
### Schema-drift bewaking
|
||||
Wekelijks (maandag 08:00 Amsterdam) draait een remote agent
|
||||
(`trig_015FFUnxjz9WMuhhWNGBQKFD`) die `vendor/scrum4me` syncet en
|
||||
`prisma:generate + typecheck` uitvoert in scrum4me-mcp. Als die agent
|
||||
`prisma:generate + typecheck` uitvoert in mcp. Als die agent
|
||||
een drift-rapport opent, hoort dat **vóór** een Scrum4Me-PR met
|
||||
schema-wijziging gemerged kan worden — zodat de MCP-server niet
|
||||
stilletjes breekt op runtime.
|
||||
|
|
@ -118,7 +118,7 @@ stilletjes breekt op runtime.
|
|||
|
||||
### 6. Sectie "Definition of Done" — kop verduidelijken
|
||||
|
||||
Wijzig `## Definition of Done` → `## Definition of Done (MVP)` en voeg eronder een korte zin toe: *"M7 (MCP-server) is post-MVP en heeft eigen acceptatie in `docs/scrum4me-backlog.md`."*
|
||||
Wijzig `## Definition of Done` → `## Definition of Done (MVP)` en voeg eronder een korte zin toe: *"M7 (MCP-server) is post-MVP en heeft eigen acceptatie in `docs/backlog.md`."*
|
||||
|
||||
## Bijwerken van auditdoc
|
||||
|
||||
|
|
@ -127,7 +127,7 @@ Voeg een sectie aan `docs/agent-instruction-audit.md` toe (datum: 2026-04-27) me
|
|||
- Aanleiding: ST-509/511/512/513 + M7 + PR #2 review-saga
|
||||
- Gecontroleerde wijzigingen: zelfde tabel-stijl als 2026-04-25
|
||||
- Nieuwe regels: status-enums op API-grens, error-code split 400/422, test-pariteit bij contract-wijziging, client/server module-boundary
|
||||
- Verwijzing naar scrum4me-mcp repo en schema-drift cron
|
||||
- Verwijzing naar mcp repo en schema-drift cron
|
||||
|
||||
## Volgorde van uitvoering
|
||||
|
||||
|
|
@ -140,7 +140,7 @@ Voeg een sectie aan `docs/agent-instruction-audit.md` toe (datum: 2026-04-27) me
|
|||
## Wat het NIET oplost
|
||||
|
||||
- `AGENTS.md` (Codex) blijft achter; los aan te pakken indien gewenst
|
||||
- Eventuele drift in `docs/scrum4me-functional-spec.md` rond status-enums — niet onderzocht; te volgen bij volgende audit
|
||||
- Eventuele drift in `docs/functional-spec.md` rond status-enums — niet onderzocht; te volgen bij volgende audit
|
||||
- Geen check of de losse pattern-files in `docs/patterns/` nog kloppen — ook volgende audit
|
||||
|
||||
## Geschatte size
|
||||
|
|
|
|||
|
|
@ -17,12 +17,12 @@ Eén commando dat een specifieke milestone (PBI + stories + tasks) uit de backlo
|
|||
|
||||
Twee bronnen denkbaar:
|
||||
- **`.Plans/<datum>-<slug>.md`** — freeform plan-tekst, niet gestructureerd, niet gecommit
|
||||
- **`docs/scrum4me-backlog.md`** — al strict gestructureerd, gecommit, single source of truth voor alle bestaande seed-pipelines
|
||||
- **`docs/backlog.md`** — al strict gestructureerd, gecommit, single source of truth voor alle bestaande seed-pipelines
|
||||
|
||||
Voorstel: het script leest de **backlog**. Workflow blijft natuurlijk:
|
||||
|
||||
1. Plan schrijven naar `.Plans/<naam>.md` (lokaal, draft)
|
||||
2. Milestone-sectie + stories formaliseren in `docs/scrum4me-backlog.md` (PR)
|
||||
2. Milestone-sectie + stories formaliseren in `docs/backlog.md` (PR)
|
||||
3. Na merge: `npm run db:insert-milestone -- M8 [--product SCRUM4ME]`
|
||||
|
||||
Eén canonical bron, geen ambiguïteit, en de bestaande parser doet 90% van het werk al.
|
||||
|
|
@ -49,7 +49,7 @@ Default product code: SCRUM4ME
|
|||
Logica:
|
||||
1. Parse args; valideer dat milestone-key matcht `^M[\d.]+$`
|
||||
2. `loadBacklog(repoRoot, { strict: false })`
|
||||
3. Zoek milestone op `key`; faal helder met "milestone <key> not found in docs/scrum4me-backlog.md" als ie er niet in staat
|
||||
3. Zoek milestone op `key`; faal helder met "milestone <key> not found in docs/backlog.md" als ie er niet in staat
|
||||
4. Lookup product via `code` (default `SCRUM4ME`); faal als niet gevonden
|
||||
5. Upsert PBI:
|
||||
- `where: { product_id_code: { product_id, code: milestone.key } }`
|
||||
|
|
|
|||
|
|
@ -26,13 +26,13 @@ Vercel-deploys ondersteunen geen stateful native WebSockets in serverless of Edg
|
|||
**Voorgestelde keuze: A — SSE met Postgres LISTEN/NOTIFY.**
|
||||
|
||||
Reden:
|
||||
- Eén bron van waarheid: de DB. Web-mutations, REST-API én MCP schrijven allemaal naar Postgres; een trigger NOTIFY't onafhankelijk van de schrijver. Geen coördinatie nodig met scrum4me-mcp.
|
||||
- Eén bron van waarheid: de DB. Web-mutations, REST-API én MCP schrijven allemaal naar Postgres; een trigger NOTIFY't onafhankelijk van de schrijver. Geen coördinatie nodig met mcp.
|
||||
- Geen externe dienst, geen extra dep, geen kosten erbij.
|
||||
- Neon ondersteunt LISTEN/NOTIFY op directe verbindingen. `DIRECT_URL` is al geconfigureerd.
|
||||
- Naar de client toe: éénrichtingsverkeer — server pusht events, client doet mutaties via bestaande Server Actions/REST. SSE volstaat dus; we hoeven geen full-duplex.
|
||||
- Voor de gebruiker is het verschil onmerkbaar: realtime updates komen binnen, browsers ondersteunen `EventSource` native.
|
||||
|
||||
We kiezen B (polling) niet omdat het meer DB-load geeft en je Pusher-achtige latency niet haalt. We kiezen C niet vanwege coördinatieoverhead met de MCP-server (extra publish-step in scrum4me-mcp).
|
||||
We kiezen B (polling) niet omdat het meer DB-load geeft en je Pusher-achtige latency niet haalt. We kiezen C niet vanwege coördinatieoverhead met de MCP-server (extra publish-step in mcp).
|
||||
|
||||
## Architectuur
|
||||
|
||||
|
|
@ -132,7 +132,7 @@ Strategie: combineer (a) trigger zet `product_id` en `assignee_id` in de payload
|
|||
- Done when: open Solo paneel in twee tabs, mutate task in tab A, zie status flippen in tab B binnen 1–2s zonder refresh
|
||||
|
||||
### ST-806 Documentatie + acceptatietest
|
||||
- Update `docs/scrum4me-architecture.md`: nieuwe sectie "Realtime updates" met diagram en filtering-regels
|
||||
- Update `docs/architecture.md`: nieuwe sectie "Realtime updates" met diagram en filtering-regels
|
||||
- Update `CLAUDE.md`: vermelding dat Solo Paneel realtime is + dat MCP-writes vanzelf doorkomen
|
||||
- Update `docs/API.md`: korte note over `/api/realtime/solo` (Bearer auth, SSE format)
|
||||
- E2E-acceptatie: lijst van scenario's (zelfde gebruiker twee tabs, MCP-write, REST-write, story-claim, network-flap) handmatig getest
|
||||
|
|
@ -140,7 +140,7 @@ Strategie: combineer (a) trigger zet `product_id` en `assignee_id` in de payload
|
|||
|
||||
## Backlog-edits
|
||||
|
||||
In `docs/scrum4me-backlog.md`:
|
||||
In `docs/backlog.md`:
|
||||
|
||||
1. **Milestone-overzicht** — rij toevoegen onder M7:
|
||||
```
|
||||
|
|
@ -152,9 +152,9 @@ In `docs/scrum4me-backlog.md`:
|
|||
## Wijzigingen elders
|
||||
|
||||
- `.env.example` blijft ongewijzigd (DIRECT_URL stond er al)
|
||||
- `docs/scrum4me-architecture.md` — sectie "Realtime updates" met diagram en regel "alle UPDATE-triggers zitten op tasks/stories; nieuwe entiteiten erbij vragen om uitbreiding van de trigger-functie"
|
||||
- `docs/architecture.md` — sectie "Realtime updates" met diagram en regel "alle UPDATE-triggers zitten op tasks/stories; nieuwe entiteiten erbij vragen om uitbreiding van de trigger-functie"
|
||||
- Geen wijziging in `lib/code.ts` of `lib/code-server.ts` — dit is server-only realtime
|
||||
- Schema-drift agent in scrum4me-mcp pikt de migratie automatisch op (geen Prisma-modelwijziging maar wel een nieuwe migratie); typecheck blijft groen omdat we geen Prisma Client-wijziging hebben
|
||||
- Schema-drift agent in mcp pikt de migratie automatisch op (geen Prisma-modelwijziging maar wel een nieuwe migratie); typecheck blijft groen omdat we geen Prisma Client-wijziging hebben
|
||||
|
||||
## Risico's en mitigaties
|
||||
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ Elke stap kost tokens en latency. Als de bestandsboom, naamgeving of inhoud ondu
|
|||
| Plek | Bestanden | Regels totaal | Grootste bestand |
|
||||
|---|---:|---:|---|
|
||||
| Root (CLAUDE.md, README.md, AGENTS.md, Brainstorm.md) | 4 | 679 | CLAUDE.md (340) |
|
||||
| `docs/` (root, exclusief subdirs) | 13 | 5.873 | scrum4me-architecture.md (1.247) |
|
||||
| `docs/` (root, exclusief subdirs) | 13 | 5.873 | architecture.md (1.247) |
|
||||
| `docs/patterns/` | 11 | 1.013 | dialog.md (387) |
|
||||
| `docs/plans/` | 8 | 2.121 | M10-qr-pairing-login.md (885) |
|
||||
| `.Plans/` (parallelle plan-historie) | 3 | ~600 | — |
|
||||
|
|
@ -60,23 +60,23 @@ Bij elke turn die met `CLAUDE.md` start, wordt minimaal 340 regels orientation i
|
|||
|
||||
| Bestand | Regels | Waar het thuishoort |
|
||||
|---|---:|---|
|
||||
| `scrum4me-architecture.md` | 1.247 | `docs/architecture/` — splitsen (zie §4) |
|
||||
| `scrum4me-functional-spec.md` | 650 | `docs/specs/functional.md` |
|
||||
| `scrum4me-backlog.md` | 751 | `docs/backlog/index.md` |
|
||||
| `scrum4me-product-backlog.md` | 454 | `docs/backlog/product-historical.md` (referentie, zie noot in CLAUDE.md) |
|
||||
| `scrum4me-personas.md` | 138 | `docs/specs/personas.md` |
|
||||
| `scrum4me-styling.md` | 670 | `docs/design/styling.md` |
|
||||
| `architecture.md` | 1.247 | `docs/architecture/` — splitsen (zie §4) |
|
||||
| `functional-spec.md` | 650 | `docs/specs/functional.md` |
|
||||
| `backlog.md` | 751 | `docs/backlog/index.md` |
|
||||
| `product-backlog.md` | 454 | `docs/backlog/product-historical.md` (referentie, zie noot in CLAUDE.md) |
|
||||
| `personas.md` | 138 | `docs/specs/personas.md` |
|
||||
| `styling.md` | 670 | `docs/design/styling.md` |
|
||||
| `MD3_Color_Scheme_Documentation.md` | 941 | `docs/design/md3-color-scheme.md` (overlapt deels met `styling.md` — kandidaat voor merge) |
|
||||
| `scrum4me-test-plan.md` | 454 | `docs/qa/api-test-plan.md` |
|
||||
| `scrum4me-pbi-dialog.md` | 120 | `docs/specs/dialogs/pbi.md` |
|
||||
| `scrum4me-story-dialog.md` | 163 | `docs/specs/dialogs/story.md` |
|
||||
| `scrum4me-task-dialog.md` | 127 | `docs/specs/dialogs/task.md` |
|
||||
| `test-plan.md` | 454 | `docs/qa/api-test-plan.md` |
|
||||
| `pbi-dialog.md` | 120 | `docs/specs/dialogs/pbi.md` |
|
||||
| `story-dialog.md` | 163 | `docs/specs/dialogs/story.md` |
|
||||
| `task-dialog.md` | 127 | `docs/specs/dialogs/task.md` |
|
||||
| `solo-paneel-spec.md` | 771 | `docs/specs/solo-panel.md` |
|
||||
| `API.md` | 520 | `docs/api/rest-contract.md` |
|
||||
| `agent-instruction-audit.md` | 173 | `docs/decisions/agent-instructions.md` (ADR-stijl) |
|
||||
| `erd.svg`, `icons.html` | — | `docs/assets/` |
|
||||
|
||||
**Patroon dat opvalt:** alles met prefix `scrum4me-` — dat prefix is overbodig, je staat al in `docs/` van de Scrum4Me-repo. Verwijderen scheelt visuele ruis bij `ls`.
|
||||
**Patroon dat opvalt:** alles met prefix `` — dat prefix is overbodig, je staat al in `docs/` van de Scrum4Me-repo. Verwijderen scheelt visuele ruis bij `ls`.
|
||||
|
||||
**Inconsistente capitalization:** één bestand `MD3_Color_Scheme_Documentation.md` (snake + UpperCamel), de rest kebab. Eén bestand `API.md` (UPPER), de rest lowercase.
|
||||
|
||||
|
|
@ -100,7 +100,7 @@ Bij elke turn die met `CLAUDE.md` start, wordt minimaal 340 regels orientation i
|
|||
|
||||
### 2.6 Cross-referenties en dode links
|
||||
|
||||
- CLAUDE.md verwijst naar `docs/scrum4me-architecture.md#demo-user-policy` — die anchor bestaat (regel 1068 `## Demo-user policy (ST-1110)`), dus dit is OK; maar er bestaat geen lint die garandeert dat dit zo blijft als de header verandert.
|
||||
- CLAUDE.md verwijst naar `docs/architecture.md#demo-user-policy` — die anchor bestaat (regel 1068 `## Demo-user policy (ST-1110)`), dus dit is OK; maar er bestaat geen lint die garandeert dat dit zo blijft als de header verandert.
|
||||
- ST-1109-pbi-status.md verwijst naar `~/.claude/plans/welke-rioriteiten-heeft-een-mighty-shell.md` — externe locatie buiten de repo, plus typo "rioriteiten". Een agent kan die niet lezen.
|
||||
- README.md verwijst niet naar CLAUDE.md/AGENTS.md (mensbezoekers vinden de agent-instructie laag niet).
|
||||
- Geen enkel doc heeft een "Zie ook"-blok aan de onderkant. Cross-navigatie tussen patroon ↔ spec ↔ plan moet de agent zelf reconstrueren.
|
||||
|
|
@ -148,7 +148,7 @@ In volgorde van belangrijkheid:
|
|||
│ │ └── project-structure.md (uit §Projectstructuur)
|
||||
│ │
|
||||
│ ├── specs/
|
||||
│ │ ├── functional.md (huidige scrum4me-functional-spec.md)
|
||||
│ │ ├── functional.md (huidige functional-spec.md)
|
||||
│ │ ├── personas.md
|
||||
│ │ ├── solo-panel.md
|
||||
│ │ └── dialogs/
|
||||
|
|
@ -190,8 +190,8 @@ In volgorde van belangrijkheid:
|
|||
│ │ └── 0005-agent-instructions.md (was agent-instruction-audit.md)
|
||||
│ │
|
||||
│ ├── backlog/
|
||||
│ │ ├── index.md (huidige scrum4me-backlog.md)
|
||||
│ │ └── product-historical.md (huidige scrum4me-product-backlog.md)
|
||||
│ │ ├── index.md (huidige backlog.md)
|
||||
│ │ └── product-historical.md (huidige product-backlog.md)
|
||||
│ │
|
||||
│ ├── plans/
|
||||
│ │ ├── M9-active-product-backlog.md
|
||||
|
|
@ -219,7 +219,7 @@ In volgorde van belangrijkheid:
|
|||
└── docs/patterns/test.md (WEG — junk)
|
||||
```
|
||||
|
||||
**Prefix `scrum4me-` overal weg.** Je staat in de Scrum4Me-repo.
|
||||
**Prefix `` overal weg.** Je staat in de Scrum4Me-repo.
|
||||
**Alle bestandsnamen kebab-case, lowercase.** Geen `API.md`, geen `MD3_…`.
|
||||
|
||||
---
|
||||
|
|
@ -344,7 +344,7 @@ Elke fase is een eigen branch + PR. Geen big-bang. Volgorde gekozen zodat agents
|
|||
|
||||
### Fase 2 — Naamgeving normaliseren
|
||||
|
||||
- `scrum4me-` prefix overal weg via `git mv` (1 commit per groep — backlog/specs/personas/styling/dialogs).
|
||||
- `` prefix overal weg via `git mv` (1 commit per groep — backlog/specs/personas/styling/dialogs).
|
||||
- `API.md` → `api/rest-contract.md`.
|
||||
- `MD3_Color_Scheme_Documentation.md` → `design/md3-color-scheme.md`.
|
||||
- `Tweede Claude Agent — Planning Agent.md` → `plans/tweede-claude-agent-planning.md`.
|
||||
|
|
@ -359,7 +359,7 @@ Elke fase is een eigen branch + PR. Geen big-bang. Volgorde gekozen zodat agents
|
|||
|
||||
### Fase 4 — Splits monolithische docs
|
||||
|
||||
- `scrum4me-architecture.md` (1.247 r) opdelen in 6 docs onder `docs/architecture/`.
|
||||
- `architecture.md` (1.247 r) opdelen in 6 docs onder `docs/architecture/`.
|
||||
- Originele file wordt 20 regels: titel + "Dit document is opgesplitst — zie:" + lijst met nieuwe paden.
|
||||
- Idem voor `solo-paneel-spec.md` als dat onderdelen heeft die naar specs én patterns kunnen.
|
||||
|
||||
|
|
@ -403,7 +403,7 @@ Elke fase is een eigen branch + PR. Geen big-bang. Volgorde gekozen zodat agents
|
|||
| Doc-bestanden zonder front-matter | 36 | 0 |
|
||||
| Junk-bestanden | 3 (test.md, Brainstorm.md, .Plans/) | 0 |
|
||||
| Bestandsnamen met spaties of niet-ASCII | 1 | 0 |
|
||||
| Filename-prefixen die geen informatie toevoegen (`scrum4me-`) | 8 | 0 |
|
||||
| Filename-prefixen die geen informatie toevoegen (``) | 8 | 0 |
|
||||
| Documenten >800 regels | 4 | 0 (na splitsing) |
|
||||
| Dode interne links | onbekend | 0 (na lint) |
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
spec_version: 1
|
||||
spec_type: scrum4me-pbi-bulk-create
|
||||
spec_type: pbi-bulk-create
|
||||
generated_at: 2026-05-02
|
||||
language: en
|
||||
notes: |
|
||||
|
|
@ -45,12 +45,12 @@ no index, no machine-readable status. After this PBI, the agent reads
|
|||
`AGENTS.md`) carries YAML front-matter with at minimum
|
||||
`title`, `status`, `audience`, `language`, `last_updated`. Add
|
||||
`related`, `when_to_read`, `do_not_read_for` where useful.
|
||||
- **Naming:** lowercase kebab-case. No `scrum4me-` prefix. No spaces in
|
||||
- **Naming:** lowercase kebab-case. No `` prefix. No spaces in
|
||||
filenames. No UPPER. Files matching `_*.md` are personal sidecar and
|
||||
excluded from the index.
|
||||
- **Commits:** one commit per logical layer. Use `docs(<story-slug>):`
|
||||
as the prefix when no ST-code applies. Reference the matching story
|
||||
slug from this spec (e.g. `docs(naming): drop scrum4me- prefix`).
|
||||
slug from this spec (e.g. `docs(naming): drop prefix`).
|
||||
- **Pushing:** never push without explicit user approval. Local commits
|
||||
on the feature branch only. The branch convention is
|
||||
`feat/docs-restructure-<phase-slug>` (one branch per story).
|
||||
|
|
@ -135,7 +135,7 @@ pbi:
|
|||
- English for new/touched docs (UI strings stay Dutch).
|
||||
- YAML front-matter on every doc (title, status, audience, language,
|
||||
last_updated; related/when_to_read/do_not_read_for where useful).
|
||||
- kebab-case, lowercase, no scrum4me- prefix, no spaces.
|
||||
- kebab-case, lowercase, no prefix, no spaces.
|
||||
- One commit per logical layer (`docs(<story-slug>):` prefix).
|
||||
- No pushes without user approval.
|
||||
- Update every internal link in the same commit as a rename.
|
||||
|
|
@ -250,11 +250,11 @@ pbi:
|
|||
- slug: naming-normalization
|
||||
title: "Phase 2 — Normalize file naming"
|
||||
description: |
|
||||
Drop the `scrum4me-` prefix. Lowercase everything. Remove the
|
||||
Drop the `` prefix. Lowercase everything. Remove the
|
||||
space + em-dash filename. Rename Next.js 16 middleware to proxy.
|
||||
After this story all filenames are kebab-case and grep-friendly.
|
||||
acceptance_criteria: |
|
||||
- No file under docs/ starts with `scrum4me-`.
|
||||
- No file under docs/ starts with ``.
|
||||
- No file under docs/ uses UPPER, snake_case, or contains spaces.
|
||||
- docs/patterns/middleware.md is renamed to docs/patterns/proxy.md.
|
||||
- Every internal link to renamed files is updated in the same
|
||||
|
|
@ -263,24 +263,24 @@ pbi:
|
|||
priority: 2
|
||||
tasks:
|
||||
|
||||
- title: "Rename docs/scrum4me-* (drop prefix)"
|
||||
- title: "Rename docs/* (drop prefix)"
|
||||
description: "8 spec/backlog/styling files at docs/ root."
|
||||
implementation_plan: |
|
||||
git mv docs/scrum4me-architecture.md docs/architecture.md
|
||||
git mv docs/scrum4me-backlog.md docs/backlog.md
|
||||
git mv docs/scrum4me-functional-spec.md docs/functional.md
|
||||
git mv docs/scrum4me-pbi-dialog.md docs/pbi-dialog.md
|
||||
git mv docs/scrum4me-personas.md docs/personas.md
|
||||
git mv docs/scrum4me-product-backlog.md docs/product-backlog.md
|
||||
git mv docs/scrum4me-story-dialog.md docs/story-dialog.md
|
||||
git mv docs/scrum4me-styling.md docs/styling.md
|
||||
git mv docs/scrum4me-task-dialog.md docs/task-dialog.md
|
||||
git mv docs/scrum4me-test-plan.md docs/test-plan.md
|
||||
git mv docs/architecture.md docs/architecture.md
|
||||
git mv docs/backlog.md docs/backlog.md
|
||||
git mv docs/functional-spec.md docs/functional.md
|
||||
git mv docs/pbi-dialog.md docs/pbi-dialog.md
|
||||
git mv docs/personas.md docs/personas.md
|
||||
git mv docs/product-backlog.md docs/product-backlog.md
|
||||
git mv docs/story-dialog.md docs/story-dialog.md
|
||||
git mv docs/styling.md docs/styling.md
|
||||
git mv docs/task-dialog.md docs/task-dialog.md
|
||||
git mv docs/test-plan.md docs/test-plan.md
|
||||
# update every internal link
|
||||
grep -rln "scrum4me-" docs/ CLAUDE.md AGENTS.md README.md \
|
||||
| xargs sed -i '' 's|scrum4me-||g'
|
||||
grep -rln "" docs/ CLAUDE.md AGENTS.md README.md \
|
||||
| xargs sed -i '' 's|||g'
|
||||
npm run docs:index
|
||||
commit: docs(naming): drop scrum4me- prefix from doc filenames
|
||||
commit: docs(naming): drop prefix from doc filenames
|
||||
priority: 2
|
||||
|
||||
- title: "Lowercase API.md and MD3 file"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue