Entwurf · Issue 69eae0d
Ein Entwurf ist auffindbar
Entwurf zu Issue 69eae0d, zu docs/plans/69eae0d-a-draft-is-findable.md. Die Tabelle unten liest DOC_CHAPTERS beim Rendern. Die rechte Spalte nennt, was einer Zeile fehlt — solange dort etwas steht, ist die Regel dieses Kapitels verletzt. Damit ist die Tabelle eine Prüfung und kein Bild.
Fünf Entwurfskapitel liegen unter app/docs/design/. Drei Einträge stehen in lib/docs.ts, und nur einer davon ist ein Entwurf. Die übrigen vier sind über ihre Adresse erreichbar und stehen in keiner Liste: wer den slug nicht auswendig weiß, kommt nicht hin.
Das ist genau der Zustand, aus dem das Issue geöffnet wurde — nur auf einem anderen Weg erreicht. Die Form eines Entwurfs ist inzwischen da; was fehlt, ist alles drumherum: auffindbar sein, und sagen, wozu er gehört.
01Was die Registry heute trägt
Jede Zeile ist ein Kapitel, wie DOC_CHAPTERS es kennt. Die rechte Spalte misst sie an dem, was ihre Art verlangt: ein Kapitel sagt, welche Art es ist, und ein Entwurf sagt, welches Issue er beantwortet.
| Kapitel | Art | Issue | fehlt |
|---|---|---|---|
| design/account-block | draft | fc30f7f | |
| design/chain-gate | draft | 5a95366 | |
| design/done-column | draft | ea06505 | |
| design/done-sprint | draft | cf2a3bc | |
| design/draft-registry | draft | 69eae0d | |
| design/board | spec | — | |
| design/effort | draft | f8d6779 | |
| design/effort-spec | draft | 55ba307 | |
| design/brief-check | draft | c9b8fe7 | |
| design/release-line | draft | 8b1babd | |
| design/plan-settles | draft | cb83cdf | |
| design/plan-queue | draft | b5c66ad | |
| design/review-bench | draft | 8d27b84 | |
| design/verify-scope | draft | 2dc6a5e | |
| design/issue-kinds | draft | 5e6f482 | |
| design/issue-id-search | draft | 09e87ba | |
| design/search-scope | draft | e7eab09 | |
| design/issue-tabs | draft | ac1293f | |
| design/issue-thread | draft | 9073638 | |
| design/issue-rail | draft | a8de23c | |
| design/band-above | draft | 28c2d21 | |
| design/approve-helper | draft | 3e8a910 | |
| design/gate-live | draft | 1159d74 | |
| design/issue-document | draft | 969b17d | |
| design/rail-cycles | draft | e5ccfe1 | |
| design/review-column | draft | 55d804a | |
| design/chain-band | draft | 203732a | |
| design/issue-chain | draft | 236b4d1 | |
| design/plans-tab | draft | f9bb78d | |
| design/plan-document | draft | b88adde | |
| design/sprint-address | draft | 37ed1fb | |
| design/needs-edges | draft | 852f19b | |
| design/order-picture | draft | 0e0ba05 | |
| design/star-map | draft | a76dbc0 | |
| design/smoke | draft | 51edf0a | |
| design/module-headers | draft | 75f9042 | |
| design/form-from-sdk | draft | 7105c5a | |
| design/order | spec | — | |
| infrastruktur-kosten-usdc | document | — | |
| systemkarte | document | — |
Alle 40 Kapitel tragen, was ihre Art verlangt.
02Eine Art, kein Namenspräfix
Das Einzige, was design/account-block heute als Entwurf ausweist, ist das Wort „Entwurf“ vorn im Titel und ein Satz im Teaser. Das ist Prosa, und Prosa ist kein Feld: danach lässt sich nicht gruppieren, und keine Prüfung kann sie lesen.
- Ein Dokument erklärt, was läuft — der Leser will es verstehen.
- Ein Entwurf fragt, ob etwas gebaut werden soll — der Leser soll entscheiden.
- Zwei Fragen, zwei Gruppen. In einer Liste vermischt verliert der Leser beide.
03Die Rückrichtung
Ein Plan nennt seinen Entwurf im Front Matter, und just chain liest das. Umgekehrt führt nichts: Wer auf dem Kapitel steht, kommt nicht zu der Entscheidung, zu der es gehört. Das Feld issue am Kapitel schließt den Kreis — bei account-block steht der Wert heute schon da, als Satz im Teaser statt als Feld.
Geprüft wird nicht die Schreibweise, sondern die Übereinstimmung in beide Richtungen: zu jedem Kapitel der Art draft gibt es einen Plan, dessen draft: auf dieses Kapitel zeigt und dessen issue: dieselbe Id trägt. Beide Seiten sind Dateien in diesem Baum, die Prüfung bleibt also offline grün, im frischen Clone und in einem CI-Schritt ohne Seed.
Ob das genannte Issue wirklich existiert, wird hier absichtlich nicht gefragt. Das ist die Frage des Merge-Gates, und lokal bräuchte sie einen Seed. Das ist die eine Stelle, an der die Prüfung schwächer ist, als sie aussieht — deshalb steht sie hier.
04Was diese Seite nicht sehen kann
Die Tabelle oben misst die Registry an sich selbst. Sie kann nicht sehen, was gar nicht in ihr steht — ein Kapitel, das unter app/docs/design/ liegt und in keiner Liste vorkommt. Dafür müsste die Seite den Quellbaum lesen, und der ist im laufenden Container nicht mehr da: Die Prüfung liefe in just dev und fände in der Produktion still nichts.
Eine Seite, die vollständig aussieht und heimlich nichts prüft, ist schlechter als eine, die sagt, wo die andere Hälfte geprüft wird. Sie wird geprüft in lib/docs.test.ts, dort wo die Dateien liegen: ein Verzeichnis mit page.tsx, das kein Kapitel registriert, lässt die Suite fallen.