Vorgaenge in der WebUI: entscheiden und Stellungnahme anfordern (#689, Stufe 3)

- /api/cases (offen/alle), /api/cases/{id}/decide, /api/cases/{id}/statement, /api/decisions
- Ansicht "Vorgaenge": offene Faelle mit Verlauf je Ebene (Lauf-Links), Frist und
  "Mensch gerufen"; Reiter Beschluesse mit Reichweite; Zaehler in der Seitenleiste
- Konzept Abschnitt 5: Umsetzung

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Richard
2026-09-25 09:53:25 +02:00
co-authored by Claude Opus 5.5
parent 36fe1ad2aa
commit 418a73015d
11 changed files with 600 additions and 2 deletions
+43
View File
@@ -475,6 +475,49 @@ Ohne Regeln läuft so etwas heiß. Vier, die nicht verhandelbar sind:
4. **Die Spitze ist endlich.** Was der Mensch nicht entscheidet, bleibt offen — sichtbar
offen, nicht stillschweigend versandet.
### Umsetzung (2026-09-25, #689)
- **Vorgang und Beschluss** sind eigene Datensätze (`Cases`, `Decisions`). Der Vorgang
selbst wandert nicht über das Brett. Jeder Halter bekommt eine eigene Aufgabe in seinen
Eingang, die Regeln führt `CaseDesk`.
- **Eskalation:** Das Werkzeug `Escalation` hat jeder Agent, ohne dass man es freischalten
muss. „Ich komme nicht weiter“ ist keine Berechtigung. Der Vorgang geht an die eigene
Leitung, eine Ebene je Schritt. Die Leitung hat drei Antworten:
- `decide`: mit Pflichtbegründung, gilt für den Bereich der Leitung
- `handle`: sie erledigt es selbst
- `forward`: sie reicht mit eigener Einschätzung weiter
Die Aufgabe, an der der Agent feststeckt, wartet (blockiert) und geht beim Abschluss
wieder an die Arbeit.
- **Erst nachsehen:** Vor jeder Eskalation zeigt das Werkzeug die Beschlüsse, die den
Agenten binden. Dieselbe Frage aus derselben Einheit schließt sich dem offenen Vorgang
an, statt einen zweiten zu eröffnen.
- **Konflikt:** Zuerst nimmt die Gegenseite einmal Stellung. Danach geht der Vorgang direkt
an die niedrigste gemeinsame Leitung. Die Leitungen dazwischen stehen als „vermerkt,
nicht befragt“ im Vorgang. Einen Konflikt kann man weder weiterreichen noch „selbst
erledigen“, er wird entschieden, und beide Seiten erfahren den Beschluss.
- **Damit es endet:**
- Es gibt einen Tagesdeckel je Einheit (`cases.escalationsPerUnitPerDay`, Vorgabe 10).
Darüber geht die Eskalation direkt an den Menschen, mit einem Vermerk.
- Nach der Frist (`cases.deadlineHours`, Vorgabe 4 Stunden) wird der Mensch gerufen,
einmal. Der Weckruf hat eine Anschlussstelle für den Kanal aus #644. Bis dahin
erscheint der Vorgang in der neuen Ansicht „Vorgänge“, mit einem Zähler in der
Seitenleiste.
- **Der Mensch** entscheidet dort mit Begründung (gilt für die ganze Instanz) oder fordert
von einer Seite eine Stellungnahme an. Das ist die einzige Bewegung nach unten, die den
Vorgang nicht schließt, und sie hat eine eigene Frist.
- **Stille Post (#697) und Berichtsweg (#715):**
- Jede Ebene hängt ihren Beitrag an, jeder Beitrag trägt seinen Lauf.
- Beim Halter kommt jeder Beitrag gerahmt als Daten an.
- Wer fremde Inhalte liest, eskaliert ohne eigenen Text (nur mit dem Verweis auf die
Aufgabe) und eröffnet keinen Konflikt mit eigenem Standpunkt.
- **Nebenbei behoben:** Der Scanner hat einen Status, den der Lauf selbst gesetzt hatte
(blockiert, abgebrochen), am Laufende mit „erledigt“ überschrieben. Damit liefen sowohl
das Eskalieren als auch der Meldeweg aus #715 ins Leere.
- **Offen:** #676 (Schemaauskunft der Datenbank) ist die Vorbedingung dafür, dass „ich finde
kein Feld“ eine Feststellung ist und keine Vermutung. Der Mechanismus steht, der
Anwendungsfall braucht noch #676.
## 6 — Die Entscheidungsinstanz an der Spitze
Der CEO-Agent aus dem Vorschlag ist eine gute Idee mit einer Bedingung: Er ist eine