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
+3 -3
View File
@@ -12,11 +12,11 @@
- [x] Node IDs (#auth) (S) %% often just the ticket number, see SPEC §11
+ [?] Free tags, &tag (M) %% only together with a consumer, see D34
- [?] A lens: highlight every node tagged &x (S)
- [?] Dependencies across the tree, :#auth,#api (M)
- [~] Dependencies across the tree, (:#auth,#api) (M)
- [?] They constrain the status, not when work may start (S)
- [?] Effective status: intrinsic, plus what it depends on (S)
- [?] Cycles are legal — they mean "finished together" (XS)
- [ ] An id with no node behind it is a warning (XS)
- [x] Cycles are legal — they mean "finished together" (XS)
- [x] An id with no node behind it is a warning (XS)
- [x] XOR, = — exactly one alternative, not at least one (S)
- [?] Node descriptions, shown as a tooltip or pop-up (M)
- [?] A short text right at the node (S) %% indentation already means hierarchy