GF-Sprache statt Engineering-Enums

Problem

Pipeline-States in der DB heißen calculated, extracted, blocked, feasibility_done. Für Entwickler ok, für GF/Geschäftsführer der ein Demo-Report kriegt: unleserlich oder, schlimmer, falsch interpretierbar.

  • extracted klingt für GF wie „halbfertig” / „liegt rum”. Gemeint ist: „LLM-Konfidenz zu niedrig, Rückfrage offen”.
  • blocked klingt wie „Fehler”. Gemeint ist eine fachlich saubere Reaktion auf eine Datenlücke.
  • calculated klingt nüchtern. Gemeint ist „Angebot fertig zum Versand”.

Pattern

Vor jeder Kunden- oder GF-Demo: Mapping-Funktion im Report-Generator, die den Enum auf einen deutschen Business-Begriff umsetzt + Tone (ok/warn/err/neutral) für die Pill-Farbe.

function statusBusinessLabel(status, dbState) {
  // Bei "blocked" zusätzlich Bemerkungen aus machbarkeit_pruefungen inspizieren —
  // sonst sieht "fehlt Anlage" gleich aus wie "fehlt Material im Stamm".
  if (status === 'blocked') {
    const bems = (dbState?.machbarkeit ?? []).map(m => m.bemerkung ?? '').join(' | ').toLowerCase();
    if (bems.includes('keine anlage')) {
      return { label: 'Eskalation an Betriebsleiter (keine Anlage)', tone: 'warn' };
    }
    return { label: 'Datenlücke im Stamm', tone: 'warn' };
  }
  // ...
}

Schlüssel-Regeln

  1. Nie nur den Enum mappen — immer prüfen, ob mehrere Fachbedeutungen hinter dem gleichen Enum stecken. Bei BAS-Twin: blocked kann „Datenlücke” oder „Eskalation Betriebsleiter” sein. Differenzieren via Begleitfelder (hier: machbarkeit.bemerkung).
  2. Tone für die Pill-Farbe explizit setzen — nicht jedes „blocked” ist rot. „Eskalation an Betriebsleiter” ist gelb (Handlungsbedarf, kein Fehler), „Datenlücke” auch gelb, echtes failed ist rot.
  3. Disclaimer-Banner über die Fixture-Liste, der die Labels erklärt — sonst muss der GF beim ersten gelben Status nachfragen.
  4. Engineering-Enum trotzdem mitsenden im Hover/Tooltip oder im DB-Storage-Pointer, damit Devs es im selben Report nachvollziehen.

Anwendbar wenn

  • Pipeline-Statusfeld hat ≥ 3 Werte
  • Report wird Externen (GF, Vertrieb, Kunden) gezeigt
  • Status hat mehrere Fachbedeutungen je nach Kontext (z. B. unterschiedliche Eskalations-Adressaten)

Anti-Pattern

  • Reine Enum-Anzeige im Report ohne Mapping
  • Status-Pill-Farbe nur nach „success/failed” ohne Warn-Nuance
  • Mapping in jedem Report neu — gehört in einen zentralen Helper

Quelle

Erstmals angewandt im BAS-Twin Synthetic-E2E-Demo-Lauf 2026-05-14. Trigger war GF-Demo-Termin Becker — GF sollte den Report ohne Engineering-Kontext lesen können.