# Portabilität: SYSTEM
# Version: 1.1.0
# Zuletzt validiert: 2026-02-08
# Nächste Prüfung: 2026-05-08

USECASES - Workflow-Testfaelle und TUeV-System
===============================================

BESCHREIBUNG
------------
Usecases sind Teil des BACH-TUeV-Systems und dienen als:
  1. FEATURE-TESTS        Validiert ein Workflow funktioniert?
  2. QUALITAETSSICHERUNG  Alle Komponenten spielen zusammen?
  3. ANFORDERUNGSNACHWEIS Was ist implementiert, was fehlt noch?

Usecases werden in der SQLite-DB gespeichert (Tabelle: usecases)
und sind mit Workflows verknüpft (workflow_tuev Tabelle).
`workflow_path` ist optional: ältere oder grobere Testfaelle können nur
einen Bereich/Kategorienamen tragen. `bach usecase run` soll dann trotzdem
laufen und den Testfall im manuellen Datenmodus anzeigen.

Handler: system/hub/tuev.py (TuevHandler + UsecaseHandler)

USECASE-FORMAT
--------------

  USECASE_NNN: Kurztitel

  VORBEDINGUNG:  Was muss vorhanden sein?
  EINGABE:       Was gibt der User ein / welche Daten liegen vor?
  ERWARTUNG:     Was soll herauskommen?
  PRÜFT:        Welche Komponenten werden getestet?

AKTUELLE USECASES
-----------------
Usecases sind nun in der DB (usecases Tabelle).
Anzeigen mit: bach usecase list

Historische Usecase-IDs (aus altem Task-System):
  USECASE_001   Lebenslauf-Agent
  USECASE_002   Office Lens Scanner
  USECASE_003   Dokumenten-Suche
  USECASE_004   Arzt-Berichte Schilddruese
  USECASE_005   Haushalts-Routinen
  USECASE_006   Versicherungs-Beratung

Aktuelle Usecases in DB einsehen:
  bach usecase list
  bach db query "SELECT id, title, workflow_name, test_result FROM usecases"

USECASE ALS TEST
----------------
  Ein Usecase testet den kompletten Durchstich:

  User-Eingabe -> Agent/Skill -> Tools -> DB -> Ergebnis

  Damit werden automatisch validiert:
  - CLI-Befehle funktionieren?
  - DB-Schema korrekt?
  - Tools vorhanden und aufrufbar?
  - Help-Dateien aktuell?
  - Injektoren triggern bei Keywords?
  - Ergebnis nutzbar und korrekt?

USECASE ALS ANFORDERUNG
------------------------
  Fehlgeschlagene Usecases decken Luecken auf:
  - Fehlende Tools         -> Task für Tool-Erstellung
  - Fehlende CLI-Befehle   -> Task für CLI-Handler
  - Fehlende DB-Tabellen   -> Task für Schema-Erweiterung
  - Fehlende Workflows     -> Task für Workflow-Erstellung

  Neue Usecase-Ideen sind immer willkommen:
    bach task add "USECASE_NNN Kurztitel: Beschreibung" --prio P3

RÜCKKOPPLUNG IN DEN ENTWICKLUNGSZYKLUS
-----------------------------------------

  Phase 8 (Usecases)
       │
       ├── Fehlgeschlagen? -> Neuer Task in Phase 1
       ├── Erfolgreich?    -> Feature validiert
       └── Neue Idee?      -> Neuer Usecase-Task

  Usecases sind Phase 8 im Dev-Zyklus (siehe: bach --help dev)

CLI-BEFEHLE
-----------

USECASE-VERWALTUNG:
  bach usecase list [workflow]       Alle Testfaelle (optional gefiltert)
  bach usecase add <workflow>        Hinweise zum Hinzufügen (SQL-Template)
  bach usecase show <id>             Details eines Testfalls anzeigen
  bach usecase run <id>              Einzelnen Testfall ausführen
  bach usecase run-all <workflow>    Alle Tests eines Workflows

TUEV-VERWALTUNG:
  bach tuev status                   TUeV-Status aller Workflows
  bach tuev check <workflow>         Einzelnen Workflow prüfen
  bach tuev run                      Alle fälligen Prüfungen
  bach tuev renew <workflow>         TUeV erneuern nach Prüfung
  bach tuev init                     Workflows aus skills/workflows/ registrieren

USECASE ERSTELLEN
-----------------
Usecases werden direkt in die DB eingefügt:

  bach db query "INSERT INTO usecases (title, description, workflow_name, test_input, expected_output, created_by) VALUES ('Testfall-Titel', 'Beschreibung', 'workflow-name', '{}', '{}', 'user')"

Oder via GUI: /usecases (wenn GUI-Server läuft)

KOMPONENTEN-ABDECKUNG
---------------------
  Gute Usecases decken verschiedene Bereiche ab:

  Bereich         Beispiel-Usecase
  --------------- ------------------------------------------
  OCR & Dokumente USECASE_004 (Arzt-Berichte)
  Suche           USECASE_003 (Dokumenten-Suche)
  Generierung     USECASE_001 (Lebenslauf)
  Haushalt        USECASE_005 (Routinen)
  Finanzen        USECASE_006 (Versicherungen)
  Scanner         USECASE_002 (Office Lens)

  Noch nicht abgedeckt (Ideen):
  - Steuer-Workflow (End-to-End: Beleg -> Export)
  - Partner-Delegation (Claude -> Gemini -> Ergebnis)
  - Backup & Restore (Sicherung -> Wiederherstellung)
  - Multi-LLM Koordination

DATENBANK-STRUKTUR
------------------
  Tabelle: usecases
    - id, title, description
    - workflow_name, workflow_path
    - test_input (JSON), expected_output (JSON)
    - last_tested, test_result, test_score
    - created_by, created_at, updated_at

  Tabelle: workflow_tuev
    - workflow_name, workflow_path
    - tuev_status, last_tuev_date, tuev_valid_until
    - avg_score, test_count, pass_count

SIEHE AUCH
----------
  bach tuev status                          TUeV-Dashboard
  bach --help dev                           Entwicklungszyklus (8 Phasen)
  bach --help test                          Technische Testverfahren (B/O/E)
  system/skills/workflows/dev-zyklus.md    Detaillierter Dev-Workflow
  system/hub/tuev.py                        Handler-Implementierung
  system/db/schema.sql                      DB-Schema (usecases + workflow_tuev)

---
Version: 1.1.0 | Erstellt: 2026-01-28 | Aktualisiert: 2026-02-08
