feat(notation): Schlagworte &tag gebaut — taiga.<slug> benennt das Projekt je Teilbaum, vererbt (SPEC §1, D91)
SPEC zuerst: §1 Schritt 5b samt Block und Referenz-Regex, §11 auf 'umgesetzt' umgestellt; llms.md nachgezogen. Parser extrahiert alleinstehende &-Token als node.marks (Zitier-Konvention gilt), taigaSlugs() in model.js vererbt das taiga.*-Schlagwort wie die @-Tags beim Engpass. Sichtbar im Tooltip und aria-label (a11yMarks, 9 Sprachen). Plan-Labels mit &-Erwähnungen eingeklammert; 12 neue Tests, Gegenprobe: ohne Alleinstehend-Anker fallen genau die zwei Zitier-Tests. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
c712e81970
commit
5a18505571
@@ -19,6 +19,7 @@ reverse.
|
||||
|
||||
## 2026-08-27
|
||||
|
||||
- Free `&tag` keywords are part of the notation now: free-standing only, quoted mentions like `(&taiga.slug)` stay labels — and `&taiga.slug` names the Taiga project of a subtree, inherited downwards
|
||||
- Plans spanning several Taiga projects: a `&taiga.slug` tag names the project per subtree, inherited downwards — the first consumer of the reserved free tags, recorded as planned
|
||||
- Creating Taiga tickets from nodes recorded as planned: a story per node from the node window, sub-packages as tasks picked in a dialog, through a backend proxy — the ref lands in the line as `#US-123`/`#T-1234`, beside the node id
|
||||
- The unassigned pill in the people bar shows each language's short form now — German `N.N.`, English `TBD` — with the long wording in the tooltip
|
||||
|
||||
+40
-20
@@ -7,7 +7,7 @@ Syntaxänderungen werden zuerst hier dokumentiert, dann implementiert.
|
||||
## 1. Zeilenformat
|
||||
|
||||
```
|
||||
[Einrückung][Zeichen] [Statusbox] [Faltmarke] Label (Größe) URL @tag … !!! %% Kommentar
|
||||
[Einrückung][Zeichen] [Statusbox] [Faltmarke] Label (Größe) URL @tag &tag … !!! %% Kommentar
|
||||
```
|
||||
|
||||
Alle Bestandteile außer dem Label sind optional. Die Extraktion erfolgt in
|
||||
@@ -24,6 +24,7 @@ dieser Reihenfolge (wichtig für Kollisionsfreiheit):
|
||||
Groß-/Kleinschreibung egal (siehe unten). Frühere Vorkommen bleiben im
|
||||
Label stehen.
|
||||
5. Tags: alle `@name`-Vorkommen.
|
||||
5b. Schlagworte: alle alleinstehend angesetzten `&name`-Token (siehe unten).
|
||||
6. Knoten-ID: das **erste** alleinstehend angesetzte `#name`-Token (siehe unten).
|
||||
7. Abhängigkeiten: alle alleinstehend angesetzten `:#a,#b`-Token (siehe unten).
|
||||
8. Fokusmarke: `!!!` als **alleinstehendes** Token (siehe unten).
|
||||
@@ -99,6 +100,30 @@ Referenz-Regex (Schritt 1b, geprüft auf der kommentarfreien Zeile):
|
||||
(Bis D68 galt das **erste** Token; die Umkehrung trifft nur Zeilen mit
|
||||
mehreren Kandidaten.)
|
||||
|
||||
**Schlagworte `&tag`** — freie Schlagworte quer zur Hierarchie (die ID benennt
|
||||
genau einen Knoten, ein Schlagwort eine **Menge**); das erste ausgewertete ist
|
||||
das **Taiga-Projekt-Schlagwort** (§11, D91-Nachtrag 3):
|
||||
|
||||
- Zeichenmenge wie bei `@name` (§7): Unicode-Buchstaben, Ziffern, `.`, `_`,
|
||||
`-`. Mehrere pro Zeile möglich, Position im Text egal.
|
||||
- Erkannt nur **alleinstehend angesetzt** (`(^|\s)&…`): „R&D“ und
|
||||
„Drag & Drop“ bleiben damit gewöhnliche Labels, und die Zitier-Konvention
|
||||
gilt auch hier — `(&taiga.slug)` bleibt Label.
|
||||
- Schlagworte gehören **nicht** zum Label. Sichtbar sind sie im
|
||||
Knoten-Tooltip und im `aria-label`; eine eigene Diagramm-Darstellung haben
|
||||
sie nicht.
|
||||
- Semantik trägt allein das Präfix **`taiga.`**: `&taiga.<projekt-slug>`
|
||||
benennt das Taiga-Projekt, zu dem der Teilbaum gehört, und **vererbt sich**
|
||||
auf die Nachkommen wie die `@`-Tags beim Zuständigen-Engpass (§7/§9) — der
|
||||
nächste Vorfahr mit einem `taiga.*`-Schlagwort gewinnt, ein eigenes am
|
||||
Knoten übersteuert; trägt eine Zeile mehrere, gilt das **erste**. Konsument
|
||||
ist die Ticket-Anlage (§11): Der Projekt-Dialog wird damit vorbelegt, und
|
||||
die erste Anlage in einem Teilbaum ohne Zuordnung schreibt das Schlagwort
|
||||
zurück.
|
||||
- Alle übrigen Schlagworte sind **frei** und haben (noch) keinen Konsumenten.
|
||||
Sie sagen nichts über Fortschritt (§4) oder Notwendigkeit (§3) und ändern
|
||||
weder Kosten noch Warnungen.
|
||||
|
||||
**Knoten-ID `#name`** — benennt einen Knoten im **ganzen Dokument** eindeutig;
|
||||
sie ist die Adresse für Abhängigkeiten und Beschreibungsblöcke (§11).
|
||||
|
||||
@@ -223,6 +248,12 @@ bleibt stehen):
|
||||
(^|\s)\((XXL|XS|XL|S|M|L)\)
|
||||
```
|
||||
|
||||
Für die Schlagworte (Schritt 5b, alle Treffer):
|
||||
|
||||
```
|
||||
(^|\s)&([\p{L}\p{N}._-]+)
|
||||
```
|
||||
|
||||
Für die Knoten-ID (Schritt 6, nur der erste Treffer; die letzte Gruppe ist der
|
||||
optionale Trenn-Doppelpunkt, der mit entfällt):
|
||||
|
||||
@@ -1318,26 +1349,15 @@ einem Tag aufgelöst. Siehe D91-Nachträge 2 und 3.
|
||||
Freie Schlagworte liegen **nicht** mehr auf `#` — siehe `&tag` unten; damit
|
||||
ist die frühere Dreifach-Rolle von `#` aufgelöst (D34).
|
||||
|
||||
### Schlagworte (`&tag`) — reserviert, bewusst ungebaut
|
||||
### Schlagworte (`&tag`)
|
||||
|
||||
- `&tag` — freies Schlagwort: benennt eine **Menge** von Knoten quer zur
|
||||
Hierarchie (die ID benennt genau einen). Mehrere pro Zeile, Position egal,
|
||||
gleiche Zeichenmenge wie `@name` (§7: Unicode-Buchstaben, Ziffern, `.`,
|
||||
`_`, `-`).
|
||||
- Erkannt nur **alleinstehend** angesetzt (`(^|\s)&\w`, wie `!!!` in §1) —
|
||||
„R&D“ und „Drag & Drop“ bleiben damit gewöhnliche Labels.
|
||||
- **Niedrig priorisiert:** Ohne ein Feature, das Schlagworte auswertet
|
||||
(Filter-/Hervorheben-Linse, Taiga-Label-Sync), sind sie nur Kommentare mit
|
||||
Extra-Syntax — gebaut werden sie erst **zusammen mit** dem ersten solchen
|
||||
Konsumenten. Bis dahin gilt allein: `&` nicht anderweitig vergeben.
|
||||
- **Der erste Konsument ist festgelegt** (D91-Nachtrag 3): das
|
||||
**Taiga-Projekt-Schlagwort**. `&taiga.<projekt-slug>` benennt das
|
||||
Taiga-Projekt, zu dem ein Teilbaum gehört, und **vererbt sich** auf die
|
||||
Nachkommen wie die `@`-Tags beim Zuständigen-Engpass (§7/§9) — der
|
||||
nächste Vorfahr mit einem `taiga.*`-Tag gewinnt, ein eigener Tag am
|
||||
Knoten übersteuert. Alle übrigen Schlagworte bleiben frei; die Syntax
|
||||
wird zusammen mit der Ticket-Anlage gebaut, und die Zitier-Konvention
|
||||
gilt auch hier (`(&taiga.slug)` bleibt Label).
|
||||
Die **Schreibweise ist umgesetzt** — Definition jetzt in §1 (Zeichenmenge wie
|
||||
`@name`, Alleinstehend-Regel, Zitier-Konvention, `taiga.*`-Vererbung); gebaut
|
||||
zusammen mit der Ticket-Anlage, wie D91-Nachtrag 3 es festlegte. Der erste
|
||||
Konsument ist das **Taiga-Projekt-Schlagwort** `&taiga.<projekt-slug>` (§1).
|
||||
Alle **übrigen** Schlagworte bleiben frei und ohne Konsumenten — künftige
|
||||
Auswerter (Filter-/Hervorheben-Linse, Label-Sync) sind weiterhin offen und
|
||||
werden hier festgelegt, bevor sie gebaut werden.
|
||||
|
||||
### Nutzen je Knoten (`(M/9)`) — festgelegt, noch nicht gebaut
|
||||
|
||||
|
||||
@@ -12,9 +12,9 @@
|
||||
- [^] #not.gates: And/or decomposition (S)
|
||||
- [^] #not.opt: Optional nodes — neither required nor an alternative (S)
|
||||
- [^] #not.id: Node IDs, (#auth:) before the title (S) %% often the ticket number, see SPEC §11
|
||||
+ [ ] #not.tag: Free tags, &tag (M) %% first consumer found: the Taiga project tag, D91
|
||||
- [?] #not.tag.lens: A lens: highlight every node tagged &x (S)
|
||||
- [ ] #not.tag.project: (&taiga.slug) assigns the Taiga project, inherited (S)
|
||||
+ [~] #not.tag: Free tags, (&tag) (M) %% first consumer found: the Taiga project tag, D91
|
||||
- [?] #not.tag.lens: A lens: highlight every node tagged (&x) (S)
|
||||
- [~] #not.tag.project: (&taiga.slug) assigns the Taiga project, inherited (S)
|
||||
- [^] #not.dep: Dependencies across the tree, (:#auth,#api) (M)
|
||||
- [^] #not.dep.status: They constrain the status, not when work may start (S)
|
||||
- [^] #not.dep.eff: Effective status: intrinsic, plus what it depends on (S)
|
||||
|
||||
Reference in New Issue
Block a user