docs: Ticket-Ref zusätzlich zur Knoten-ID, Präfixe US-/T- festgelegt (D91-Nachtrag 2, SPEC §11)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
mhoennig
2026-08-27 14:37:08 +02:00
co-authored by Claude Fable 5
parent ac484f8104
commit 4c98ec6603
4 changed files with 47 additions and 8 deletions
+1 -1
View File
@@ -19,7 +19,7 @@ reverse.
## 2026-08-27
- 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 ticket ref comes back as the node id
- 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
- `pull-doc --open` opens the fetched document in IntelliJ IDEA afterwards — also when nothing changed
- A dead live session now reconnects by itself — unsent text stays in the editor and goes out as a diff once the server answers again
+30
View File
@@ -7926,3 +7926,33 @@ OIDC-Anpassung ist ein eigener, kleiner Schritt am Login-Endpunkt.
Offen bleibt nur noch das **Ref-Muster** (`#123` vs. `#US-123`) — das
braucht einen eingeloggten Blick in ein echtes Projekt und liegt beim
Bauen.
**Nachtrag 2 — die Ref kommt ZUSÄTZLICH zur Knoten-ID, mit Typ-Präfix
(2026-08-27).** Der Haupttext sagte „die Ticket-Ref wird als Knoten-ID
zurückgeschrieben" — korrigiert auf Nutzer-Vorgabe: Die vergebenen IDs
(`#bereich.task`, D48) bleiben stehen, die Taiga-Nummer kommt **dazu**.
Zwei Festlegungen:
- **Präfixe `US-`/`T-` schreibt Werkbaum selbst:** `#US-123` für die Story,
`#T-1234` für die Task. Taigas eigene Refs sind nackte Nummern, **je
Projekt fortlaufend und über alle Typen gemeinsam** (Story `#123` und
Task `#123` gibt es im selben Projekt nie zugleich — derselbe Zähler).
Das Präfix ist also unsere Konvention, und sie trägt genau das, was die
spätere Auflösung (`#trk.resolve`) braucht: den **Typ** — Stories und
Tasks haben getrennte `by_ref`-Endpunkte, ohne Präfix müsste der Resolver
beide probieren. Damit ist die letzte offene Messfrage aus dem Haupttext
(Ref-Muster) durch Festlegung erledigt: `US-\d+` / `T-\d+` (SPEC §11
nachgezogen).
- **Eine Schreibregel, kein Sonderfall:** Die Ref wird als eigenes Token an
die Zeile angehängt. Die §1-Semantik erledigt den Rest von selbst — nur
das **erste** `#`-Token ist die Knoten-ID, jedes weitere bleibt im Label
(„dort liegt die reservierte Ticket-Referenz", D36 wörtlich): Mit
vorhandener ID steht die Ref also als Referenz im Label, ohne ID wird
sie die ID. Der Idempotenz-Marker aus dem Haupttext wechselt damit von
„hat eine ID" auf „die Zeile trägt ein Token nach dem Tracker-Muster".
**Benannte Grenze:** Weil das Projekt bei jeder Anlage gewählt wird, kann
ein Dokument theoretisch Refs aus **mehreren** Projekten mischen — und
`#US-123` ist nur je Projekt eindeutig. Der spätere Resolver braucht darum
eine Projekt-Zuordnung; praktisch gehört ein Plan zu einem Projekt, und die
Frage stellt sich erst bei `#trk.resolve`.
+8 -2
View File
@@ -1304,8 +1304,14 @@ das auch. Begründung und Zusammenhang: D34.
Beide Rollen vertragen sich: Oft **ist** die Ticket-Kennung die natürliche
Knoten-ID. Als Ticket-Link behandelt wird ein Token **nicht an seiner Form**
(die frühere Heuristik „rein numerisch" trägt bei alphanumerischen Kennungen
nicht), sondern am **Muster des angebundenen Trackers** — konfigurierbar,
z. B. `US-\d+`/`\d+` bei Taiga; festzulegen im Taiga-Spike (D34-Nachtrag).
nicht), sondern am **Muster des angebundenen Trackers**. Für Taiga ist es
festgelegt: **`US-\d+`** (User Story) und **`T-\d+`** (Task) — die Präfixe
schreibt Werkbaum beim Anlegen selbst (Taiga zeigt nur `#123`; seine Nummern
laufen **je Projekt** fortlaufend über alle Typen, das Präfix trägt den Typ,
den die Auflösung braucht). Die Ref wird **zusätzlich zur Knoten-ID** als
eigenes Token an die Zeile geschrieben: Mit vorhandener ID bleibt sie
Ticket-Referenz im Label (§1: nur das erste `#`-Token ist die ID), ohne ID
wird sie von selbst die ID. Siehe D91-Nachtrag 2.
Freie Schlagworte liegen **nicht** mehr auf `#` — siehe `&tag` unten; damit
ist die frühere Dreifach-Rolle von `#` aufgelöst (D34).
+8 -5
View File
@@ -200,7 +200,7 @@
| [?] #idea.drift.js: Run the one JS parser inside the IDE (M)
- [?] #trk: Tracker integration (XL) %% exactly one of these, hence =
= [?] #trk.taiga: Taiga (XL) https://taiga.io
- [ ] #trk.resolve: Resolve "#123" over the REST API (M)
- [ ] #trk.resolve: Resolve "#US-123" over the REST API (M)
- [ ] #trk.resolve.read: Read title, link and status (S)
- [ ] #trk.resolve.map: Map the workflow onto the states (S)
- [?] #trk.write: Write the status back (M) :#trk.resolve
@@ -209,7 +209,7 @@
- [ ] #trk.create.login: Log in to Taiga, token stays in the browser (S) :#trk.create.proxy
- [ ] #trk.create.story: A "create story" action in the node window (S) :#trk.create.login
- [ ] #trk.create.tasks: Sub-packages become tasks, picked in a dialog (M) :#trk.create.story
- [ ] #trk.create.ref: The ticket ref becomes the node id (S) :#trk.create.story
- [ ] #trk.create.ref: The ref lands in the line beside the id (S) :#trk.create.story
- [-] #trk.plugin: A plugin inside Taiga itself (L) %% legacy frontend, self-hosted only
= [?] #trk.tenzu: Tenzu, the successor (XXL) https://tenzu.net
= [ ] #trk.none: No tracker, plain text is enough (XS)
@@ -1180,9 +1180,12 @@
never appear, finished ones start unchecked.
#trk.create.ref
The returned ref (#123, #US-123) is written back into the line as the node
id, undoable — the reserved ticket reference of SPEC §11, and the marker
that keeps a second click from creating the ticket twice.
The returned ref is appended to the line as an extra token — #US-123 for
stories, #T-1234 for tasks, prefixes written by Werkbaum since Taiga's own
numbers are just per-project counters shared across all types. It never
replaces a node id (only the first # token is the id, §1); on a node
without one it simply becomes the id. Undoable, and the marker that keeps
a second click from creating the ticket twice.
#trk.plugin
Rejected: a plugin inside Taiga means its legacy frontend and works only in