feat: Knoten-IDs (#auth) parsen — doppelte ID warnt (SPEC §1, D36)

Extraktionsschritt 6 (nach den Tags): das erste alleinstehend angesetzte
`#name`-Token wird die Knoten-ID (Zeichenmenge wie `@name`); weitere
`#`-Token bleiben im Label (reservierte Ticket-Referenzen), `:#a,#b`
und `C#` werden nicht gefressen. Doppelte ID → Warnung duplicateId an
der späteren Zeile mit Nennung der ersten; die spätere gilt trotzdem.
Sichtbar im Tooltip (erste Position) und als a11yId im aria-label —
noch keine eigene Diagramm-Darstellung. Legendenzeile + Warntext in
allen 9 Sprachen; die drei `#`-Erwähnungen im mitgelieferten Plan sind
eingeklammert, damit sie Erwähnungen bleiben. 12 neue Tests
(tests/ids.test.js).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
mhoennig
2026-08-22 16:15:15 +02:00
co-authored by Claude Fable 5
parent d276c94840
commit 6ecf3e4c69
11 changed files with 229 additions and 25 deletions
+3 -3
View File
@@ -9,7 +9,7 @@
- [^] People tags, bare URLs, %% comments (XS)
- [^] And/or decomposition (S)
- [^] Optional nodes — neither required nor an alternative (S)
- [?] Node IDs, #auth (S) %% often just the ticket number, see SPEC §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)
@@ -22,7 +22,7 @@
- [?] A short text right at the node (S) %% indentation already means hierarchy
- [?] A long block at the end, addressed by its id (S)
- [-] A separate storage format for the structure (L) %% the text is the format
- [ ] Ticket references #123 (S)
- [ ] Ticket references (#123) (S)
- [?] Benefit per node, not only cost (M)
| [?] Another sigil next to the size (S)
| [?] Story points behind the T-shirt sizes (M)
@@ -159,7 +159,7 @@
| [?] Run the one JS parser inside the IDE (M)
- [?] Tracker integration (XL)
| [?] Taiga (L) https://taiga.io
- [ ] Resolve #123 over the REST API (M)
- [ ] Resolve "#123" over the REST API (M)
- [ ] Read title, link and status (S)
- [ ] Map the workflow onto the states (S)
- [?] Write the status back (M)