# ACTIVE TASK — Session 43ff4b2e (17.07.2026, ab 21:23 CEST)

## 🔵 NEUES PROGRAMM: QAF → Wertstrom-Integration (RTF-Spec TG 8861)
Kais schickte 21:26 die Spec `Autonomous_QAF_to_Value_Stream_Integration_and_Manufacturing_Flow.rtf`.
- Original + Text-Konvertat: `/home/aria/work/qaf-wertstrom/00-auftrag{-original.rtf,.txt}`
- Kern: One-Click „Als Wertstrom übernehmen" aus jedem QAF mit verlässlichen
  Fertigungsdaten (capability-basiert, KEIN G60-/INPUT-Zwang), additiv zum
  bestehenden /Wertstrom-Modul, Source-Lineage je Feld, Import≠Manuell-Status,
  Preview, Varianten-Strategien, Duplikat-Schutz, Reimport-Sync, Kennzahlen
  (Takt/Bottleneck/VA-Quote), Korpus-Validierung (~374 QAFs), Reports+Schemas
  als Deliverables (reports/qaf-value-stream-*.md, schemas/*.json, mappings/*.yaml).
- Autonome Execution-Loop bis Acceptance Criteria (Sektion 40) erfüllt; nicht
  bei Konzept stoppen. Stufe-3/4-Grenzen bleiben: Merge nach Review, Migrationen
  operator-applied durch Kais.
- An Kais bestätigt: TG 8862 (Plan + „Analyse-Bilanz in ~1h").
- MO-23-Restliste (TG 8849) ZURÜCKGESTELLT bis Kais anders entscheidet.

## Stand JETZT
- Tasks #1-#5 angelegt (Analyse → Architektur/KARs → Implementierung →
  Korpus-Validierung → Regression/Abschlussbericht). Task #1 in_progress.
- 3 Explore-Agents LAUFEN (seit ~21:35): (A) QAF-Pipeline+Extraktion,
  (B) /Wertstrom-Modul komplett, (C) Datenfluss/Entry-Points/Permissions+Korpus.
- Repo-Vorbefund: /Wertstrom existiert mit vsm-editor/config/geometry/metrics,
  ES GIBT SCHON vsm-excel-import-modal + vsm-lsc-import-modal + vsm-stoppuhr-
  picker-modal (bestehende Import-/Mess-Muster wiederverwenden!), lib/vsm-types.ts,
  MO-26/wertstrom-schema.sql. QAF-Seite: lib/qaf/, lib/qaf-differences/,
  lib/qaf-parser.ts, lib/excel/. Korpus: /home/aria/work/qaf-corpus (523 xlsx,
  capability-matrix, clusters/, golden/, manifests/, batch-results).

## Agent-B-Befund /Wertstrom (fertig ~21:45, Voll-Text im Task-Output)
- Modell: value_stream_maps = 1 Zeile/Diagramm, nodes+connections JSONB-Arrays,
  KEINE Versionierung, kein Node-Audit. VsmNode (lib/vsm-types.ts:4-26) HAT schon:
  cycleTimeSec/machineTimeSec/manualTimeSec/setupTimeSec/waitTimeSec/transportTimeSec,
  isValueAdded (binär!), numWorkers, capacityPerHour, processType.
- FEHLT für QAF-Import: Kosten (0 Felder!), Scrap, Varianten-Zugehörigkeit,
  Source-Lineage (nirgends), Import-Status, NNVA-Klassifikation, Operator-Detail.
- Metriken (vsm-metrics.ts): flache Summe ohne Graph-Traversal → Parallelpfade
  würden falsch addiert; Connections-Modell KANN Graph, UI/Metrik nur linear gelebt.
- 3 Import-Muster OHNE Provenance: vsm-excel (dt. Fix-Template, isValueAdded
  hartcodiert true), LSC-Import (mittelt cycle_measurements, reimplementiert
  avgCycleTimeSec inline statt lib/reporting/aggregations), Stoppuhr-Picker
  (setzt planned_cycle_time_sec = SOLL, nicht Messwert!).
- API /api/wertstrom: Auth nur „eingeloggt" + RLS vsm_own (created_by ODER
  project-owner); vsm.read/write-Permission-Codes existieren in DB, werden im
  Code NIE geprüft. LSC-Import umgeht API (Browser-Supabase direkt).
- Editor: kein Undo, kein Auto-Layout, VSM-Titel im Editor nicht editierbar,
  Save/Autosave sendet nur {nodes,connections}, layout-Spalte tot, kein Export,
  i18n nur Nav-Label, Desktop-only. Tests: nur reine Helfer, keine API/Editor/
  Import-Tests, keine e2e.
- QAF↔VSM: heute NULL Verbindung. qaf_g60_tab.aggregate JSONB hat Kosten-Buckets
  (Pers/Mach/AV/MfgTot/Scrap/HK/Sur/Sales/TC).

## Agent-C-Befund Datenfluss/Entry-Points/Korpus (fertig ~21:50)
- ES GIBT SCHON eine QAF↔Prozess-Brücke: qaf_manufacturing_step (Fertigungs-
  Zeilen je QAF), qaf_process_mappings (QAF-Zeile↔process_steps, ABER laxe RLS:
  nur auth.uid() IS NOT NULL!), qaf_step_match (ALT/NEU-Matching),
  lib/qaf/process-mapping.ts (scoreCandidate). VsmNode-Timing-Felder laut Agent
  „deckungsgleich" mit QAF-Fertigungszeilen.
- QAF-Ergebnis-UI: app/project/[id]/qaf (qaf-client: Upload, Vergleichs-Board,
  Mapping-Dialog), app/qaf-differences/[id] mit 4 comparison_modes (g60,
  multi_qaf, multi_qaf_variant_vs_standard, summary; Registry comparison-mode.ts),
  Kalkulator. /wertstrom ist eigenständige Top-Level-Route, KEINE Verlinkung
  von Projekt-Seiten dorthin.
- Entry-Point-Kandidaten (Agent-Ranking): 1. project/[id]/qaf (Mapping existiert),
  2. qaf-differences/[id] summary/g60 (qaf_manufacturing_step sichtbar, neben
  Export-Buttons), 3. Kalkulator, 4. /wertstrom-Create (source-Param), 5. Projekt-
  Übersicht (Verlinkung fehlt generell).
- Permissions: RLS-basiert (14 qaf_*-Tabellen: _own project-owner + _admin),
  App-Code prüft fast nur „eingeloggt"/isAtLeastRole(admin). KEIN Kosten-
  Permission-Code. docs/authorization_model.md + feature_entitlement_model.md
  sind VERALTET (Entitlement-Layer 26.05. entfernt) — nicht danach richten.
- Flags: FeatureFlagsSchema strict in config/profiles/profile.ts, neues Flag =
  Schema + alle 3 Profile (default/bmw/_template) + check:profiles. `wertstrom`-
  Flag existiert (bmw: true). KEIN QAF-Flag.
- Konventionen: KEIN reports//schemas//mappings/ im Repo (Spec verlangt sie —
  neu anlegen). docs/adr/ (23 ADRs, ADR-019 Golden Path new:module),
  docs/runbooks/multi-qaf-rollout.md relevant.
- Korpus: 374 kanonisch (incoming/QAFs/<name>), splits dev=227/validation=70/
  holdout=75 (deterministisch, stratifiziert). ⚠️ HOLDOUT am 16.07. (KAR-963/P6)
  bereits VERBRAUCHT — nicht mehr jungfräulich; kein challenge-Split existiert.
  clusters/golden/schemas/patterns/normalized/mutations/logs = LEER (Scaffold).
  profiles/ (~300 Struktur-JSONs + corpus.duckdb) nutzbar.
- Batch-Runner: cd /home/aria/work/kadi-v2 && npx tsx /home/aria/work/qaf-corpus/
  tools/batch-runner.ts <input-dir> <output-json> (cwd-Pflicht wegen @/-Alias).
  Repo-Regression: npx vitest run detect-g60-corpus-sweep (dev-Split, 227).
  25 real-files-Tests: 7 → qaf-corpus, 18 → work/qaf-compare-kar824/input
  (16 Multi-QAF-Fixtures, ANDERES Set, Pfad im Repo evtl. /root/… → prüfen).

## 🏁 P0 KOMPLETT ~22:25 — P1 LÄUFT
- ✅ P0 DONE: Fakten-Review (~120 Claims, 10 Korrekturen, Commit d425c72; wichtigste:
  qaf_process_mappings-RLS seit KAR-890/09.07. geschlossen — Reports waren veraltet;
  mfg_quantity_per_quoted_part statt mfg_parts_per_quoted_part), Spec-Quelle als
  reports/qaf-value-stream-spec-source.txt beigelegt, CI grün, PR #334 squash-
  gemerged → main=94f3b8e, KAR-969 Done, Epic KAR-968 In Progress. TG 8864.
- ✅ Korpus-Evidenz-Scan (dev-Split 227/227 ok, Skript+JSON im Scratchpad, Notiz
  work/qaf-wertstrom/korpus-evidenz-scan-2026-07-17.md): Rüst-ZEIT/Hand-Maschinen-
  Split/Warte-/Transportzeit = 0/227 (→ Limitation, nie fabrizieren); Kapazität
  221/227 + Losgröße 220/227 (→ P4: sum_planned_capacity + sum_lot_size parsen).
  KAR-973 entsprechend präzisiert. dev.json-Format: [{file, stratum}].
- 🔄 LÄUFT: P1-Implementierungs-Agent (KAR-970, Branch qvs/p1-mapper-scaffold):
  VsmNode-Erweiterung + lib/qaf-value-stream (mapper/naming/va-classification/
  capability pur) + Flag qafValueStream (3 Profile false) + ADR + Drift-Test +
  Real-Korpus-Test (Pflicht) + Evidenz-Report + CHANGELOG. Gates: typecheck/
  eslint/Voll-Suite/portability strict. Agent öffnet PR, merged NICHT.
- DANACH: Review-Workflow auf P1-PR → Fix-Agent → CI → Squash-Merge → KAR-970
  Done → P2 (Migration value_stream_imports → Kais!) starten.

## PROGRAMM-STAND ~22:00 (alles erledigt bis P0-Review)
- ✅ Analyse fertig (3 Agent-Maps), TG-Bilanz 8863 an Kais
- ✅ P0-Deliverables geschrieben + committed: Branch qvs/p0-analysis-reports,
  Commit 8161742, PR #334 (docs-only): reports/qaf-value-stream-{current-state,
  gap-analysis,architecture,field-mapping,ux-flow}.md + mappings/qaf-to-value-
  stream-mapping.yaml (qvs-1) + schemas/{qaf-value-stream-import,value-stream-
  process-source}.schema.json + CHANGELOG-Eintrag
- ✅ Linear-KARs angelegt (MCP-Tools funktionieren — Ops-Env-Key-Warnung betraf
  nur Hook): EPIC KAR-968, Phasen KAR-969 (P0, In Review) … KAR-976 (P7)
- 🔄 LÄUFT: adversarialer Fakten-Review der Reports (Explore-Agent prüft alle
  file:line-Claims + 22 Canonical-IDs + Struktur-Behauptungen)
- DANACH: Review-Findings fixen → CI-Check #334 → Squash-Merge (Stufe 3) →
  QVS-P1 starten (KAR-970: Modul-Scaffold, Flag, Mapper pur, Korpus-Evidenz-Scan)

## Architektur-Kurzreferenz (für Nachfolger-Session)
- Leitentscheidungen E1-E7 in reports/qaf-value-stream-architecture.md; Kern:
  aus qaf_manufacturing_step lesen (NICHT neu parsen), additives Node-JSONB,
  neue Tabelle value_stream_imports (P2, Migration→Kais), project_id-Zwang aus
  QAF-Quelle, Flag qafValueStream überall false bis P6-Validierung, nie
  fabrizieren (Multi-QAF hat KEINE Schritt-Ebene je Variante — bridge.ts:86-100)
- Feld-Mapping qvs-1: 14 primär (name, cycleTimeSec, numWorkers, machineType,
  + NEU location/currency/partsPerCycle/scrapRate/scrapCostPerUnit/
  machineHourRate/laborCostPerUnit/setupCostPerUnit/costPerUnit), 8 metadata-
  only, 0 verworfen; ruestkosten NIE auf setupTimeSec (Kosten≠Zeit)
- vaClass konservativ (va/nnva/nva/unknown), nie auto-va; isValueAdded bleibt
  kompatibel (= vaClass==='va')

## Kontext letzte Session (15232875, erledigt)
- 17.07.: 3 PRs live+verifiziert (#331 FB-36/41, #332 FB-48/49a, #333 offline-sync
  updated_at). main=5ac7d47, Checkout sauber auf main.
- Offene Follow-ups (kein Druck): registry process_steps incrementalSync,
  lsc-Trigger-Bug, toter shiftRecordRepo, Harness-r6-drop-Nachladen, KAR-964,
  KAR-965, Worktree-Einsammlung durch lint/vitest (Repo-Hygiene).
- Lokale Alt-Branches (mo23/fb-36-41, kar-954, kar-963): Löschen braucht
  Kais-Go (safety-Hook blockt branch -D).

## Umgebungs-Notizen (weiter gültig)
- Session läuft als User `aria` (uid 1001), kein Docker-Zugriff →
  RLS-Tests via portable PG17: scratchpad/rls-local.sh + scratchpad/pgroot
  (session-spezifisch, bei Bedarf neu aufsetzen; Vorlage siehe Session 15232875).
- Postgres auf Port 5432 gehört User `caddy` — FREMD, nicht anfassen.
- Voll-Suite lokal: `npx vitest run --exclude "**/.claude/**"` (Worktree-Einsammlung).
- Hook-Zähler-Bug: session-start.sh meldet „Dateien: 0" trotz 12 Sektionen
  (kosmetisch, Kais informiert TG 8860).
