feat: Effektiver Status — Knotenfarbe zeigt ihn, Diskrepanz-Marke unten links (SPEC §4/§9, D39)
Jeder Status bekommt einen Fortschritts-Rang entlang der Ergebnis-Skala (D5); effektiv ist das Minimum über die Abhängigkeits-Hülle (Fixpunkt — Zyklen teilen ihr Minimum, wörtlich das „wird gemeinsam fertig" aus D34). Neutral und [-] zählen als 0, [!] als 1; bei doppelter ID gilt die erste Vergabe. Entschieden (Nutzer): Die Knotenfarbe zeigt den effektiven Status — das Diagramm beantwortet „wie weit ist das wirklich?". Wo der eigene Status weiter ist, sitzt unten links die eigene Statusbox als Marke in den eigenen §4-Farben (auch im Export/Druck); Tooltip und a11yEffective benennen beides. XOR-„realisiert" und „Was ist neu?" bleiben bewusst intrinsisch. i18n in allen 9 Sprachen; 12 neue Tests (tests/effective.test.js). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
cbe798d746
commit
15c3e85e26
@@ -1834,3 +1834,43 @@ Stiel-Messung, Treppe und Pfadlinie sind damit ohne Zusatzcode konsistent
|
||||
per CSS zu verstecken). Die Kennzeichnung „▸ n“ ist Teil des Knotentexts und
|
||||
wandert von selbst in den SVG-Export; das ▾ offener Knoten wird dort und im
|
||||
Druck entfernt — es ist Bedienelement, keine Aussage über den Plan.
|
||||
|
||||
## D39 — Effektiver Status: die Farbe sagt die Wahrheit, die Marke die Box
|
||||
Mit den Abhängigkeiten (D37) gibt es zwei Aussagen je Knoten: was in der
|
||||
Statusbox steht (intrinsisch) und wie weit er wirklich ist (effektiv, §4).
|
||||
Erwogen waren drei Darstellungen — Diskrepanz-Kennzeichnung bei intrinsischer
|
||||
Farbe (die ursprüngliche Empfehlung), ein Umschalter, oder Farbe = effektiv.
|
||||
**Entschieden (Nutzer): Die Knotenfarbe zeigt den effektiven Status; wo der
|
||||
eigene Status weiter ist, kommt eine Diskrepanz-Marke dazu.** Das ist die
|
||||
stärkere Wahl: Das Diagramm beantwortet „wie weit ist das wirklich?“ — genau
|
||||
die Frage, für die man auf einen Plan schaut. Ein grünes `[x]`, das auf ein
|
||||
rosé `[~]` wartet, wäre die hübschere Lüge.
|
||||
|
||||
**Die Rechenregel ist ein Minimum über die Abhängigkeits-Hülle.** Jeder Status
|
||||
bekommt einen Fortschritts-Rang entlang der Ergebnis-Skala (D5); effektiv ist
|
||||
das Minimum des intrinsischen Rangs über den Knoten selbst und alles, was er
|
||||
direkt oder mittelbar braucht. Diese Form hat zwei angenehme Folgen: **Zyklen
|
||||
brauchen keine Sonderregel** — alle Knoten eines Zyklus teilen ihr Minimum,
|
||||
und das ist wörtlich das „wird gemeinsam fertig“ aus D34; und die Rechnung ist
|
||||
eine schlichte Fixpunkt-Iteration (Ränge sinken nur, Abbruch garantiert).
|
||||
Außerhalb der Skala: neutral und `[-]` zählen als 0 — wer auf etwas
|
||||
Verworfenes oder nie Begonnenes zeigt, ist effektiv am Anfang, und genau das
|
||||
soll auffallen —, `[!]` als 1 (die Absicht-ohne-Investition-Gruppe aus D35).
|
||||
Bei doppelter ID gilt die **erste** Vergabe — das löst das in D36 offen
|
||||
gelassene „wer gewinnt bei Verweisen“ konsistent zur `duplicateId`-Warnung.
|
||||
|
||||
**Die Diskrepanz-Marke ist die eigene Statusbox in den eigenen Farben.**
|
||||
Unten links (die letzte freie Knoten-Ecke: oben rechts Größe, unten rechts
|
||||
Tags, oben links ⚠) sitzt ein kleines `[x]`-Etikett in den §4-Farben des
|
||||
intrinsischen Status — die Notation kennzeichnet sich mit ihrem eigenen
|
||||
Vokabular, niemand lernt ein neues Symbol, und die Farben tragen die ganze
|
||||
Geschichte: Knoten rosé (effektiv in Arbeit), Etikett grün (selbst fertig).
|
||||
Tooltip („effektiv … — selbst schon …, wartet auf Abhängigkeiten“) und
|
||||
`a11yEffective` sagen es in Worten. Marke und Färbung gehören in Export und
|
||||
Druck — sie sind eine Aussage über den Plan, nicht über den Betrachter.
|
||||
|
||||
**Was beim intrinsischen Status bleibt:** die XOR-Regel (§3) — „realisiert“
|
||||
heißt Kosten investiert, und investiert ist investiert, auch wenn
|
||||
Abhängigkeiten den Knoten zurückhalten; und „Was ist neu?“ (D28) — der gelbe
|
||||
Kranz meldet das `[^]` im Text, also den Deploy des Knotens selbst. Beide
|
||||
Prüfungen laufen im Parser bzw. auf dem Text und bleiben unberührt.
|
||||
|
||||
+32
-11
@@ -190,6 +190,24 @@ Codiert als Checkbox nach dem Zeichen (Erweiterung der Markdown-Task-Syntax):
|
||||
verloren, Folgezeilen bleiben unberührt. (Eine mehrzeichige Klammer wie
|
||||
`[xyz]` ist keine Statusbox und bleibt Teil des Labels.)
|
||||
|
||||
**Intrinsischer und effektiver Status (Abhängigkeiten, §1).** Der Status in
|
||||
der Box ist der **intrinsische** — der Bearbeitungsstand des Knotens selbst.
|
||||
Der **effektive** Status berücksichtigt die Abhängigkeiten: Ein Knoten kann
|
||||
effektiv nicht weiter sein als das, was er braucht.
|
||||
|
||||
- **Fortschritts-Rang** entlang der Ergebnis-Skala (D5):
|
||||
`[?]` 0 · `[ ]` 1 · `[~]` 2 · `[/]` 3 · `[x]` 4 · `[^]` 5. Außerhalb der
|
||||
Skala zählen neutrale Knoten und `[-]` als Rang 0 („nichts Anrechenbares“),
|
||||
`[!]` als Rang 1 (Absicht ohne Investition, D35).
|
||||
- **Effektiver Rang = Minimum des intrinsischen Rangs über die
|
||||
Abhängigkeits-Hülle**: der Knoten selbst plus alles, was er per `:#…` direkt
|
||||
oder mittelbar braucht. Zyklen brauchen keine Sonderregel — alle Knoten
|
||||
eines Zyklus teilen so von selbst ihr Minimum („wird gemeinsam fertig“, §1).
|
||||
Unbekannte IDs zählen nicht (sie sind schon gewarnt); bei doppelter ID gilt
|
||||
die **erste** Vergabe (D36).
|
||||
- Der effektive Status wird **gerechnet, nie geschrieben** (D14: der Text ist
|
||||
die eine Quelle der Wahrheit). Darstellung: §9; Begründung: D39.
|
||||
|
||||
## 5. Aufwand (T-Shirt-Größen)
|
||||
|
||||
- Werte: `XS < S < M < L < XL < XXL`, notiert in Klammern, z. B. `(L)`.
|
||||
@@ -241,6 +259,17 @@ Stück zwischen Elternknoten und erstem Abzweig — eine kleine **„1“-Plaket
|
||||
(weißer Kreis mit grauem Rand, graue Ziffer): „genau eine“. Sie erscheint auch
|
||||
im Grafikexport. Siehe D35.
|
||||
|
||||
**Die Knotenfarbe zeigt den effektiven Status (§4)**, nicht den intrinsischen —
|
||||
das Diagramm beantwortet „wie weit ist das wirklich?“. Wo der eigene Status
|
||||
**weiter** ist als der effektive (der Knoten wird von Abhängigkeiten
|
||||
zurückgehalten), sitzt unten links eine kleine **Status-Marke** mit der
|
||||
eigenen Statusbox (z. B. `[x]`) in den §4-Farben des intrinsischen Status;
|
||||
Tooltip und `aria-label` benennen beide. Ohne Diskrepanz ändert sich nichts —
|
||||
und für die XOR-Regel (§3) und „Was ist neu?“ (unten) zählt weiterhin der
|
||||
**intrinsische** Status: Investiert ist investiert, und `[^]` im Text bleibt
|
||||
die Deploy-Aussage. Marke und Färbung erscheinen auch im Grafikexport und im
|
||||
Druck. Siehe D39.
|
||||
|
||||
**Optionale Knoten (`+`, §3):** Sie hängen an der normalen all-of-Zerlegung,
|
||||
die Anordnung bleibt unverändert. Zwei Kennzeichen, beide auch im Grafikexport:
|
||||
|
||||
@@ -661,17 +690,9 @@ die Closure-Rechnung des günstigsten Pfads (alle drei unten).
|
||||
|
||||
### Intrinsischer und effektiver Status
|
||||
|
||||
- Der **intrinsische** Status ist der, der in der Statusbox steht (§4) — der
|
||||
Bearbeitungsstand des Knotens selbst.
|
||||
- Der **effektive** Status berücksichtigt zusätzlich die Abhängigkeiten: Ein
|
||||
intrinsisch fertiger Knoten ist effektiv **nicht** fertig, solange eine
|
||||
Abhängigkeit es nicht ist.
|
||||
- Der effektive Status wird **gerechnet, nie geschrieben**. Im Notationstext
|
||||
steht ausschließlich der intrinsische — sonst gäbe es zwei Quellen der
|
||||
Wahrheit für dieselbe Aussage.
|
||||
- **Offen ist die Darstellung.** Die Knotenfarbe zeigt heute den intrinsischen
|
||||
Status (§4); beide zugleich brauchen entweder einen zweiten visuellen Kanal
|
||||
oder einen Umschalter.
|
||||
**Umgesetzt** — Rechenregel in §4 (Fortschritts-Rang, Minimum über die
|
||||
Abhängigkeits-Hülle), Darstellung in §9 (Knotenfarbe = effektiver Status,
|
||||
Diskrepanz-Marke unten links). Siehe D39.
|
||||
|
||||
### Querverbindungen im Diagramm
|
||||
|
||||
|
||||
+6
-1
@@ -83,8 +83,13 @@ entscheiden, **bevor** Code entsteht.
|
||||
`deps` als ID-Strings am Knoten, Warnung `unknownDep`, Zyklen bewusst
|
||||
ungeprüft; sichtbar als `→ #a, #b` im Tooltip + `a11yDeps`;
|
||||
SPEC-§11-Teil nach §1 überführt; `tests/deps.test.js`.
|
||||
- [ ] Effektiven Status rechnen (intrinsisch + Abhängigkeiten); Darstellung
|
||||
- [x] Effektiven Status rechnen (intrinsisch + Abhängigkeiten); Darstellung
|
||||
entscheiden — die Knotenfarbe zeigt heute den intrinsischen Status.
|
||||
→ Entschieden und umgesetzt (D39): Fortschritts-Rang (SPEC §4), effektiv
|
||||
= Minimum über die Abhängigkeits-Hülle (Fixpunkt, Zyklen teilen ihr
|
||||
Minimum); **Knotenfarbe = effektiver Status**, bei Diskrepanz die eigene
|
||||
Statusbox als Marke unten links in den eigenen Farben (auch im Export);
|
||||
Tooltip + `a11yEffective`; `tests/effective.test.js`.
|
||||
- [ ] Günstigsten Pfad auf die Dependency Closure umstellen (gemeinsame
|
||||
Abhängigkeiten nur einmal zählen). Erweitert D18; die gierige Wahl je
|
||||
Alternativgruppe ist damit nicht mehr optimal — Verfahren wählen und
|
||||
|
||||
@@ -12,9 +12,9 @@
|
||||
- [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)
|
||||
- [?] They constrain the status, not when work may start (S)
|
||||
- [?] Effective status: intrinsic, plus what it depends on (S)
|
||||
- [x] Dependencies across the tree, (:#auth,#api) (M)
|
||||
- [x] They constrain the status, not when work may start (S)
|
||||
- [x] Effective status: intrinsic, plus what it depends on (S)
|
||||
- [x] Cycles are legal — they mean "finished together" (XS)
|
||||
- [x] An id with no node behind it is a warning (XS)
|
||||
- [x] XOR, = — exactly one alternative, not at least one (S)
|
||||
|
||||
Reference in New Issue
Block a user