feat: Größen-Konflikt — Teilpakete müssen zur angegebenen Größe passen (D62)
Größen zählen für diese eine Prüfung als Bereiche (Untergrenzen verdoppeln sich, XXL nach oben offen); Konflikt erst, wenn selbst die günstigste Lesart der Kinder die großzügigste des Elternknotens erreicht. Warnung sizeConflict an der Elternzeile, Badge in --warn, Grund in Tooltip und aria-label. Nichts wird automatisch korrigiert. Nebenbefund behoben: der Grafikexport zeichnete das Größen-Badge mit festen Farben — das invertierte implizite M stand seit jeher gefüllt im Bild. Die acht berechtigten Konflikte im eigenen Plan sind nachgezogen. 372 Tests, 16 neue. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
257e1a9c17
commit
5b37c117e1
@@ -109,6 +109,15 @@ One node per line. Everything except the label is optional.
|
||||
- From `(M)` upward a node **should be decomposed further**; a node ≥ M
|
||||
without children gets a placeholder hint in the diagram.
|
||||
- For cost estimation a missing size counts as `M`.
|
||||
- **Size conflict check:** a given size must fit the direct children. Each
|
||||
size is read as a range (lower bounds double: XS=1, S=2, M=4, L=8, XL=16,
|
||||
XXL=32; the upper bound is the next lower bound, XXL is open-ended). It is
|
||||
a conflict — warning `sizeConflict` at the parent's line — only when the sum
|
||||
of the children's lower bounds reaches the parent's upper bound, i.e. when
|
||||
it is wrong under *every* reading. Only sized, non-optional, non-discarded
|
||||
direct children count; in an `|`/`=` group only the smallest alternative.
|
||||
An XXL parent never warns; nothing is corrected automatically. When you
|
||||
write plans, pick parent sizes that pass this check.
|
||||
|
||||
### Token extraction order (why nothing collides)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user