Phase 2 — Normalize file naming (#59)

* docs(naming): drop scrum4me- prefix from doc filenames

Rename 10 docs/scrum4me-*.md files to unprefixed kebab-case names.
Update every internal link in docs/, CLAUDE.md, AGENTS.md, README.md.

* docs(naming): lowercase API.md and MD3 filenames

Rename docs/API.md → docs/api.md and
docs/MD3_Color_Scheme_Documentation.md → docs/md3-color-scheme.md.
Update all internal links across 7 files.

* docs(naming): rename plan file to kebab-case ASCII

Rename "docs/plans/Tweede Claude Agent — Planning Agent.md"
→ docs/plans/tweede-claude-agent-planning.md. No external links needed updating.

* docs(naming): rename middleware.md to proxy.md (next 16)

docs/patterns/middleware.md → docs/patterns/proxy.md following
the Next.js 16 proxy.ts rename. Update link in CLAUDE.md.

* docs(naming): polish CLAUDE.md doc-index after renames

Fix doubled scrum4me-scrum4me-mcp repo references (cascade from
prior sed) in CLAUDE.md, docs/architecture.md, backlog.md,
agent-instruction-audit.md, and plans/ST-1109. Update
'Middleware' label to 'Proxy middleware' in patterns table.
This commit is contained in:
Janpeter Visser 2026-05-03 03:00:47 +02:00 committed by GitHub
parent dc3832ad54
commit e10f8f81bc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
27 changed files with 101 additions and 101 deletions

View file

@ -7,8 +7,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.md § F-01b](../functional.md#f-01b-inloggen-via-mobiel-qr-pairing).
**Implementatie-volgorde** (commit-strategy uit CLAUDE.md):
@ -652,7 +652,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
@ -767,7 +767,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.
@ -788,17 +788,17 @@ ST-1006 staat bij de API-laag (niet bij UI) omdat het een Route Handler is; ST-1
## ST-1008 — Documentatie + acceptatietest
**Bestanden**
- `docs/API.md` — drie nieuwe endpoints
- `docs/scrum4me-architecture.md` — sectie "QR-pairing flow" + threat-model
- `docs/api.md` — drie nieuwe endpoints
- `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
**Stappen**
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.
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
@ -826,7 +826,7 @@ 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**
@ -857,7 +857,7 @@ feat(ST-1005): add mobile pair confirmation page with hash-fragment client islan
feat(ST-1006): add /api/auth/pair/claim with atomic consume
chore(ST-1007): add qrcode.react dependency
feat(ST-1007): add QR login button on /login with SSE listener
docs(ST-1008): document QR-pairing endpoints in API.md
docs(ST-1008): document QR-pairing endpoints in api.md
docs(ST-1008): add QR-pairing flow and threat-model to architecture
docs(ST-1008): add qr-login pattern doc
```

View file

@ -4,7 +4,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
@ -279,7 +279,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"`
@ -369,18 +369,18 @@ Backlog-entries: zie [scrum4me-backlog.md § M11](../scrum4me-backlog.md#m11-cla
## ST-1108 — Documentatie + acceptatietest
**Bestanden**
- `docs/API.md` — secties "SSE — Notifications" + "Cron — Expire questions"
- `docs/scrum4me-architecture.md` — sectie "Vraag-antwoord-kanaal" met sequence-diagram
- `docs/api.md` — secties "SSE — Notifications" + "Cron — Expire questions"
- `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
@ -430,7 +430,7 @@ feat(ST-1105): add NotificationsBell + Sheet + AnswerModal
chore(ST-1107): add CRON_SECRET to env schema
feat(ST-1107): add /api/cron/expire-questions handler
feat(ST-1107): wire vercel.ts cron entry
docs(ST-1108): document notifications SSE + cron in API.md
docs(ST-1108): document notifications SSE + cron in api.md
docs(ST-1108): add vraag-antwoord-kanaal flow to architecture
docs(ST-1108): add claude-question-channel pattern doc
chore(ST-1108): backlog M11 + parser ACTIVE-flip

View file

@ -2,7 +2,7 @@
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).
---

View file

@ -52,7 +52,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

View file

@ -202,10 +202,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.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
@ -251,10 +251,10 @@ 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 | |