Project State — BAS-Twin
Hinweis: Pilot-State, von Agent initial geschrieben am 2026-05-21 aus
_index.mdrekonstruiert. Marvin: bitte Letzte Entscheidung + Nächste Frage gegenchecken und ggf. präzisieren — ich kenne den genauen aktuellen Tagesstand von Sprint 1 Tag ~11 nicht.
Letzte Entscheidung
Stammdaten-Verbesserungen in PR #33 nachgezogen (2026-05-22 00:45):
- Schema-Migration
kunden.standard_legierung+standard_zustandals Vorbereitung fuer Phase-B Frage 4. Antwort-unabhaengig — solange Spalten leer bleiben, unveraendertes Pipeline-Verhalten. Bei Alex-Bestaetigung kann der Extract-Stage ohne Schema-Aenderung den Fallback aktivieren. - Schema/CONTEXT.md Pipeline-Lookup-Inventar — wer liest welche Stamm-Tabelle wann. Plus expliziter Hinweis dass drei Material-Quellen (materialien, bas_artikel, bas_vormaterial) koexistieren und Drift ein Risiko-Punkt ist.
- Loader-Quality-Gates — SHA256-Dedup (skip wenn unveraendert) + Empty-Check (throw bei 0 rows) + Drop-Threshold 50% (warn). Schutz gegen versehentliches Ueberschreiben mit Schrott.
Branch feat/stammdaten-loader-parsers mit 3 neuen Commits gepusht (b1bba90 schema, 5c0b2a1 docs, 5048ef6 quality-gates), 26/26 Loader-Tests gruen, typecheck clean.
Defaults-Strategie für Phase B beschlossen (2026-05-21): Wir warten nicht auf Alex blocking, sondern setzen plausible Defaults und kalibrieren nach. Konkret:
- Frage 1 Verschnitt → Default v17-Modell (5% flach, kein separater Schrott-Erlös).
step04-verschnitt.tsumschreiben. - Frage 2 BarEK → Default step01 deaktivieren (BarEK = 0). Einkaufspreis = LME + Güte-Zuschlag.
- Frage 3 Liefertermin → Default „heute + 4 Wochen” wenn
wunsch_lieferterminnull, Quelle'default-asap'. - Frage 4 Standard-Legierung → Status quo (Rückfrage), Schema-Migration erst wenn Alex Ja sagt.
WhatsApp mit 4 Fragen am 2026-05-21 verschickt. Demo zeigt 14 Synthetic-Fixtures, nicht Alex’ Excel-Zeile — Golden-Path E2E ist nur interner Kalibrierungs-Test.
Außerdem: Repo-Stand sortiert (2026-05-21 abend) — Schema-Fix NULLS NOT DISTINCT für bas_vormaterial UQ committed (Plan §D7, Idempotenz des Stammdaten-Loaders) + Kanban Phase-B-Items + WhatsApp-Draft. Aktiver Branch feat/stammdaten-loader-parsers 7 Commits voraus, jetzt gepusht.
Nächste Frage
Phase 3 (Stammdaten-Loader Orchestrator+CLI) ist lokal schon in PR #33 drin. Soll #33 als Phase 2+3 zusammen mergen, oder Phase 3 in eigenen Branch ziehen (cherry-pick) damit der PR sauber bleibt?
Parallel zu klären: welche PRs zuerst durch (#32 ist Base von #33, #24 CI-Gate sollte vorher rein, #23 Stage 5 PDF ist demo-kritisch).
Decisions-Log
- 2026-05-22 — Stammdaten-Verbesserungen (Items 1-3) in PR #33: kunden.standard_legierung-Schema + Pipeline-Lookup-CONTEXT + Loader-Quality-Gates
- 2026-05-21 — Defaults-Strategie für Phase B: nicht warten, plausible Defaults setzen, nachher kalibrieren
- 2026-05-21 — Phase-B-Fragen an Alex von 2 auf 4 erweitert (Liefertermin-Default + Standard-Legierung pro Kunde), WhatsApp verschickt
- 2026-05-21 — Schema-Fix
bas_vormaterialUQ als NULLS NOT DISTINCT committed (Idempotenz Stammdaten-Loader) - 2026-05-15 — Aufwandsschluessel Phase A live, Marge-Default 4,5→12%
- 2026-05-14 — Synthetic E2E + Demo-Report live (14 Fixtures, Stripe-Design, GF-Sprache, Eskalations-Logik)
- 2026-05-13 — Stage 4 Calculate live (Phase 3), 8-Schritt-Pipeline mit LME-Lookup, kalkuliert 12/14 Synthetic-Fixtures inkl. Multi-Position
- 2026-05-12 — ce-review abgeschlossen: 3 P0 + 36 P1 done, 8 Out-of-Scope dokumentiert
- 2026-05-06 — Angebot V3 von Ralf inhaltlich angenommen (Vertrag noch offen)
Offene Baustellen
Aktive Branches / Code-Arbeit
- Stammdaten-Loader-Refactor (4 Phasen) auf
feat/stammdaten-loader-parsers- PR #32 Phase 1 Schema (6 neue
bas_*-Tabellen) — wartet auf Merge, Base für #33 - PR #33 Phase 2 Parser (5 Parser, 25/25 Tests grün) — wartet auf #32 + jetzt mit Phase 3 + Schema-Fix erweitert
- Phase 3 (Loader-Orchestrator + CLI) lokal commited
- Phase 4 Integration-Smoke gegen S3 + CONTEXT.md — noch zu bauen
- PR #32 Phase 1 Schema (6 neue
- Phase-B Defaults (eigener Branch von main nach Stammdaten-Merge) — 3 Code-Anpassungen: step04 v17-Modell, step01 deaktivieren, Liefertermin-Fallback. Plus Golden-Path E2E grün gegen Default-Wert.
- Rueckfrage-Outbox (Issue #12) — Pipeline setzt nur Status, schickt keine Email-Drafts. Acceptance:
rueckfragen-Row +notifications-Outbox-Eintrag. Entkoppelt von Phase B, kann parallel laufen.
Offene PRs aufzuräumen
- PR #6 pre-sprint review (14 Tage alt) — mergen oder schließen?
- PR #21 Sprint-1 DoD-Stand 12.05. — vermutlich überholt, schließen?
- PR #24 CI Merge-Gate — sollte VOR allen anderen Merges rein
- PR #23 Stage 5 PDF-Generation — demo-kritisch, ohne PDF kein Angebots-Output
- PR #20 7 realistische Fixtures — demo-relevant
Warten auf extern
- 4 Klaerungsfragen an Alex verschickt 2026-05-21 — siehe phase-b-alex-klaerungsfragen
- Vertrag Werkvertrag + AVV + NDA — alle drei stehen aus, Ball bei Becker (siehe becker)
- NDA liegt bei Marvin zur Unterschrift
Sprint 2 / später
- Eskalations-Trigger (Betriebsleiter-Push für „keine Anlage gefunden”) — heute nur Status-Label im Report
- Sprint 2 Planung — Scope nach Demo entscheiden
- Auth + RLS (Sprint 2)
- Sprint 1 Demo-Vorbereitung für Stichtag 31.05. (Marvin + Alex)