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:
co-authored by
Claude Fable 5
parent
6ecf3e4c69
commit
3ba37fc5a0
@@ -21,9 +21,10 @@ describe('Parser — `#name` als Knoten-ID', () => {
|
||||
expect([wurzel.label, wurzel.id]).toEqual(['C# Kurs', null]);
|
||||
});
|
||||
|
||||
it('frisst das reservierte `:#a,#b` (Abhängigkeiten, §11) nicht', () => {
|
||||
it('macht aus `:#a,#b` (Abhängigkeiten, D37) keine Knoten-ID', () => {
|
||||
const [wurzel] = roots(`[ ] Deploy :#auth,#api`);
|
||||
expect([wurzel.label, wurzel.id]).toEqual(['Deploy :#auth,#api', null]);
|
||||
expect([wurzel.label, wurzel.id, wurzel.deps])
|
||||
.toEqual(['Deploy', null, ['auth', 'api']]);
|
||||
});
|
||||
|
||||
it('nimmt nur das ERSTE Token — weitere `#` bleiben im Label (Tickets)', () => {
|
||||
|
||||
Reference in New Issue
Block a user