docs(taxonomy): move spec files into docs/specs/

This commit is contained in:
Janpeter Visser 2026-05-03 00:55:11 +02:00
parent e56a038b4d
commit 2e47bda28e
14 changed files with 37 additions and 36 deletions

View file

@ -30,7 +30,7 @@ Read `CLAUDE.md` and the relevant files in `docs/` before changing behavior. The
When changing behavior, API responses, dependencies, environment variables, deployment behavior, or analytics, update the matching docs in the same change:
- `README.md` for setup, dependencies, deployment, and API overview.
- `docs/functional.md` for user-facing/API requirements.
- `docs/specs/functional.md` for user-facing/API requirements.
- `docs/architecture.md` for stack, access model, data model, env vars, and deployment.
- `docs/patterns/` when a reusable implementation rule changes.
- `CLAUDE.md` and this file when an agent instruction would have prevented the issue.

View file

@ -24,10 +24,10 @@ Lees het relevante document voordat je aan een feature begint. Nooit gokken over
| Document | Gebruik voor |
|---|---|
| `docs/functional.md` | Acceptatiecriteria, randgevallen, user flows |
| `docs/specs/functional.md` | Acceptatiecriteria, randgevallen, user flows |
| `docs/architecture.md` | Stack, datamodel, Prisma schema, Zustand stores |
| `docs/backlog.md` | Welke task bouwen, volgorde, "done when"-criteria |
| `docs/personas.md` | Lars (primair), Dina, Remi — gebruik bij UI-beslissingen |
| `docs/specs/personas.md` | Lars (primair), Dina, Remi — gebruik bij UI-beslissingen |
| `docs/product-backlog.md` | Historische domein-backlog (referentie); seed wordt sinds ST-004 gegenereerd uit `backlog.md` via `prisma/seed-data/parse-backlog.ts` |
| `docs/api.md` | REST-API contract voor Claude Code — endpoints, status-enums, foutcodes, voorbeeld-curls |
| `docs/styling.md` | **Lees dit voor elk component** — MD3-kleuren, shadcn patronen |
@ -119,7 +119,7 @@ Lees het relevante patroon vóór je begint. Nooit uit het hoofd schrijven.
| Proxy (route protection) | `docs/patterns/proxy.md` |
| QR-pairing (unauth-SSE + pre-auth cookie) | `docs/patterns/qr-login.md` |
| Bidirectionele async-comms MCP-agent ↔ user | `docs/patterns/claude-question-channel.md` |
| **Entity Dialog (verplicht voor élke create/edit/detail-dialog)** | `docs/patterns/dialog.md` — bron-of-truth; per entiteit één profile-doc (bv. `docs/task-dialog.md`) |
| **Entity Dialog (verplicht voor élke create/edit/detail-dialog)** | `docs/patterns/dialog.md` — bron-of-truth; per entiteit één profile-doc (bv. `docs/specs/dialogs/task.md`) |
| Status-enum mapping (DB ↔ API) | `lib/task-status.ts` |
| Client/server module-boundary | `*-server.ts` bevat DB-calls of node-only deps; `*.ts` is pure (client-safe). Nooit `import { ... } from '@/lib/foo-server'` in een client-component, anders krijg je `Module not found: 'dns'`/`'pg'`-style runtime fouten |

View file

@ -279,7 +279,7 @@ De productieomgeving is gericht op Vercel + Neon.
### Documentatie
- [Functionele specificatie](docs/functional.md)
- [Functionele specificatie](docs/specs/functional.md)
- [Technische architectuur](docs/architecture.md)
- [Backlog](docs/backlog.md)
- [Agent-instructie audit](docs/agent-instruction-audit.md)

View file

