499 lines
23 KiB
Markdown
499 lines
23 KiB
Markdown
---
|
||
title: Docs-restructuur — geoptimaliseerd voor AI-lookup
|
||
status: proposal
|
||
audience: maintainer, ai-agent
|
||
language: nl
|
||
last_updated: 2026-05-02
|
||
related:
|
||
- CLAUDE.md
|
||
- AGENTS.md
|
||
- README.md
|
||
- docs/decisions/agent-instructions-history.md
|
||
---
|
||
|
||
# Plan — Docs-restructuur voor AI-lookup
|
||
|
||
> Doel van dit plan: de huidige documentatie- en instructielaag van Scrum4Me omzetten naar een structuur die een AI-agent (Claude Code, Codex, een MCP-worker) in zo min mogelijk tokens en tool-calls het juiste document laat vinden, lezen en toepassen — zonder dat de mens-leesbaarheid eronder lijdt.
|
||
|
||
Dit is een **proposal**, niet een afgerond ontwerp. Lees het, markeer wat je niet wil, en ik werk het uit naar een uitvoerbaar migratieplan met file-per-file diff.
|
||
|
||
---
|
||
|
||
## 1. Waarom dit plan
|
||
|
||
Een AI-agent doet voor élke beslissing typisch dit:
|
||
|
||
1. Leest `CLAUDE.md` (of `AGENTS.md`) volledig in context.
|
||
2. Scant `docs/` met `ls`/`grep`/`glob` om relevante bestanden te kiezen.
|
||
3. Leest één of meerdere docs volledig — vaak meer dan nodig, omdat doc-grenzen vaag zijn.
|
||
4. Vindt cross-refs (`zie docs/X#Y`) en herhaalt stap 3.
|
||
|
||
Elke stap kost tokens en latency. Als de bestandsboom, naamgeving of inhoud onduidelijk is, leest de agent te veel of het verkeerde — en maakt vervolgens beslissingen op verouderde of irrelevante informatie.
|
||
|
||
**Concrete kosten in deze repo (gemeten 2026-05-02):**
|
||
|
||
| 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 | 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 | — |
|
||
| **Totaal** | **39** | **~10.700** | — |
|
||
|
||
Bij elke turn die met `CLAUDE.md` start, wordt minimaal 340 regels orientation in de context geladen — vóór er één regel code is gelezen. De agent kan vervolgens uit ~9.000 regels documentatie het juiste fragment moeten kiezen op basis van bestandsnamen alleen, want er is geen front-matter en geen index.
|
||
|
||
---
|
||
|
||
## 2. Wat ik aantrof — review per laag
|
||
|
||
### 2.1 Root-niveau orientation
|
||
|
||
| Bestand | Wat het doet vandaag | Probleem |
|
||
|---|---|---|
|
||
| `CLAUDE.md` (340 r) | Doel, doc-index, twee start-tracks, tech stack, UI-conventies, patroon-index, env vars, conventies, branch/commit-strategie, scrum-terminologie, MCP, deployment, DoD | Té breed: oriëntatie + harde regels + referentie-tabellen + procedures. Alles wordt elke turn geladen. |
|
||
| `AGENTS.md` (38 r) | Codex-variant van CLAUDE.md | Duplicatie: 80% overlapt met CLAUDE.md (access-control, doc-sync, verificatie). Twee waarheden die uit elkaar kunnen lopen. |
|
||
| `README.md` (285 r) | Portfolio-pitch, stack, setup, routes, dev-flow | Mensgericht (recruiters, GitHub-bezoekers). Goed dat het bestaat — niet aanraken. |
|
||
| `Brainstorm.md` (16 r) | Stukjes Prisma-schema, JSON-snippet en HTML-DOM-dump zonder context | **Dood bestand**, weghalen of verplaatsen naar `docs/scratch/`. |
|
||
|
||
### 2.2 `docs/` root
|
||
|
||
| Bestand | Regels | Waar het thuishoort |
|
||
|---|---:|---|
|
||
| `architecture.md` | 1.247 | `docs/architecture/` — splitsen (zie §4) |
|
||
| `functional.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.md` | 941 | `docs/design/md3-color-scheme.md` (overlapt deels met `styling.md` — kandidaat voor merge) |
|
||
| `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` |
|
||
| `decisions/agent-instructions-history.md` | 173 | `docs/decisions/agent-instructions.md` (ADR-stijl) |
|
||
| `erd.svg`, `icons.html` | — | `docs/assets/` |
|
||
|
||
**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.md` (snake + UpperCamel), de rest kebab. Eén bestand `api.md` (UPPER), de rest lowercase.
|
||
|
||
### 2.3 `docs/patterns/`
|
||
|
||
11 patronen, elk 25–390 regels. Goed als concept, maar:
|
||
|
||
- `test.md` bevat letterlijk het woord "test" — junkfile, weghalen.
|
||
- Geen front-matter; agent moet titel + intro lezen om te weten of het patroon van toepassing is.
|
||
- Naamgeving inconsistent: `iron-session.md`, `qr-login.md`, `claude-question-channel.md` — sommige domeinspecifiek, andere generiek. Geen prefix die laat zien of het een **rule** (verplicht), **recipe** (voorbeeldcode) of **explainer** is.
|
||
|
||
### 2.4 `docs/plans/`
|
||
|
||
- 8 plans. Eén heeft een filename met spaties en em-dash: `tweede-claude-agent-planning.md` — breekt grep/glob/git-workflows op sommige shells, en is moeilijk te linken. Omnoemen naar `tweede-claude-agent-planning.md`.
|
||
- ST-1109-pbi-status.md verwijst naar `~/.claude/plans/welke-rioriteiten-heeft-een-mighty-shell.md` (ook nog typo "rioriteiten") — externe locatie die niet in de repo zit en die de agent niet kan lezen.
|
||
- `MEMORY.md` wordt op meerdere plaatsen genoemd maar bestaat niet in de repo.
|
||
|
||
### 2.5 `.Plans/` (root)
|
||
|
||
3 historische planfiles uit april 2026, parallel aan `docs/plans/`. Twee waarheden voor "waar staan plannen". Voorstel: archiveren naar `docs/plans/archive/` of weghalen.
|
||
|
||
### 2.6 Cross-referenties en dode links
|
||
|
||
- 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.
|
||
|
||
### 2.7 Wat er níet is (en zou moeten)
|
||
|
||
- **Geen index/manifest.** Een agent die `glob "docs/**/*.md"` doet, krijgt 30+ paden zonder context.
|
||
- **Geen front-matter.** Geen status (draft/active/deprecated), audience, last-updated, related.
|
||
- **Geen ADR-laag.** Beslissingen zoals "waarom geen Radix maar @base-ui/react", "waarom float sort_order", "waarom one-branch-per-milestone" zitten verstrooid in CLAUDE.md, README en losse plans. Een `docs/decisions/`-folder met ADR-format zou ze vindbaar maken.
|
||
- **Geen glossary.** Domeintermen (PBI, Story, Sprint, Solo, Todo, demo-token) zijn alleen impliciet gedefinieerd in de functional spec.
|
||
- **Geen "lookup-hints" in de doc-index.** CLAUDE.md zegt *waarvoor* je een doc gebruikt, niet *wanneer je het NIET hoeft te lezen*.
|
||
|
||
---
|
||
|
||
## 3. Doelen voor de nieuwe structuur
|
||
|
||
In volgorde van belangrijkheid:
|
||
|
||
1. **Eén goedkope orientation-laag.** Een agent moet ≤150 regels lezen om te weten waar hij verder moet kijken.
|
||
2. **Voorspelbare paden.** `docs/<topic>/<entity-or-feature>.md` zonder uitzonderingen.
|
||
3. **Machine-leesbare metadata.** YAML-front-matter op élk doc met minimaal `status`, `audience`, `last_updated`, `related`.
|
||
4. **Per-doc lookup-hint.** Eén zin "Lees dit als …" bovenaan; één zin "Niet hiervoor lezen: …" om verkeerd ophalen te voorkomen.
|
||
5. **Splitsing van regels (verplicht) en uitleg (referentie).** Regels in een korte rule-doc; voorbeeldcode en rationale in een aparte recipe/explainer.
|
||
6. **Eén bron-van-waarheid per onderwerp.** Geen Codex-vs-Claude-duplicatie; AGENTS.md wordt een 10-regelige verwijzing naar CLAUDE.md.
|
||
|
||
---
|
||
|
||
## 4. Voorgestelde doelstructuur
|
||
|
||
```
|
||
/ (repo-root)
|
||
├── README.md (mens, portfolio — ongewijzigd)
|
||
├── CLAUDE.md (agent-orientation, ≤150 regels — zie §5)
|
||
├── AGENTS.md (10 regels: "alles in CLAUDE.md geldt ook voor jou")
|
||
├── docs/
|
||
│ ├── INDEX.md (NIEUW — manifest met front-matter van alle docs)
|
||
│ ├── glossary.md (NIEUW — PBI, Story, Sprint, demo-token, …)
|
||
│ │
|
||
│ ├── architecture/
|
||
│ │ ├── overview.md (uit huidige architecture.md §1–§3)
|
||
│ │ ├── data-model.md (uit §Datamodel + §Prisma Schema)
|
||
│ │ ├── auth-and-sessions.md (uit §Authenticatieflow)
|
||
│ │ ├── qr-pairing.md (uit §QR-pairing flow)
|
||
│ │ ├── claude-question-channel.md (uit §Vraag-antwoord-kanaal)
|
||
│ │ └── project-structure.md (uit §Projectstructuur)
|
||
│ │
|
||
│ ├── specs/
|
||
│ │ ├── functional.md (huidige functional.md)
|
||
│ │ ├── personas.md
|
||
│ │ ├── solo-panel.md
|
||
│ │ └── dialogs/
|
||
│ │ ├── pbi.md
|
||
│ │ ├── story.md
|
||
│ │ └── task.md
|
||
│ │
|
||
│ ├── design/
|
||
│ │ ├── styling.md (samengevoegd uit styling + MD3-color)
|
||
│ │ └── color-tokens.md (alleen het token-overzicht)
|
||
│ │
|
||
│ ├── api/
|
||
│ │ ├── rest-contract.md (huidige api.md)
|
||
│ │ └── error-codes.md (afgesplitst — vandaag verspreid)
|
||
│ │
|
||
│ ├── patterns/ (RULES — kort en bindend)
|
||
│ │ ├── 00-conventions.md (server-action, prisma-client, route-handler — kort)
|
||
│ │ ├── dialog.md
|
||
│ │ ├── sort-order.md
|
||
│ │ ├── zustand-optimistic.md
|
||
│ │ ├── iron-session.md
|
||
│ │ ├── proxy.md (was middleware.md — nieuwe naam)
|
||
│ │ ├── qr-pairing.md
|
||
│ │ └── claude-question-channel.md
|
||
│ │
|
||
│ ├── recipes/ (NIEUW — uitgewerkte voorbeeldcode bij rules)
|
||
│ │ └── … (één recipe per pattern dat code-snippets had)
|
||
│ │
|
||
│ ├── runbooks/ (NIEUW — operationele procedures)
|
||
│ │ ├── deploy-vercel.md (uit CLAUDE.md §Deployment)
|
||
│ │ ├── env-vars.md (uit CLAUDE.md §Env vars + .env.example)
|
||
│ │ └── local-dev.md (huidige README §setup, geëxtraheerd)
|
||
│ │
|
||
│ ├── decisions/ (NIEUW — ADR-stijl)
|
||
│ │ ├── 0001-base-ui-over-radix.md
|
||
│ │ ├── 0002-float-sort-order.md
|
||
│ │ ├── 0003-one-branch-per-milestone.md
|
||
│ │ ├── 0004-status-enum-mapping.md
|
||
│ │ └── 0005-agent-instructions.md (was decisions/agent-instructions-history.md)
|
||
│ │
|
||
│ ├── backlog/
|
||
│ │ ├── index.md (huidige backlog.md)
|
||
│ │ └── product-historical.md (huidige product-backlog.md)
|
||
│ │
|
||
│ ├── plans/
|
||
│ │ ├── M9-active-product-backlog.md
|
||
│ │ ├── M10-qr-pairing-login.md
|
||
│ │ ├── M11-claude-questions.md
|
||
│ │ ├── ST-1109-pbi-status.md
|
||
│ │ ├── ST-1110-demo-readonly.md
|
||
│ │ ├── ST-1111-claude-job-trigger.md
|
||
│ │ ├── ST-1114-copilot-reviews.md
|
||
│ │ ├── tweede-claude-agent-planning.md (rename — geen spaties/em-dash)
|
||
│ │ └── archive/ (uit `.Plans/` aan repo-root)
|
||
│ │ ├── 2026-04-27-claude-md-workflow-update.md
|
||
│ │ ├── 2026-04-27-insert-milestone-tool.md
|
||
│ │ └── 2026-04-27-m8-realtime-solo.md
|
||
│ │
|
||
│ ├── qa/
|
||
│ │ └── api-test-plan.md
|
||
│ │
|
||
│ └── assets/
|
||
│ ├── erd.svg
|
||
│ └── icons.html
|
||
│
|
||
└── .Plans/ (WEG — naar docs/plans/archive/)
|
||
└── Brainstorm.md (WEG — junk, of naar docs/scratch/)
|
||
└── docs/patterns/test.md (WEG — junk)
|
||
```
|
||
|
||
**Prefix `` overal weg.** Je staat in de Scrum4Me-repo.
|
||
**Alle bestandsnamen kebab-case, lowercase.** Geen `api.md`, geen `MD3_…`.
|
||
|
||
---
|
||
|
||
## 5. CLAUDE.md herontwerp
|
||
|
||
CLAUDE.md wordt strikt **router + harde regels** — geen referentie-tabellen, geen voorbeelden, geen rationale.
|
||
|
||
Voorgestelde nieuwe inhoud (max ~150 regels):
|
||
|
||
```markdown
|
||
# CLAUDE.md — Scrum4Me
|
||
|
||
## 1. Wat is Scrum4Me
|
||
(2 zinnen — link naar README voor de pitch)
|
||
|
||
## 2. Eerst lezen, altijd
|
||
- docs/INDEX.md — manifest van alle docs
|
||
- docs/glossary.md — bij twijfel over een term
|
||
|
||
## 3. Hoe je werk vindt
|
||
Twee tracks (A: MCP, B: manueel) — verkort tot 10 regels.
|
||
Detail: docs/runbooks/sprint-flow.md
|
||
|
||
## 4. Hardstop-regels (nooit overtreden)
|
||
- demo-user heeft geen schrijfrechten (3-laagsdekking)
|
||
- @base-ui/react, niet Radix
|
||
- nooit bg-blue-500, altijd MD3-tokens
|
||
- één commit = één verantwoordelijkheid
|
||
- één branch per milestone, push pas na user-approval
|
||
- denormalized FKs uit DB-parent, niet uit client-input
|
||
(elk punt → 1 regel + link naar pattern/decision)
|
||
|
||
## 6. Stack op één regel per laag
|
||
(geen versie-uitleg, link naar docs/architecture/overview.md)
|
||
|
||
## 7. Snelreferentie patronen
|
||
| Wanneer | Lees |
|
||
|---|---|
|
||
| Server Action schrijven | docs/patterns/server-action.md |
|
||
| Drag-and-drop reorder | docs/patterns/sort-order.md |
|
||
| …(max 10 rijen)…|
|
||
|
||
## 8. Verificatie vóór hand-off
|
||
`npm run lint && npm test && npm run build`
|
||
```
|
||
|
||
Alles wat nu in CLAUDE.md §Conventies, §Branch & PR Strategy, §Commit Strategy, §MCP-integratie, §Deployment staat → verhuist naar:
|
||
- `docs/runbooks/branch-and-commit.md` (regels + voorbeelden samen)
|
||
- `docs/runbooks/deploy-vercel.md`
|
||
- `docs/runbooks/mcp-integration.md`
|
||
- `docs/decisions/0003-one-branch-per-milestone.md` (waarom)
|
||
|
||
CLAUDE.md houdt in §4 alleen de éénregelige regel + link.
|
||
|
||
**Effect:** elke turn 150 r in plaats van 340 r aan orientation-context. De agent leest aanvullende docs alleen wanneer de huidige taak ze raakt.
|
||
|
||
---
|
||
|
||
## 6. Front-matter spec
|
||
|
||
Élk markdown-bestand in `docs/` (en `CLAUDE.md`, `AGENTS.md`) krijgt bovenaan:
|
||
|
||
```yaml
|
||
---
|
||
title: <korte titel>
|
||
status: draft | active | deprecated
|
||
audience: ai-agent | maintainer | contributor | external
|
||
language: nl | en
|
||
last_updated: 2026-05-02
|
||
applies_to: [feature-of-module-of-milestone-keys] # optioneel
|
||
related:
|
||
- docs/<andere>.md
|
||
- CLAUDE.md
|
||
when_to_read: <één zin>
|
||
do_not_read_for: <één zin — voorkomt mis-fetch>
|
||
---
|
||
```
|
||
|
||
**Waarom dit voor AI-lookup helpt:**
|
||
|
||
- `status: deprecated` → agent slaat het over zonder te lezen.
|
||
- `applies_to: [M10, qr-login]` → grep op milestone-key → directe hit.
|
||
- `when_to_read` / `do_not_read_for` → agent kan beslissen op de eerste 20 regels of dit doc nuttig is, zonder de hele 800-regelige spec in te lezen.
|
||
- `related` → expliciete graaf in plaats van impliciete cross-refs.
|
||
|
||
`docs/INDEX.md` wordt automatisch gegenereerd uit deze front-matter (klein script in `scripts/build-docs-index.ts` — onderdeel van het migratieplan).
|
||
|
||
---
|
||
|
||
## 7. AGENTS.md herontwerp
|
||
|
||
```markdown
|
||
# AGENTS.md
|
||
|
||
This repo's source of truth for agent instructions is **CLAUDE.md**.
|
||
Codex, Cursor, Continue, and any other coding agent: read CLAUDE.md first.
|
||
The same product, security, and verification rules apply regardless of which agent runs.
|
||
|
||
Repo-specific addendum (only if your agent does NOT speak markdown well):
|
||
- The "This is NOT the Next.js you know" note also applies to you.
|
||
- Run `npm run lint && npm test && npm run build` before handing work back.
|
||
```
|
||
|
||
Geen duplicatie van access-control of doc-sync — die regels staan exclusief in CLAUDE.md / `docs/patterns/` / `docs/decisions/`.
|
||
|
||
---
|
||
|
||
## 8. Migratie in fases
|
||
|
||
Elke fase is een eigen branch + PR. Geen big-bang. Volgorde gekozen zodat agents tijdens de migratie nog steeds werken.
|
||
|
||
### Fase 1 — Junk weg, front-matter erbij (laag risico)
|
||
|
||
- `docs/patterns/test.md` weghalen.
|
||
- `Brainstorm.md` weghalen of `docs/scratch/brainstorm-2026-05.md`.
|
||
- `.Plans/` → `docs/plans/archive/`.
|
||
- Front-matter toevoegen aan élk bestaand bestand (zonder verplaatsen). Status default = `active`.
|
||
- `docs/INDEX.md` genereren via script.
|
||
|
||
**Voor commit:** alle bestaande paden werken nog. Geen risico voor lopende sessies of CI.
|
||
|
||
### Fase 2 — Naamgeving normaliseren
|
||
|
||
- `` prefix overal weg via `git mv` (1 commit per groep — backlog/specs/personas/styling/dialogs).
|
||
- `api.md` → `api/rest-contract.md`.
|
||
- `md3-color-scheme.md` → `design/md3-color-scheme.md`.
|
||
- `tweede-claude-agent-planning.md` → `plans/tweede-claude-agent-planning.md`.
|
||
- `middleware.md` → `proxy.md` (volgt Next.js 16 hernoeming).
|
||
- Per `git mv`: in dezelfde commit zoek-en-vervang alle interne links + CLAUDE.md doc-index.
|
||
|
||
### Fase 3 — Folder-taxonomie
|
||
|
||
- Maak `docs/architecture/`, `docs/specs/`, `docs/design/`, `docs/api/`, `docs/runbooks/`, `docs/decisions/`, `docs/backlog/`, `docs/qa/`, `docs/assets/`.
|
||
- Verplaats per groep met `git mv`. Eén commit per groep.
|
||
- Update CLAUDE.md doc-index per stap.
|
||
|
||
### Fase 4 — Splits monolithische docs
|
||
|
||
- `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.
|
||
|
||
### Fase 5 — CLAUDE.md verkorten + AGENTS.md verkorten
|
||
|
||
- Knip CLAUDE.md naar het skelet uit §5.
|
||
- Verplaats verwijderde secties naar `docs/runbooks/` en `docs/decisions/`.
|
||
- AGENTS.md vervangen door de versie uit §7.
|
||
|
||
### Fase 6 — ADR-backfill
|
||
|
||
- Schrijf ADR's voor de impliciete beslissingen (5–8 stuks):
|
||
1. base-ui-over-radix
|
||
2. float-sort-order
|
||
3. one-branch-per-milestone
|
||
4. status-enum-mapping (db UPPER ↔ api lower)
|
||
5. iron-session-over-nextauth
|
||
6. demo-user-policy (3-laags)
|
||
7. claude-question-channel-design
|
||
8. agent-instructions-policy (was audit)
|
||
|
||
### Fase 7 — Glossary + index-script
|
||
|
||
- `docs/glossary.md` schrijven (PBI, Story, Sprint, Solo, Todo, demo-token, MCP-job, …).
|
||
- `scripts/build-docs-index.ts` — genereert `docs/INDEX.md` uit alle front-matters.
|
||
- Husky pre-commit hook: index regenereren bij wijziging van front-matter.
|
||
|
||
### Fase 8 — Cross-link-check
|
||
|
||
- Klein script dat alle `docs/...md` links volgt en rapporteert dode links én anchor-misses.
|
||
- Toevoegen aan `npm run lint` of `npm test`.
|
||
|
||
---
|
||
|
||
## 9. Wat dit oplevert (meetbaar)
|
||
|
||
| Metric | Vandaag | Doel |
|
||
|---|---:|---:|
|
||
| Regels die elke agent-turn standaard in context komen (CLAUDE.md) | 340 | ≤150 |
|
||
| Doc-bestanden in `docs/` root | 13 | 2 (INDEX.md, glossary.md) |
|
||
| 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 (``) | 8 | 0 |
|
||
| Documenten >800 regels | 4 | 0 (na splitsing) |
|
||
| Dode interne links | onbekend | 0 (na lint) |
|
||
|
||
---
|
||
|
||
## 10. Wat dit níet oplevert (eerlijk)
|
||
|
||
- Codequaliteit verbetert niet automatisch.
|
||
- Patronen die nu fout zijn worden niet gefixt — alleen vindbaar gemaakt.
|
||
- ADR's invullen kost denkwerk dat ik niet uit jouw hoofd kan halen — fase 6 vereist jouw input.
|
||
- AI-agents die geen front-matter parseren (oudere modellen, sommige codex-flavors) profiteren minder. Voor de `docs/INDEX.md` is het wel platte tekst — die helpt iedereen.
|
||
|
||
---
|
||
|
||
## 11. Open beslissingen — status
|
||
|
||
| # | Vraag | Besluit (2026-05-02) |
|
||
|---|---|---|
|
||
| 1 | Taal van docs, front-matter, INDEX.md | **English** — alle nieuwe en herschreven docs in het Engels. Code comments blijven Engels (al zo). UI-strings blijven Nederlands. |
|
||
| 2 | MD3-color + styling samenvoegen | **Eén doc** — `docs/design/styling.md`. |
|
||
| 3 | `solo-paneel-spec.md` | **Samenvoegen** — opgaan in `docs/specs/functional.md` (eigen sectie). |
|
||
| 4 | `.Plans/` archief | **Bewaren** — verplaatsen naar `docs/plans/archive/`. |
|
||
| 5 | ADR-template (Nygard vs MADR) | **In discussie** — referentielink gedeeld, ik heb die niet kunnen openen (claude.ai share staat niet op de fetch-allowlist). Default voor fase 6: Nygard, klein en passend bij solo + kleine repo. Vervangbaar zodra besluit valt. |
|
||
| 6 | Index-generator | **Node-script** in `scripts/build-docs-index.ts`. |
|
||
|
||
## 12. Implicaties van besluit 1 — taalwissel
|
||
|
||
De keuze "alle docs Engels" is groter dan hij lijkt. Drie scope-niveaus:
|
||
|
||
**Niveau A — going-forward only (kleinste scope):**
|
||
- Élk nieuw doc en élke nieuw aangemaakte front-matter in het Engels.
|
||
- Dit plan, INDEX.md, glossary.md, runbooks/, decisions/ — allemaal Engels vanaf creatie.
|
||
- Bestaande Nederlandse docs blijven staan tot ze om een andere reden geraakt worden.
|
||
- **Risico:** mengvormen in docs/ — een agent vindt ene helft Engels, andere helft Nederlands. Grep op een Engels keyword mist Nederlandse hits.
|
||
|
||
**Niveau B — opportunistic (middel):**
|
||
- Niveau A + élke doc die we aanraken voor de restructuur (renames, splitsingen, front-matter toevoegen) wordt meteen vertaald.
|
||
- Aan het eind van fase 5 zijn `architecture/`, `specs/`, `design/`, `api/`, `patterns/`, `runbooks/`, `decisions/` allemaal Engels.
|
||
- Backlog, plans en QA blijven Nederlands tenzij ze ge-edit worden.
|
||
|
||
**Niveau C — full sweep:**
|
||
- Élke `.md` in de repo vertalen, ongeacht of de restructuur hem aanraakt.
|
||
- Aanzienlijk werk: ~10.700 regels prose. Schatting: 1-2 dagen agent-tijd of een batch-translate-pass met review.
|
||
|
||
**Voorstel: niveau B.** Sluit aan bij de migratiefases zonder een aparte translation-sprint te hoeven plannen. Niveau C kan later als één losse PR.
|
||
|
||
## 13. ADR-template — voorlopige keuze
|
||
|
||
Tot besluit valt op vraag 5: ik gebruik **Nygard-Light** als template voor fase 6. Eén ADR is één bestand met:
|
||
|
||
```markdown
|
||
---
|
||
title: <decision title>
|
||
adr_number: 0001
|
||
status: proposed | accepted | superseded by 00xx
|
||
date: 2026-05-02
|
||
---
|
||
|
||
# 0001. <decision title>
|
||
|
||
## Context
|
||
Why this decision matters now. What forces are in play.
|
||
|
||
## Decision
|
||
The choice we make. One paragraph, declarative.
|
||
|
||
## Consequences
|
||
What becomes easier, what becomes harder, what we accept.
|
||
```
|
||
|
||
Compact, grep-vriendelijk, en agent-leesbaar binnen ~30 regels. Als MADR de uitkomst wordt, swappen we het template voor fase 6 — alle eerdere fases zijn template-onafhankelijk.
|
||
|
||
## 14. Volgende stap
|
||
|
||
Met deze besluiten kan ik fase 1 omzetten naar een concrete uitvoeringslijst:
|
||
|
||
- exacte `rm` / `git mv` / `mkdir` commando's
|
||
- de front-matter-template in het Engels
|
||
- één `npm run` of bash-snippet die de hele fase in één commit zet
|
||
- bijbehorende update-diff voor CLAUDE.md (alleen de doc-index-tabel)
|
||
|
||
Zeg het woord en ik produceer dat als `docs/plans/docs-restructure-phase-1.md`.
|
||
|
||
---
|
||
|
||
## Verificatie van dit plan
|
||
|
||
- [x] Bestandsnamen en regelaantallen gecheckt tegen `find docs -type f` + `wc -l` op disk (2026-05-02).
|
||
- [x] Cross-refs in CLAUDE.md gegrep't en op bestaan getoetst.
|
||
- [x] Geen voorgestelde nieuwe paden conflicteren met bestaande.
|
||
- [x] Open beslissingen (§11) afgehandeld door maintainer (2026-05-02) — vraag 5 voorlopig op default.
|
||
- [ ] ADR-template definitief vastgesteld (vraag 5).
|
||
- [ ] Migratie fase 1 omgezet naar uitvoerbaar PR-plan (`docs/plans/docs-restructure-phase-1.md`).
|