# Capability-Matrix — Wertstrom-Improvement (Phase 2+3, 21.07.2026)

> Entscheidungsgrundlagen: KORPUS-REPORT.md (deterministisch, 25 JSON/73 Alternativen/3224 Nodes),
> 3 Bestandsanalysen (UI/Workflow, Architektur/Datenmodell, Berechnungen/Integrationen/Tests, 21.07.).
> Scoring nach Prompt §16 (User-Value 20 / Analytical 20 / Lean-Correctness 15 / Ease 15 / Integration 10 / Frequenz 5 / Risk 5 / Maint 5 / Perf 5).
> Frequenzen = reale Zählungen aus dem Korpus. Simplicity-Doktrin: §0 „Powerful in the background, simple in the foreground".

## Bestands-Kernbefunde (Kurzform)

**SupplierPulse /wertstrom heute:** Handgebautes Canvas (kein React Flow), 7 generische Node-Typen, 1 Kantentyp (nur Material), alles manuell (leerer Canvas, 2-Klick-Port-Verbindungen, kein Auto-Layout — alle 3 Bulk-Wege legen y=200-Linie), Engpass = Max-CT-Heuristik, „Timeline" = 1 Prozentbalken, kein Takt im Editor (nur projects.customer_takt_time_sec read-only), keine Szenarien/kein Duplizieren, kein Undo/Multi-Select/Touch/A11y/Fit-View, Properties-Panel 8+ Felder flach ohne Gruppierung, 9/14 editierbare Felder OHNE Eingabe-UI (nur QAF-Import befüllt sie), Excel-Import erzeugt KEINE Kanten, API ohne Zod/Server-Validierung, kein Optimistic Locking, layout-Spalte tot, vsm.read/write-Permissions geseedet aber nirgends durchgesetzt, i18n: hartkodiert Deutsch, Node-Farben am Design-System vorbei, kein E2E. Stark: QVS-Engine (QAF→VSM mit Lineage/Preview/Sync/Idempotenz, 3-Wege-Merge), vsm-metrics mit MetricExplain-Ethos, 425 Tests auf Logik-Ebene, RLS sauber (vsm_own), value_stream_imports-Audit.

**SimVSM-Korpus:** 23 Node-Klassen (Prozess-Familie + fifoStore 487/inventory 212/inventoryPush 93/supermarket 21), materialFlow 3116 + informationFlow 370, Alternativen-Modell (73, isMain + benannt + Abweichungs-Visualisierung), produktspezifische Prozessdaten (ProductTable: Zz/PlannedCycleTime/XLos/XBP/Scrap/Rework/TransferQuantity), Schichtkalender-Entities, Simulation real genutzt (19/25) mit stattable-Ergebnissen (Auslastung/GAE/Durchsatz/DLZ-Histogramm/Bestände), leadTimeLadder-Settings, stopwatch-Provenance-Flag, 2 Schema-Stände.

---

## A. ADOPT NOW (bauen, simplifiziert nach §3)