@ -12,7 +12,13 @@ Auto-generated on 2026-05-02 from front-matter and headings.
## Specifications
_No specs yet._
| Title | Status | Updated |
|---|---|---|
| [PbiDialog Profiel](./specs/dialogs/pbi.md) | active | 2026-05-03 |
| [StoryDialog Profiel](./specs/dialogs/story.md) | active | 2026-05-03 |
| [TaskDialog Profiel](./specs/dialogs/task.md) | active | 2026-05-03 |
| [Scrum4Me — Functionele Specificatie](./specs/functional.md) | active | 2026-05-03 |
| [DevPlanner — User Personas](./specs/personas.md) | active | 2026-05-03 |
## Plans
@ -60,14 +66,9 @@ _No specs yet._
| [Scrum4Me REST API](./api.md) | `api.md` | active | 2026-05-03 |
| [Scrum4Me — Technische Architectuur](./architecture.md) | `architecture.md` | active | 2026-05-03 |
| [Scrum4Me — Implementatie Backlog](./backlog.md) | `backlog.md` | active | 2026-05-03 |
| [Scrum4Me — Functionele Specificatie](./functional.md) | `functional.md` | active | 2026-05-03 |
| [Material Design 3 Color Scheme Documentation](./md3-color-scheme.md) | `md3-color-scheme.md` | active | 2026-05-03 |
| [Obsidian as Personal Authoring Layer](./obsidian-authoring.md) | `obsidian-authoring.md` | active | 2026-05-02 |
| [PbiDialog Profiel](./pbi-dialog.md) | `pbi-dialog.md` | active | 2026-05-03 |
| [DevPlanner — User Personas](./personas.md) | `personas.md` | active | 2026-05-03 |
| [DevPlanner — Product Backlog](./product-backlog.md) | `product-backlog.md` | active | 2026-05-03 |
| [Solo Paneel — Implementatie-specificatie](./solo-paneel-spec.md) | `solo-paneel-spec.md` | active | 2026-05-03 |
| [StoryDialog Profiel](./story-dialog.md) | `story-dialog.md` | active | 2026-05-03 |
| [Scrum4Me — Styling & Design System](./styling.md) | `styling.md` | active | 2026-05-03 |
| [TaskDialog Profiel](./task-dialog.md) | `task-dialog.md` | active | 2026-05-03 |
| [Scrum4Me — API Test Plan](./test-plan.md) | `test-plan.md` | active | 2026-05-03 |

View file

@ -26,7 +26,7 @@ Dit document legt vast welke wijzigingen zijn gecontroleerd, welke documentatie
| Reorder-acties valideren alle IDs binnen de juiste parent-scope | `actions/stories.ts`, `actions/sprints.ts` | `docs/architecture.md`, `docs/patterns/server-action.md`, `docs/patterns/sort-order.md`, `CLAUDE.md`, `AGENTS.md` |
| Sprint afronden accepteert alleen stories uit de actieve sprint | `actions/sprints.ts` | `docs/architecture.md`, `docs/patterns/server-action.md`, `AGENTS.md` |
| Todo-promotie gebruikt scoped todo lookup en `pbi.product_id` als bron van waarheid | `actions/todos.ts` | `docs/architecture.md`, `docs/patterns/server-action.md`, `CLAUDE.md`, `AGENTS.md` |
| `GET /api/products` retourneert ook gedeelde producten via `product_members` | `app/api/products/route.ts` | `README.md`, `docs/functional.md`, `docs/backlog.md`, `docs/patterns/route-handler.md` |
| `GET /api/products` retourneert ook gedeelde producten via `product_members` | `app/api/products/route.ts` | `README.md`, `docs/specs/functional.md`, `docs/backlog.md`, `docs/patterns/route-handler.md` |
| `sharp` is directe runtime dependency | `package.json`, `package-lock.json` | `README.md`, `docs/architecture.md`, `CLAUDE.md` |
| Vercel Analytics is toegevoegd aan de root layout | `app/layout.tsx`, `package.json`, `package-lock.json` | `README.md`, `docs/architecture.md`, `CLAUDE.md` |
| `.env.example` ontbrak ondanks verwijzingen in architectuurdocs | `.env.example` | `README.md`, `docs/architecture.md` |
@ -52,7 +52,7 @@ Concrete regels:
Een codewijziging is niet klaar als de documentatie een oud contract beschrijft. Agents moeten bij elke wijziging nagaan of deze plekken geraakt worden:
- `README.md`: setup, scripts, dependencies, deployment, API-overzicht.
- `docs/functional.md`: functionele eisen en API-contracten.
- `docs/specs/functional.md`: functionele eisen en API-contracten.
- `docs/architecture.md`: stack, datamodel, securitymodel, env vars, deployment.
- `docs/backlog.md`: "done when"-criteria en scope van backlog-items.
- `docs/patterns/`: herbruikbare implementatiepatronen.

View file

