195 lines
7.1 KiB
Markdown
195 lines
7.1 KiB
Markdown
|
|
# SPEC-D — `dispute_procedure`
|
||
|
|
## Steuerungsmethode — Spec-Tiefe D v0.1
|
||
|
|
|
||
|
|
**Status:** vorläufig freigegeben (PO 2026-07-26) — mit zugehöriger Archetyp-Vollspec; Implementierungsausreichendheit noch offen
|
||
|
|
**Stand:** 2026-07-26
|
||
|
|
**Default für:** C1 `initiative.dispute_case`
|
||
|
|
**OM-Struktur:** `SPEC_C1_dispute_case_v0.1.md` §4
|
||
|
|
**Nicht:** Workflow-Engine-Runtime · künstliche Parallel-/Dep-Limits · keine Rechts-Fachlogik
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## D1 Identität
|
||
|
|
|
||
|
|
| Feld | Wert |
|
||
|
|
|------|------|
|
||
|
|
| `method_key` | `dispute_procedure` |
|
||
|
|
| Rolle | primary (**Ausführung** — Kernel §6) |
|
||
|
|
| Label (DE) | Verfahrenssteuerung |
|
||
|
|
| Zweck | Event→Reaktionsstrang steuern (reaktiv dominant): parallele/abhängige Schritte, Dritt-Actors, Fristen; optional **vorbereitete** Stränge aktivieren; Waiting ≠ Fall-Freeze. Closure am Fallende. |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## D2 Geltung
|
||
|
|
|
||
|
|
| Feld | Wert |
|
||
|
|
|------|------|
|
||
|
|
| Default | C1 `initiative.dispute_case` |
|
||
|
|
| kompatibel als Primary | nur C1 |
|
||
|
|
| Komposition | — |
|
||
|
|
| Dominanz | `event` |
|
||
|
|
| nicht | Care; A3-Cadence-Kern; offene Workflow-Engine |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## D3 Horizon
|
||
|
|
|
||
|
|
| Horizont | Bedeutung |
|
||
|
|
|----------|-----------|
|
||
|
|
| Aktive `procedure_phase` | Phasen-Fokus |
|
||
|
|
| Aktive Reaktionsstränge | steuerungsrelevante Arbeitscluster (`active`) |
|
||
|
|
| Vorbereitete Stränge | Plan-Nebenblick (`prepared`) — nicht Next |
|
||
|
|
| Nächste Frist(en) | Schritt-, Strang- oder Phasen-Deadline |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## D4 Leading Work Item
|
||
|
|
|
||
|
|
Polymorph:
|
||
|
|
|
||
|
|
| Typ | Wann |
|
||
|
|
|-----|------|
|
||
|
|
| `Action` (ready) | Deps erfüllt, nicht im Waiting, nicht blocked |
|
||
|
|
| `Decision` | offene Entscheidungspflicht |
|
||
|
|
| Strang-/Schritt-Frist | fällige/überfällige Deadline-Arbeit |
|
||
|
|
|
||
|
|
Primary-Next = Top-Rank eines ready Items. **Weitere parallele Ready-Items** sind Nebenkandidaten (sichtbar), kein Singleton-Zwang der Ready-Menge.
|
||
|
|
|
||
|
|
Waiting-Schritt ist **nicht** Leading, erzeugt Attention; parallele Ready-Geschwister bleiben Leading-fähig.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## D5 Lifecycle-Pfad
|
||
|
|
|
||
|
|
| Schritt | Status | Bedeutung |
|
||
|
|
|---------|--------|-----------|
|
||
|
|
| intake | active | Fall, Parteien/Actors (inkl. Dritte) |
|
||
|
|
| method_bind | active | `dispute_procedure` |
|
||
|
|
| structure_setup | active | Phasen; Event-Eingang; Strang-Editor (prepared/active) |
|
||
|
|
| planning | light | vorbereiten & nachziehen — **kein** Vollplanungszwang; Dominanz bleibt event/reaktiv |
|
||
|
|
| next_work | active | Ready nur aus `active`-Strängen (D6) |
|
||
|
|
| assignment | active | Actor je Schritt (Selbst, Anwalt, …) |
|
||
|
|
| waiting | **central** | am Schritt/Strang — Fall bleibt steuerbar |
|
||
|
|
| result / event | **central** | Actor-Done + externe Events |
|
||
|
|
| validation | active | Phasen-/Strang-Kriterien |
|
||
|
|
| review | active | Decisions |
|
||
|
|
| adaptation | active | Strang erweitern, Deps/Fristen ändern nach Event |
|
||
|
|
| closure | **active** | Fallende |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## D6 Next Action — konkrete Regeln
|
||
|
|
|
||
|
|
### Ready
|
||
|
|
|
||
|
|
Action/Decision ist ready wenn:
|
||
|
|
|
||
|
|
1. Strang-Status = **`active`** (nicht `prepared`), und
|
||
|
|
2. Status offen, und
|
||
|
|
3. alle `requires`-Vorgänger erfüllt, und
|
||
|
|
4. **nicht** im Waiting-Zustand, und
|
||
|
|
5. nicht durch Blocker gesperrt
|
||
|
|
|
||
|
|
Parallel: fehlende Dep ⇒ gleichzeitig ready — **ohne Obergrenze** für parallele Schritte oder parallele `active`-Stränge.
|
||
|
|
Deps: gerichteter azyklischer Graph, **ohne** Maximaltiefe/-kanten-Cap; Zyklen = Validierungsfehler.
|
||
|
|
`prepared`: nicht ready. Strang-übergreifende `requires` erlaubt.
|
||
|
|
|
||
|
|
### Ranking
|
||
|
|
|
||
|
|
1. überfällige Schritt-/Strang-/Phasen-Frist
|
||
|
|
2. heute fällige Frist / Fenster-Druck
|
||
|
|
3. offene Pflicht-Decision
|
||
|
|
4. ready Schritte (Owner Selbst vor optionaler Anzeige Dritter — oder nach `due`/`sort_order`)
|
||
|
|
5. reine Waiting-Hinweise → Attention, nicht Fake-Next
|
||
|
|
|
||
|
|
**reason_codes:**
|
||
|
|
`dispute_deadline_overdue`, `dispute_deadline`, `dispute_decision_open`, `dispute_phase_step`, `dispute_parallel_ready`, `dispute_waiting_event`
|
||
|
|
|
||
|
|
**Leerer Fall:** nur Waiting, keine parallele Ready-Arbeit → Next leer + Attention `dispute_waiting` (kein A2-Planning-Debt).
|
||
|
|
|
||
|
|
**Anti:** Waiting friert Fall; `prepared` als Ready; Todo-Wand; Engine-Runtime; Pflicht-Vollplanung; künstliche Caps auf Parallelität/Deps.
|
||
|
|
|
||
|
|
### Event / Result → Strang (Steuerregel)
|
||
|
|
|
||
|
|
1. **Neu reaktiv:** Event/manuell → Strang `active` mit 1..n Schritten.
|
||
|
|
2. **Aktivierung:** Event, Actor-Result, Decision-Outcome oder manuell → passenden Strang `prepared` → `active` (Aktivierungsregel am Strang oder Auswahl-UI).
|
||
|
|
3. **Erweitern:** Adaptation fügt Schritte an `active`-Strang an; kein Duplikat-Chaos.
|
||
|
|
4. **Weiche:** ein Outcome aktiviert genau einen (oder bewusst mehrere) vorbereitete Stränge — deklarativ, keine offene Engine.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## D7 Attention
|
||
|
|
|
||
|
|
| Code | Wann |
|
||
|
|
|------|------|
|
||
|
|
| `dispute_deadline_overdue` | Frist überschritten |
|
||
|
|
| `dispute_deadline_soon` | Frist/Fenster nahe |
|
||
|
|
| `dispute_decision_stale` | Decision ohne Fortschritt |
|
||
|
|
| `dispute_waiting` | Strang/Schritt wartet (extern) |
|
||
|
|
| `dispute_third_party_stale` | zugewiesener Dritt-Actor ohne Rückmeldung über Schwellwert |
|
||
|
|
| `dispute_phase_stalled` | Phase ohne Ready und ohne begründetes Waiting |
|
||
|
|
| `dispute_unscoped_event` | Event ohne Strang/Phase-Zuordnung und ohne aktivierbaren prepared-Strang |
|
||
|
|
| `dispute_dep_blocked` | kritische Dep blockiert fristrelevanten Schritt |
|
||
|
|
| `dispute_prepared_pending` | Outcome/Event legt Aktivierung nahe, passender prepared-Strang noch nicht aktiviert |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## D8 Events
|
||
|
|
|
||
|
|
| Event | Wirkung |
|
||
|
|
|-------|---------|
|
||
|
|
| Brief / Dokument | Evidence; `active`-Strang öffnen/erweitern **oder** `prepared` aktivieren |
|
||
|
|
| Termin gesetzt | Schritt/Frist; ggf. Waiting |
|
||
|
|
| Gegenseite / Behörde | Ready/Decision; Waiting lösen; ggf. prepared aktivieren |
|
||
|
|
| Fristablauf | Attention + Pflicht-Schritt/Decision |
|
||
|
|
| Actor-Result (inkl. Dritte) | Schritt done; Deps freigeben; **kann** prepared-Strang aktivieren |
|
||
|
|
| Decision-Outcome | Pfad fortsetzen, Closure, **oder** vorbereiteten Strang aktivieren |
|
||
|
|
| Phasen-Kriterien | nächste Phase |
|
||
|
|
| Fallabschluss | Closure |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## D9 Nested
|
||
|
|
|
||
|
|
Kann Kind unter B2a sein. Parent-Impulse ≠ Child-Next.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## D10 OM-Voraussetzungen
|
||
|
|
|
||
|
|
| Minimal | Vollmodell |
|
||
|
|
|---------|------------|
|
||
|
|
| C1 + Methode | mehrere Phasen |
|
||
|
|
| Event-Eingang | Reaktionsstränge mit strand_id |
|
||
|
|
| Actions + `requires` | parallele Ready-Mengen |
|
||
|
|
| Assignment (Actors) | Dritt-Actors |
|
||
|
|
| Fristen an Action | Strang-/Phasen-Fenster |
|
||
|
|
| Waiting an Action/Strang | Evidence, Decision, Closure |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## D11 Extension Points
|
||
|
|
|
||
|
|
| Art | Ziel |
|
||
|
|
|-----|------|
|
||
|
|
| next_work_strategy | `dispute_procedure` (Parallel-Ready + Ranking) |
|
||
|
|
| attention_rules | D7 |
|
||
|
|
| horizon_resolver | Phase + Stränge + Fristen |
|
||
|
|
| event_hooks | Event→Strang öffnen/erweitern |
|
||
|
|
| assignment_policy | inkl. Dritt-Actors |
|
||
|
|
| steering_elements | `next_action_primary`, `dispute_timeline` |
|
||
|
|
| compatible_archetype_keys | `initiative.dispute_case` |
|
||
|
|
| data_slices | actions, roadmap, evidence, decisions, blockers, reviews, steering_methods |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## D12 Spannungen · PO
|
||
|
|
|
||
|
|
| Punkt | Lage |
|
||
|
|
|-------|------|
|
||
|
|
| Komplexität | beliebig viele Stränge/Deps/Parallelen — **keine** Produktlimits |
|
||
|
|
| Optik | Graph/Timeline als Hilfe, nicht als Engine |
|
||
|
|
| prepared → active | verbindlich; reaktiv dominant |
|
||
|
|
| Waiting ≠ Freeze | verbindlich |
|
||
|
|
| Dritte | Actors + Assignment |
|