# Bereich: Kanban-Engine (kartenbasierte Themenverarbeitung) beschreibung: Verteilt einen Themen-Run als Kanban-Board über mehrere Stages und zieht Karten worker-gesteuert durch die Verarbeitung. ## Feature: Themen-Run starten und überwachen [kern] beschreibung: Initialisiert pro Topic den Laufzeit-Zustand, fährt Worker pro Stage hoch und meldet den Live-Fortschritt der Karten im Fluss. ### Kann für ein Topic einen Lauf starten, Worker hochfahren und live registrieren einheiten: backend/kanban.py::run_flow ### Kann den Laufzeit-Zustand pro Topic (aktive Worker, Producer, Wachsignal) führen einheiten: backend/kanban.py::Flow ### Kann sekündlich die Gesamtzahl der Karten im Fluss als deutschen Statustext melden einheiten: backend/kanban.py::_progress ## Feature: Board und Stages modellieren [kern] beschreibung: Bildet die Spalten eines Kanban-Boards mit Verarbeitung und Verhaltens-Flags ab und verknüpft Vorgänger-Stages automatisch. ### Kann eine Kanban-Spalte mit zugeordneter Verarbeitung und Verhaltens-Flags (Serial, Drain, Barrier, Gate) beschreiben einheiten: backend/kanban.py::Stage ### Kann Vorgänger-Spalten automatisch verketten, sodass Barrier-Worker ihre Quellen kennen einheiten: backend/kanban.py::chain_stages ## Feature: Karten worker-gesteuert abarbeiten [kern] beschreibung: Pullt Karten aus der Queue der eigenen Stage, hält mehrere Pakete gleichzeitig und wartet reaktiv auf neue Arbeit. ### Kann Karten pullen, mehrere Pakete gleichzeitig halten und beim Stopp alle laufenden Tasks sauber abbrechen einheiten: backend/kanban.py::_worker ### Kann reaktiv auf neue Arbeit warten, statt dauerhaft zu pollen einheiten: backend/kanban.py::_sleep_wake ### Kann Ruhe über aktive Worker und Queue-Bestand zuverlässig erkennen und zum Beenden auflösen einheiten: backend/kanban.py::quiescent ## Feature: Fehler im Karten-Lauf behandeln [kern] beschreibung: Wiederholt fehlgeschlagene Karten mit exponentiellem Backoff und verschiebt erschöpfte Karten in die Dead-Letter-Stage. ### Kann fehlgeschlagene Karten mit Backoff wiederholen oder als Dead-Letter ablegen, ohne bereits weitergerückte Karten zu bestrafen einheiten: backend/kanban.py::_fail_package # Bereich: Pipeline-Steuerung (Guide-Laufzeitverwaltung) beschreibung: Orchestriert parallele Agent-Aufrufe für einen Guide, verwaltet Stornierung und Fortschritt und stellt Helfer für Prompt-Bau sowie Fehlerformatierung bereit. ## Feature: Guide-Abbruch handhaben [kern] beschreibung: Markiert einen Guide als abgebrochen, beendet laufende Agent-Slots und gibt die Sperre für einen Neustart wieder frei. ### Kann einen laufenden Guide abbrechen, zugehörige Agent-Slots stoppen und den Datensatz als fehlgeschlagen markieren einheiten: backend/pipeline.py::cancel_guide ### Kann den Stornierungsstatus eines Guides abfragen einheiten: backend/pipeline.py::is_guide_cancelled ### Kann nach einem Abbruch die Sperre lösen, damit der Guide neu gestartet werden kann einheiten: backend/pipeline.py::clear_guide_cancelled ## Feature: Live-Fortschritt und Statusmeldungen [kern] beschreibung: Schreibt Fortschritt, Schrittnummer und Fehler persistiert und meldet nebenläufige Jobs mit Live-Zähler an einen Reporter. ### Kann Fortschritt, Schrittnummer und Fehlermeldung im Guide-Datensatz persistieren einheiten: backend/pipeline.py::_set_progress, backend/pipeline.py::_set_step, backend/pipeline.py::_fail ### Kann nebenläufige Jobs mit Live-Zähler an einen Reporter melden und auch bei Ausnahmen weiterzählen einheiten: backend/pipeline.py::_gather_progress ### Kann Info-Meldungen mit Topic-Präfix einheitlich loggen einheiten: backend/pipeline.py::_log ## Feature: Parallele Agent-Slots orchestrieren [kern] beschreibung: Startet mehrere Agent-Slots parallel, sammelt bis zum Quorum gültige Ergebnisse und reagiert auf Stornierung und Infrastrukturfehler. ### Kann mehrere Agent-Slots parallel starten und auf eine konfigurierbare Quorum-Anzahl gültiger Ergebnisse warten, mit Hedging, Grace-Periode und Infrastruktur-Retries einheiten: backend/pipeline.py::_race ### Kann Pipeline-Parameter einmal bündeln und durch alle Pipeline-Glieder reichen einheiten: backend/pipeline.py::GenContext ## Feature: Fehler klassifizieren und formatieren [rand] beschreibung: Erkennt Infrastruktur- von inhaltlichen Fehlern und baut kompakte Fehlertexte für Anzeige und Vergleich. ### Kann Infrastruktur- von inhaltlichen Fehlern anhand einer Markerliste unterscheiden einheiten: backend/pipeline.py::_is_infra ### Kann Agent-Fehler aus Returncode und Ausgaben zu einer kompakten Meldung formatieren einheiten: backend/pipeline.py::_claude_error ### Kann aus einer Liste von Slot-Ergebnissen den ersten verwertbaren Fehler auswählen und melden einheiten: backend/pipeline.py::_gather_error ## Feature: Prompt-Bau und Schemavalidierung [rand] beschreibung: Stellt Helfer bereit, um Prompts aus Vorlagen aufzubauen, Timeouts zu berechnen und Agent-Antworten zu validieren. ### Kann Prompt-Vorlagen aus dem Templates-Verzeichnis laden und mit Argumenten ausfüllen einheiten: backend/pipeline.py::_prompt ### Kann zusätzliche Nutzeranweisungen als klar markierten Block an einen Prompt anhängen einheiten: backend/pipeline.py::_extra ### Kann die Timeout-Dauer eines Schritts als Basis plus skalierten Zuschlag pro Eintrag berechnen einheiten: backend/pipeline.py::_timeout ### Kann die Probleme-Liste einer Agent-Antwort bereinigen oder leer zurückgeben einheiten: backend/pipeline.py::_problems_schema # Bereich: Provider-Konfiguration beschreibung: Lädt Umgebung und Provider-Defaults, wählt pro Rolle den effektiven Provider samt Modell und überschreibt Tuning-Werte zur Startzeit. ## Feature: Umgebung und Defaults laden [kern] beschreibung: Lädt eine .env-Datei und stellt den Default-Provider als Pflicht-Voraussetzung für den Start sicher. ### Kann eine .env-Datei laden und damit Umgebungsvariablen setzen, auch über bereits gesetzte Werte hinweg einheiten: backend/config.py::_load_env ### Kann das System ohne konfigurierten Default-Provider gar nicht starten einheiten: backend/config.py::DEFAULT_PROVIDER ## Feature: Provider-Stacks und Rollen-Routing [kern] beschreibung: Stellt mehrere unabhängige Provider-Stacks bereit und routet Agent-Rollen optional auf alternative Provider um. ### Kann mehrere unabhängige Provider-Stacks (Cloud-Auth, API-Key, lokal) mit Modellen und Authentifizierung bereitstellen einheiten: backend/config.py::PROVIDERS ### Kann die vier Agent-Rollen prozessweit auf alternative Provider umleiten einheiten: backend/config.py::ROLE_ROUTING ### Kann für eine Rolle das effektive (Provider, Modell)-Paar unter Berücksichtigung von Overrides und "provider:model"-Syntax liefern einheiten: backend/config.py::resolve_role ## Feature: Schritt-Timeouts und Tuning-Overrides [rand] beschreibung: Definiert pro Agent-Schritt eine Timeout-Paarung und erlaubt numerische Tuning-Overrides per JSON zur Startzeit. ### Kann pro Agent-Schritt ein Timeout-Paar (Basis, Pro-Eintrag) zentral definieren einheiten: backend/config.py::TIMEOUTS ### Kann numerische Tuning-Konstanten aus einer JSON-Umgebungsvariablen zur Startzeit überschreiben einheiten: backend/config.py::_apply_param_overrides