docs: Geplante Erweiterungen (IDs, Abhängigkeiten, XOR, Falten, Beschreibungen)

Die fünf geplanten Notations-Erweiterungen für vollständiges Lean-Pathfinding
sind in die Doku eingearbeitet — Schreibweisen samt offener Punkte in SPEC §11,
Begründung und Folgen in D34, Aufgaben in Phase 4, und als Knoten im
mitgelieferten Werkbaum-Plan.

Drei Kollisionen mit Bestehendem sind dabei benannt statt stillschweigend
mitentschieden: `#` trägt jetzt drei Bedeutungen (Ticket, Schlagwort, Knoten-ID),
`x` für XOR liest sich neben `[x]` schlecht, und kurze Knotenbeschreibungen
können keine eingerückte Folgezeile sein, weil Einrückung Hierarchie bedeutet.

Die weitestreichende Folge betrifft D18: Mit Dependency Closure — gemeinsame
Abhängigkeiten nur einmal gezählt — ist die günstigste Alternative nicht mehr
lokal entscheidbar; die gierige Wahl je Gruppe ist nicht länger optimal.

LEAN-PATHFINDING.md schlug für Abhängigkeiten noch `→ Feature` vor (Verweis auf
den Titel, rote Linien); das ist mit `:#id` überholt und korrigiert.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
mhoennig
2026-08-22 10:04:50 +02:00
co-authored by Claude Opus 5
parent a698dc31bd
commit 90230c4dd3
6 changed files with 279 additions and 22 deletions
+50 -18
View File
@@ -105,28 +105,60 @@ Tastendruck ein Commit); und wer bei einem Backend eigentlich was darf
Status-/Zeitachse.
- Attribut-Syntax für Termine/Meilensteine.
## Features für vollständiges Lean-Pathfinding
## Vollständiges Lean-Pathfinding
- **Ein-/Ausklappbare Teilbäume**
Teilbäume können im Text mit einer kompakten Zeichensyntax als initial eingeklappt markiert werden. `>` steht dabei für „ab hier einklappen“, `<` kann innerhalb eines eingeklappten Bereichs gezielt wieder sichtbare Teilbäume hervorholen. Im Diagramm kann anschließend unabhängig vom Text interaktiv ein- und ausgeklappt werden.
Werkbaum hat die Grundlagen — Und/Oder-Zerlegung, Größen, günstigster Pfad —,
aber der Pfad rechnet bisher nur innerhalb des gewählten Teilbaums. Was fehlt,
ist die Möglichkeit, Bezüge **quer** durch den Baum auszudrücken. Diese Stufe
holt das nach. Schreibweisen und offene Punkte stehen in **SPEC §11**,
Begründung und Folgen in **D34**; hier steht, was es dem Werkzeug bringt.
- **Knoten-IDs**
Knoten können über eine kompakte ID wie `#auth` eindeutig adressiert werden. IDs bestehen aus einem whitespace-freien Bezeichner und dienen insbesondere als Ziel für Querverweise und Abhängigkeiten.
**Fünf Erweiterungen der Notation.** Sie hängen zusammen: ohne IDs keine
Abhängigkeiten, ohne Abhängigkeiten kein effektiver Status, ohne den kein
Pfad, der die Wahrheit sagt.
- **Abhängigkeiten zwischen Knoten**
Mit einer Syntax wie `:#auth,#api` kann ein Knoten von anderen Knoten außerhalb seines eigenen Teilbaums abhängig gemacht werden. Dependencies beeinflussen nicht, wann Arbeiten beginnen dürfen, sondern den **effektiven Status** eines Knotens.
- **Knoten-IDs** (`#auth`) — ein whitespace-freier Bezeichner macht einen Knoten
im ganzen Dokument adressierbar. Für sich genommen nutzlos; er ist das Ziel
für alles Folgende.
- **Abhängigkeiten** (`:#auth,#api`) — ein Knoten hängt von Knoten außerhalb
seines eigenen Teilbaums ab. Sie sagen nichts über Reihenfolge oder
Startzeitpunkt, sondern etwas über den Status; Zyklen sind zulässig und
bedeuten „wird gemeinsam fertig".
- **Intrinsischer und effektiver Status** — was in der Statusbox steht, ist der
Bearbeitungsstand des Knotens selbst. Effektiv fertig ist er erst, wenn auch
seine Abhängigkeiten es sind. Der effektive Status wird gerechnet, nie
geschrieben.
- **XOR** (`x`) — neben „mindestens eine" (`|`) eine Gruppe, in der **genau
eine** Alternative realisiert werden darf. Für die Pfadrechnung ändert das
nichts (die wählt bei `|` ohnehin eine); es kommt eine Regel hinzu, die
verletzt werden kann und dann gemeldet wird.
- **Knotenbeschreibungen** — Erläuterungstext zum Knoten, im Diagramm als
Tooltip oder Pop-up: kurz direkt beim Knoten, lang als Block am Dokumentende
über die ID zugeordnet. Die Arbeit steckt nicht im Anzeigen, sondern in der
Schreibweise: Einrückung bedeutet hier bereits Hierarchie.
- **Intrinsischer und effektiver Status**
Der intrinsische Status beschreibt den tatsächlichen Bearbeitungsstand eines Knotens. Der effektive Status berücksichtigt zusätzlich seine Abhängigkeiten. Ein intrinsisch fertiger Knoten kann daher effektiv noch nicht vollständig fertig sein, solange Dependencies nicht erfüllt sind.
**Was daraus folgt.**
- **Dependency-aware Lean Pathfinding**
Das Lean Pathfinding berücksichtigt künftig nicht nur den Restaufwand innerhalb des gewählten Teilbaums, sondern die gesamte notwendige **Dependency Closure**. Gemeinsam benötigte Dependencies werden dabei nur einmal berechnet. Zyklen sind zulässig und entsprechen gemeinsam fertigzustellenden Gruppen.
- **Dependency-aware Pathfinding.** Gerechnet wird nicht mehr der Teilbaum,
sondern die **Dependency Closure** — alles, was zusätzlich nötig ist, damit
der gewählte Knoten effektiv fertig werden kann. Gemeinsam benötigte
Abhängigkeiten zählen **nur einmal**. Damit ist die Wahl zwischen
Alternativen nicht mehr lokal entscheidbar: Was billig ist, hängt davon ab,
was der Rest des Plans ohnehin einkauft (Beispiel und Konsequenz in D34).
Das ist die eigentliche Erweiterung von D18, und die einzige Stelle, an der
hier echte Algorithmik steckt.
- **Querverbindungen im Diagramm.** Abhängigkeiten als optisch sekundäre Linien
(dünn oder gestrichelt), bei ausgewähltem Knoten seine ein- und ausgehenden
hervorgehoben. Erste Linienart, die nicht der Zerlegung folgt — sie braucht
eine eigene Zeichenebene (SVG, wie der Pfad-Spline), nicht die Rahmenkanten.
- **Ein- und ausklappbare Teilbäume** (`>` / `<`). Sobald Pläne quer verbunden
sind, wächst das Diagramm über den Bildschirm hinaus; ohne Falten ist ein
großer Plan nicht mehr zu lesen. Die Marken im Text bestimmen nur den
Anfangszustand — im Diagramm wird danach unabhängig gefaltet.
- **Visualisierung von Dependencies**
Abhängigkeiten werden als optisch sekundäre Querverbindungen im Diagramm dargestellt, etwa dünn oder gestrichelt. Bei Auswahl eines Knotens können dessen ein- und ausgehende Dependencies hervorgehoben werden.
Der gestaffelte „günstigste Pfad" aus *Kleinere Ideen* (Status-Bewusstsein,
Ausbaustufen) baut hierauf auf: Er braucht denselben Umbau der Kostenrechnung
und ist danach im Wesentlichen eine Frage der Auswahl, nicht der Mechanik.
- **XOR / exklusives Oder**
Zusätzlich zu `all-of`, `any-of` und optionalen Knoten soll eine echte XOR-Gruppe unterstützt werden: Genau eine Alternative darf realisiert werden. Als kompakte Syntax bietet sich beispielsweise `x` an.
- **Knotenbeschreibungen / Detailtexte**
Knoten können zusätzliche Erläuterungstexte erhalten, die im Diagramm als Tooltip oder Pop-up angezeigt werden. Vorgesehen sind kurze, direkt beim Knoten eingerückte Texte sowie längere, über die Knoten-ID referenzierte Beschreibungsblöcke am Ende des Dokuments.
Breitere Feature-Wunschliste zum Thema: `docs/LEAN-PATHFINDING.md`
(Entwurf, kein Beschluss), Marktumfeld: `docs/MARKET-ANALYSIS.md`.