docs(legibility): migrate CLAUDE.md rules to human docs via pointer comments (DOC-7) #438
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Part of #394 (Epic 2 — Documentation). Rubric check: C5.3 (Major). Per #394 Decision Queue D3: migration policy is pointer comments (move content to a human doc; replace the original CLAUDE.md section with a 1-line pointer). Depends on #433 / #435 / #436 / #437 (must exist as migration targets).
Problem
10 CLAUDE.md files contain valuable implementation rules in LLM-targeted form. They're invisible to Anja and Tobias because they don't read CLAUDE.md. After DOC-1..DOC-6 are merged, every rule has a canonical human-doc home. DOC-7 moves the content there and replaces each CLAUDE.md section with a 1-line pointer — preserving CLAUDE.md's utility for LLM agents while making the human doc the canonical source.
Scope
For each CLAUDE.md file, classify each rules section into one of four destinations:
docs/ARCHITECTURE.md(#433) ordocs/adr/*.mdCONTRIBUTING.md(#435) or domain README (#437)@Transactionalpolicy, Svelte 5 patterns, component APIsdocs/DEPLOYMENT.md(#436) ordocs/infrastructure/*.mdFiles in scope (10)
CLAUDE.md(root) — split between #433 (architecture pieces), #435 (commit conventions overlap with COLLABORATING.md), and CLAUDE.md-stays (LLM workflow).backend/CLAUDE.md— layering rules,@Transactionalpolicy, entity Lombok template → #435.frontend/CLAUDE.md— Svelte 5 patterns, component APIs (PersonTypeahead,PersonMultiSelect,TagInput), API client pattern → #435 + frontend domain READMEs (#437).frontend/e2e/CLAUDE.md— test running instructions, seed-data expectations → #435## Testingsection.ocr-service/CLAUDE.md— startup behaviour, training token →ocr-service/README.md(#437) +docs/DEPLOYMENT.md(#436).docs/CLAUDE.md— meta-doc rules. Likely deleted after migration.scripts/CLAUDE.md— flag dev scripts vs operational scripts; split between #435 (dev) and #436 (ops).infra/CLAUDE.md— production rules →docs/infrastructure/production-compose.mdor #436.import/CLAUDE.md— mass-import notes → #435 ("Mass import" subsection)..devcontainer/CLAUDE.md— dev environment → #435 ("Development environment" subsection).Migration mechanics (per Decision Queue D3)
For every rules section in every CLAUDE.md file:
Move the content to the chosen human-doc home. Rewrite for human audience (the LLM-targeted bullet form often needs prose context).
Replace the original CLAUDE.md section with a 1-line pointer:
Verify the pointer link resolves to a heading that exists in the target doc.
Do not duplicate: every rule has exactly one home.
Audit
docs/STYLEGUIDE.md— per Felix, it overlaps with what CONTRIBUTING.md (#435) covers. Either merge into CONTRIBUTING.md or replace with a pointer.References
docs/STYLEGUIDE.mdAcceptance criteria
grep -rE "DO NOT|MUST NOT|always|never|✅|❌" CLAUDE.md backend/CLAUDE.md frontend/CLAUDE.md frontend/e2e/CLAUDE.md scripts/CLAUDE.md infra/CLAUDE.md import/CLAUDE.md .devcontainer/CLAUDE.mdreturns no rule-shaped sentences outside→ See …pointer blocks.docs/STYLEGUIDE.mdeither merged intoCONTRIBUTING.mdor replaced with a pointer.Definition of Done
All migrations on
main. Verification grep returns clean. All pointer links resolve. Rubric C5.3 PASS.marcel referenced this issue2026-05-05 21:10:58 +02:00
Duplicate of #401. I created this in error before noticing #401 already existed. #401 carries the persona reviews and per-child Decision Queue; closing this in favor of the existing issue.