| # | Capability | SimVSM-Befund (Freq) | SupplierPulse-Ist | Entscheidung + Simplicity-Ansatz |
|---|---|---|---|---|
| A1 | **Quick-Start-Wizard** (geführt: Produkt→Bedarf→Arbeitszeit→Prozesse→Bestände→Ergebnis) | — (SimVSM hat das NICHT — Differenzierung!) | Leerer Canvas | Prompt-Kernforderung §3.1/§10.1. Wizard erzeugt komplettes Layout+Kanten+Takt+Analyse automatisch. 5-Min-Ziel |
| A2 | **Auto-Layout + Auto-Materialfluss** linear | Explizite loc je Node (manuell gepflegt) | Kein Layout-Algo; y=200-Reihen; Excel-Import ohne Kanten | Lieferant links→Prozesse→Kunde rechts, PPS oben, Bestände zwischen Prozessen, Timeline unten (§10.5). Manuelles Verschieben bleibt möglich |
| A3 | **Takt-Berechnung** | Kunde: Quantity/Interval/OrderIndex „Bedarf nach Kundentakt" (64×) | Nur statisches projects-Feld, im Editor unsichtbar | Takt = Netto-Arbeitszeit/Bedarf im Modul berechnen; einfaches Arbeitszeitmodell (Schichten×h−Pausen×Tage); Formel-Erklärung on demand (§8.1/8.2) |
| A4 | **Timeline-Leiter** (VA/NVA-Treppe + DLZ) | leadTimeLadderDisplayMode/-LayerHeight Settings | 1 Prozentbalken | Automatisch generiert, nie manuell (§8.9). Bestandszeiten via Reichweite |
| A5 | **Bestandsreichweite** (Little's Law) | DelayTime/InitialStock/maxCarrierNum | quantity+demand koexistieren unverrechnet | Reichweite in min/h/Schichten/Tagen, konsistente Bedarfsbasis (§8.5) |
| A6 | **Engpass v2** | UtilizationProcessesBottleneck/BNZ-Ergebnistabellen | Max-CT-Heuristik | Effektive CT (Parallelität/Verfügbarkeit/Scrap) vs. Takt, Begründung in Klartext + Konfidenz, Override mit Grund (§8.8/§11.5) |
| A7 | **Informationsfluss-Kantentyp** | informationFlow 370× (direct/lightning, text-Label) | Ein Kantentyp | 2. Kantentyp gestrichelt, Quelle→Ziel→Typ(→Frequenz), keine Matrix (§11.4) |
| A8 | **Lager-Differenzierung: FIFO / Supermarkt / Push** | fifoStore 487! / supermarket 21 / inventoryPush 93 | Nur generisches inventory | 3 Untertypen des Bestands-Elements (ein „Add"-Eintrag mit Auswahl, nicht 3 Palette-Slots). FIFO mit Kapazität |
| A9 | **Szenarien: Ist/Soll + Alternativen** | alternatives[] 73, isMain, visualizeMainAlternativeDeviations | Nichts (kein Duplizieren) | „Soll-Zustand erstellen" = 1 Klick (Duplikat + Beziehung + Vergleich §9.1); KPI-Delta-Tabelle; Parameter-Abweichungen im Detail-Panel. DB: parent_value_stream_id + scenario_kind (Migration!) |
| A10 | **Zentrale Berechnungs-Engine v2** | resultData-Katalog als Ziel-Referenz | vsm-metrics gut, aber Lücken (keine Auslastung/PCE/Reichweite); hasCtWarning inline in JSX | Ausbau vsm-metrics: Auslastung/Kapazität, PCE benannt, Takt, Reichweite, Scrap/Rework-Wirkung, Double-Counting-Schutz (§8.3), alles mit MetricExplain (Muster existiert!) |
| A11 | **Validierungs-Engine** | disabledValidationCategories (SimVSM hat Kategorien) | Praktisch nichts (kein Zod, keine Plausibilität) | Struktur/Zeit/Kapazität/Qualität/Bestand nach §17, verständliche Warnungen (Was/Warum/Wert/Fix), kritische immer aktiv, Zod an API |
| A12 | **Provenance-Generalisierung** | stopwatch-Flag an time-Werten | fieldStatus nur für QAF-Pfad | Werte-Semantik geplant/gemessen/berechnet/importiert/angenommen für ALLE Erzeugungswege; kleine Labels+Tooltips (§7.3). Nie still überschreiben |
| A13 | **Standard/Expert-Trennung + Progressive Disclosure** | SimVSM zeigt alles (Negativ-Vorbild) | 8+-Felder-Panel flach; 9 Felder ganz ohne UI | Essential: Name/CT/Operatoren/Bestand (§7.1); Advanced aufklappbar (§7.2 inkl. der 9 verwaisten Kostenfelder); Expert-Mode für Kalender/Multi-Produkt/Simulation |
| A14 | **Daten-Tabellen-View + Excel-Paste** | — | Nur Canvas; Excel nur Datei-Upload mit exakten Headern | 1 Zeile/Prozess, Inline-Edit, Paste aus Excel, Missing-Data-Indikatoren (§10.1); gleiche Datenbasis wie Canvas |
| A15 | **Management-Analyse in Klartext** | resultData nur Tabellen (Negativ-Vorbild: „nur Werte") | Nichts | Auto-Sätze mit Zahlenbezug (§18), traceable zur Engine |
| A16 | **SimVSM-Import-Adapter** (optional) | 2 Schema-Stände, sauberes JSON, Familien/Alternativen | value_stream_imports-Infrastruktur existiert (QAF) | GERECHTFERTIGT: Kais' Beratungs-Workflow hat reale SimVSM-Bestände (Versionsreihen im Korpus). Optionaler Adapter nach §14: Multi-File, Familien-Erkennung, Preview, Mapping-Registry (§14.3-Tabelle validiert), idempotent, Quell-Metadaten erhalten, nie still überschreiben |
| A17 | **Präsentationsmodus + Diagramm-Export** | SVG-Exporte sind SimVSMs Verteilformat (24 im Korpus!) | Kein SVG/PNG/PDF, kein Präsentationsmodus | Fullscreen clean + Fit-to-screen + KPI-Header (§11.6); SVG/PNG-Export des Canvas; PDF-Report über bestehenden export-service |
| A18 | **Maßnahmen aus Engpass/Kaizen** | noteVSM 15 (Kaizen-Blitze) | workshop_actions existiert, 0 Verknüpfung | Kaizen-Marker-Element + „Maßnahme erstellen" am Element (§15.5), Link-Feld statt Duplikat |
| A19 | **Basis-Editor-Härtung** | — | Fehlt alles | Undo/Redo, Fit-View, Multi-Select, Copy/Paste, Touch-Events, A11y-Basis, Autosave-Konflikt-Schutz (Optimistic Locking), layout-Spalte nutzen |

## B. ADAPT SIMPLIFIED

| # | Capability | SimVSM | Ansatz |
|---|---|---|---|
| B1 | Multi-Produkt je Prozess | ProductTable.rows produktspezifisch (Kern-Komplexität!) | Standard: 1 Produkt (aus Projekt/QAF autom.). Expert: Produkt-Zeilen je Prozess. NIE Pflicht (§6.4) |
| B2 | Schichtkalender | Entities {id,name,shifts} + Referenz je Node | Standard: 1 einfaches Arbeitszeitmodell pro Wertstrom. Expert: benannte Kalender. Nie Pflicht (§12.3) |
| B3 | OEE | Availability+MTTR je Prozess, GAE-Ergebnisse | Verknüpfung zum EXISTIERENDEN lib/oee-Modul (echte Formel + Warnungen) statt Freitextfeld; Availability einfach am Prozess, MTBF/MTTR Expert |
| B4 | Externer Transport | NumberOfTransporter/VehCapacity/WayBackTime | Standard: Transportzeit+Frequenz. Rest Expert |
| B5 | Rework | ReworkRate + Min/MaxReworkingTime + Rework-Routen | Rate+Zeit am Prozess, Kapazitätswirkung in Engine; keine Rework-Routing-Knoten (§8.7: Scrap≠Rework) |
| B6 | Anmerkungs-Elemente | noteAnnotation 129/customText 59/image 49/Formen | Ein „Notiz"-Element + Kaizen-Marker. Keine Formen-Bibliothek |

## C. RETAIN EXISTING (schützen + sichtbarer machen)

- QVS-Engine komplett (Mapper qvs-1, Preview, Idempotenz, Sync/Reimport, Lineage) — **Entry-Point zusätzlich auf /wertstrom-Startseite** (heute in fremden Modulen versteckt)
- LSC/Stoppuhr-Übernahme (beide Pfade) — plus Provenance-Kennzeichnung „gemessen"
- vsm-metrics MetricExplain-Vertrag — wird Engine-Standard
- RLS vsm_own, value_stream_imports-Audit, Copilot-Export (erweitern um neue KPIs)
- Alle 425 bestehenden Tests (Regression-Schutz)

## D. DEFER (dokumentiert, nicht jetzt)

| Capability | Grund |
|---|---|
| Ereignis-Simulation | §13: statische Analyse beantwortet die Management-Fragen (Takt/Kapazität/Engpass/Reichweite/DLZ). Simulation = eigenes Großprogramm; Korpus zeigt reale Nutzung (19/25) → als Expert-Kandidat dokumentiert, resultData-Anzeige aus Import später denkbar |
| Produkt-Transformations-Graph (usedInProduct, joinProcess-BOM) | Erst mit Multi-Produkt-Expert sinnvoll; PartsListTable nur 41× |
| VSM-Offline-Fähigkeit | Eigene Architektur-Baustelle (Dexie-Queue), nicht Wertstrom-spezifisch |
| Vollständige Dokumentversionierung | ADR-024 G9; Szenario-Modell (A9) deckt den Methodik-Bedarf |

## E. REJECT (bewusst nicht)

Simulations-Pflichtsettings im Standard (Statistikreset/Zufallszahlen/Start-Enddatum) · SetupTimeMatrix (Korpus nutzt selbst nur `simple`!) · ExitStrategy-Konfiguration (98% ein Wert → Auto) · AllBaseProdInStorageNecessary + Simulations-Interna · Grid/Axes/guidedDragging-Settings-Wust (Auto-Verhalten statt Konfiguration) · Permanente Symbol-Bibliothek links (§10.6) · SimVSM-Icons/Branding/Pixel-Look (IP!) · Interne Kürzel im UI (XBP/XLos/Zz/BP — §3.5-Übersetzungstabelle Pflicht) · Rework-Routing-Knoten · foreignOrders (2×) · shapeRectangle/lightningNote/exclamationPointNote als eigene Typen (1-14×, durch Notiz-Element abgedeckt)

---

## Implementierungs-Phasenplan (PR-Serie, Loop: Agent→adversarialer Review→Fix→CI→Merge→Deploy-Verify)

- **P0 Fundament-Fixes** (risikoarm, sofort): Excel-Import-Kantenbug, Zod-Validierung beider API-Routen (+Referenz-Integrität nodes↔connections), Optimistic Locking (updated_at-Guard), vsm.read/write-Enforcement, Fit-View + layout-Spalte nutzen, is_demo in Typ, Node-Farben als CSS-Variablen
- **P1 Berechnungs-Engine v2 + Validierungs-Engine** (A3-A6, A10, A11, B5-Anteile): pure lib, MetricExplain, Tests gegen Handrechnungen; noch ohne UI-Umbau
- **P2 Datenmodell + Migration** (A7-A9, A12): Kantentypen, Bestands-Untertypen, Szenario-Spalten (parent_value_stream_id, scenario_kind), Provenance-Feld; **Migration operator-applied durch Kais (Stufe 4: SQL+Rollback via TG)**
- **P3 Quick-Start + Auto-Layout + Timeline** (A1, A2, A4): das UX-Herz
- **P4 Panel-Redesign + Tabellen-View** (A13, A14, B1-B4-Standard-Seite)
- **P5 Szenarien-UI** (A9-UI: Soll erstellen, Delta-Vergleich, Abweichungs-Panel)
- **P6 SimVSM-Import** (A16): Parser+Familien+Preview+Mapping-Registry+Fixtures (anonymisiert!)
- **P7 Analyse + Präsentation + Exporte** (A15, A17, Copilot-Erweiterung)
- **P8 Integration + Polish** (A18, B3-OEE-Link, i18n DE/EN, A11y, Touch, E2E, DoD-Abgleich §24)

Sicherheits-/Vertraulichkeits-Leitplanken: keine Lieferanten-Rohdaten in Fixtures/Commits (Fixtures = anonymisierte Syntheseformen aus Schema-Wissen); keine SimVSM-Assets; Feature-Flags für P3/P5/P6.