@ -13,7 +13,7 @@ Deze pagina is **bindend** voor elke create/edit/detail-dialog in Scrum4Me, onge
> **Doel:** elke dialog voelt identiek aan voor de gebruiker, hergebruikt dezelfde primitives, en heeft de drielaagse demo-policy + auth-scoping standaard ingebakken.
Voor entity-specifieke afwijkingen of velden: schrijf één begeleidende doc per entiteit (zie sectie [§ Per-entiteit profile](#per-entiteit-profile-verplicht)). Voorbeeld: `docs/task-dialog.md` is het Task-profiel.
Voor entity-specifieke afwijkingen of velden: schrijf één begeleidende doc per entiteit (zie sectie [§ Per-entiteit profile](#per-entiteit-profile-verplicht)). Voorbeeld: `docs/specs/dialogs/task.md` is het Task-profiel.
---
@ -393,4 +393,4 @@ Reviewer en bouwer lopen deze door vóór merge:
- `docs/architecture.md` — Demo user policy, scope-helpers
- `docs/patterns/server-action.md` — Server Action template (auth + Zod)
- `docs/patterns/zustand-optimistic.md` — voor lijst-views die de dialog aanroepen
- `docs/task-dialog.md` — voorbeeld-profile voor entiteit "Task"
- `docs/specs/dialogs/task.md` — voorbeeld-profile voor entiteit "Task"

View file

@ -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/functional.md` rond status-enums — niet onderzocht; te volgen bij volgende audit
- Eventuele drift in `docs/specs/functional.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

View file

@ -268,13 +268,13 @@ pbi:
implementation_plan: |
git mv docs/architecture.md docs/architecture.md
git mv docs/backlog.md docs/backlog.md
git mv docs/functional.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/specs/functional.md docs/specs/functional.md
git mv docs/specs/dialogs/pbi.md docs/specs/dialogs/pbi.md
git mv docs/specs/personas.md docs/specs/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/specs/dialogs/story.md docs/specs/dialogs/story.md
git mv docs/styling.md docs/styling.md
git mv docs/task-dialog.md docs/task-dialog.md
git mv docs/specs/dialogs/task.md docs/specs/dialogs/task.md
git mv docs/test-plan.md docs/test-plan.md
# update every internal link
grep -rln "" docs/ CLAUDE.md AGENTS.md README.md \
@ -352,19 +352,19 @@ pbi:
- title: "Move spec files into docs/specs/"
description: "functional, personas, dialogs/."
implementation_plan: |
git mv docs/functional.md docs/specs/functional.md
git mv docs/personas.md docs/specs/personas.md
git mv docs/pbi-dialog.md docs/specs/dialogs/pbi.md
git mv docs/story-dialog.md docs/specs/dialogs/story.md
git mv docs/task-dialog.md docs/specs/dialogs/task.md
grep -rln "docs/personas\|docs/functional\|docs/.*-dialog" \
git mv docs/specs/functional.md docs/specs/functional.md
git mv docs/specs/personas.md docs/specs/personas.md
git mv docs/specs/dialogs/pbi.md docs/specs/dialogs/pbi.md
git mv docs/specs/dialogs/story.md docs/specs/dialogs/story.md
git mv docs/specs/dialogs/task.md docs/specs/dialogs/task.md
grep -rln "docs/specs/personas\|docs/specs/functional\|docs/.*-dialog" \
docs/ CLAUDE.md AGENTS.md README.md \
| xargs sed -i '' \
-e 's|docs/functional|docs/specs/functional|g' \
-e 's|docs/personas|docs/specs/personas|g' \
-e 's|docs/pbi-dialog|docs/specs/dialogs/pbi|g' \
-e 's|docs/story-dialog|docs/specs/dialogs/story|g' \
-e 's|docs/task-dialog|docs/specs/dialogs/task|g'
-e 's|docs/specs/functional|docs/specs/functional|g' \
-e 's|docs/specs/personas|docs/specs/personas|g' \
-e 's|docs/specs/dialogs/pbi|docs/specs/dialogs/pbi|g' \
-e 's|docs/specs/dialogs/story|docs/specs/dialogs/story|g' \
-e 's|docs/specs/dialogs/task|docs/specs/dialogs/task|g'
commit: docs(taxonomy): move spec files into docs/specs/
priority: 2

View file

@ -211,7 +211,7 @@ 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/functional.md` (functioneel kader)
- `docs/specs/functional.md` (functioneel kader)
- `docs/architecture.md` (technisch kader)
- `docs/patterns/*.md` (relevante patterns op basis van target-titel/-beschrijving)
- `docs/styling.md` als target UI-werk betreft
@ -261,9 +261,9 @@ MCP-tools testen in `mcp` repo (aparte PR).
| `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/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 |
| `docs/specs/dialogs/pbi.md` | MODIFY | Sectie "Speciale gedragingen → Planning-trigger" toevoegen |
| `docs/specs/dialogs/story.md` | MODIFY | Idem |
| `docs/specs/dialogs/task.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 | |