feat: Abhängigkeiten (:#a,#b) parsen — unbekannte ID warnt, Zyklen zulässig (SPEC §1, D37)

Extraktionsschritt 7: alle alleinstehend angesetzten `:#a,#b`-Token —
EIN zusammenhängendes Token ohne Leerraum, mehrere je Zeile werden
zusammengeführt; eingeklammerte Erwähnungen wie `(:#auth,#api)` bleiben
Label (Zitier-Konvention wie `(#auth)`, deshalb enger als die frühere
§11-Formulierung). `deps` sind ID-Strings am Knoten; der Parser prüft
nur Existenz (Warnung unknownDep, Vorwärts-Referenzen normal), Zyklen
werden bewusst nicht einmal erkannt. Sichtbar als `→ #a, #b` im Tooltip
und als a11yDeps; Legendenzeile + Warntext in allen 9 Sprachen. Im
mitgelieferten Plan: Zyklen-legal und unknown-id-Warnung auf [x],
Abhängigkeits-Knoten auf [~]. 12 neue Tests (tests/deps.test.js).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
mhoennig
2026-08-22 16:25:09 +02:00
co-authored by Claude Fable 5
parent 6ecf3e4c69
commit 3ba37fc5a0
12 changed files with 239 additions and 39 deletions
+6 -1
View File
@@ -77,7 +77,12 @@ entscheiden, **bevor** Code entsteht.
unberührt); Warnung `duplicateId` nennt beide Zeilen; sichtbar im
Tooltip + `aria-label`; SPEC-§11-Teil nach §1 überführt;
`tests/ids.test.js`.
- [ ] Abhängigkeiten `:#a,#b` parsen; unbekannte ID → Warnung, Zyklen erlaubt.
- [x] Abhängigkeiten `:#a,#b` parsen; unbekannte ID → Warnung, Zyklen erlaubt.
→ Umgesetzt (D37): ein zusammenhängendes Token ohne Leerraum, nur
alleinstehend angesetzt (eingeklammerte Erwähnungen bleiben Label);
`deps` als ID-Strings am Knoten, Warnung `unknownDep`, Zyklen bewusst
ungeprüft; sichtbar als `→ #a, #b` im Tooltip + `a11yDeps`;
SPEC-§11-Teil nach §1 überführt; `tests/deps.test.js`.
- [ ] Effektiven Status rechnen (intrinsisch + Abhängigkeiten); Darstellung
entscheiden — die Knotenfarbe zeigt heute den intrinsischen Status.
- [ ] Günstigsten Pfad auf die Dependency Closure umstellen (gemeinsame