2026-07-09 11:13:54 +02:00
# Kairo — Plan-Modus Design v0.1
2026-07-12 10:38:01 +02:00
**Status:** PO-Arbeitsentwurf (Execution-Plan §6– 7 PO 2026-07-12)
**Stand:** 2026-07-12
**Bezug:** `Kairo_PM_Frontend_UI_Concept_v0.1.md` §4.3, `ADP_AP1_10_Initiative_Archetypes_and_Entity_Field_System_v0.1.md` , `ADP_Execution_Plan_and_Work_Package_Dependencies_v0.1.md`
2026-07-09 11:13:54 +02:00
**Auslöser:** Planen soll von Tab-Fragmenten zu durchgängiger Programmgestaltung werden — bis Struktur, Gates, Eingang, Arbeitspakete und Tasks
---
## 1. Leitfrage
**Wie soll das Programm aufgebaut sein — von der Vorhabens-Identität bis zur ausführbaren Granularität?**
Planen beantwortet **Struktur- und Zielfragen** . Es committet **keine Tagesausführung** (das ist Ausführen) und **kein Lagebild** (das ist Kontrolle).
---
## 2. Grundsatz: Vorhaben als Wurzel
```text
/plan?initiative={id}& project={optional}
Initiative (Wurzel — immer im Scope)
├── Profil — Archetyp, Standard- + dynamische Felder
├── Struktur — Project-Baum (rekursiv)
├── Zielzustände — Gates / RoadmapItems (Liste + Graph)
├── Eingang — Backlog (triage → convert)
└── Arbeit — Actions (+ Tasks ab AP1.5d) im Plan-Kontext
```
**Flache Vorhaben:** Actions ohne `project_id` erscheinen als direkte Kinder der Initiative im Plan-Baum.
**Commit-Grenze Plan → Ist:**
| Objekt | In Plan | Commit-Aktion |
|--------|---------|---------------|
| BacklogItem | Ja | Convert → Action |
| Project / Gate | Ja | sofort „Struktur“ (kein separater Commit) |
| Action | Sichtbar | Anlage = committet |
| Task | Sichtbar (AP1.5d) | Anlage unter Action |
---
## 3. IA: Von Tabs zur Plan-Outline
### 3.1 Heute (AP1.9a)
```text
/plan/structure | /plan/gates | /plan/inbox — drei lose Untertabs
```
### 3.2 Ziel (AP1.12)
**Eine Planungsseite** mit linker **Outline** (Baum) und rechtem **Kontextbereich** (Desktop) bzw. **Drill-down** (Mobile).
```text
┌──────────────────────────────────────────────────────────────┐
│ Modus: Planen Scope: Portfolio › Vorhaben X › [Projekt Y] │
├──────────────────┬───────────────────────────────────────────┤
│ OUTLINE │ KONTEXT │
│ ▼ Vorhaben X │ [Profil-Karte / Mini-Snapshot] │
│ ▼ Struktur │ oder │
│ Phase 1 │ [Liste der Kinder des gewählten Knotens] │
│ Phase 2 │ oder │
│ Zielzustände │ [Graph-Ansicht Gates] │
│ Eingang (3) │ │
│ Arbeit (12) │ │
└──────────────────┴───────────────────────────────────────────┘
```
**Routen (evolutionär):**
| Route | Bedeutung |
|-------|-----------|
| `/plan` | Portfolio: „Vorhaben ohne Struktur“, „Gates ohne Kriterien“ (Einstieg) |
| `/plan?initiative=` | Outline für ein Vorhaben |
| `/plan?initiative=&node=structure\|gates\|inbox\|work` | Outline-Fokus (Query, kein Pflicht-Split) |
| `/gates/:id` , `/projects/:id` | Objekt-Modal / Deep Link (bestehend AP1.9) |
Untertabs `/plan/structure` etc. bleiben als **Deep-Link-Aliase** mit Redirect auf `/plan?initiative=&node=…` bis Entfernung in AP1.12.
---
## 4. Interaktion
### 4.1 Bearbeiten — Modal (verbindlich)
| Objekt | Trigger | Modal-Inhalt |
|--------|---------|----------------|
| Initiative | Outline „Profil“ / Stift-Icon | Standardfelder + EFS (AP1.10) |
| Project | Klick / Stift | Titel, Status, container_kind, Gate-Link, Parent |
| Gate | Klick / Stift | RoadmapItem + Kriterien (bestehend, polish) |
| Backlog | Klick | Triage-Felder, Gate-Link, Convert-Button |
| Action | Klick | ActionForm (bestehend) — oder Link zu `/actions/:id` |
| Task | Klick (AP1.5d) | TaskForm |
**Regel (UI Concept P4):** Kein dauerhaftes Inline-Formular in der Outline.
### 4.2 Reihenfolge
| Plattform | Mechanismus | Gilt für |
|-----------|-------------|----------|
| Desktop (≥1024px) | Drag & Drop innerhalb gleicher Elternebene | Projects, Backlog (sort_order), Gates (optional Phase 2) |
| Mobile / Touch | ↑ / ↓ Buttons pro Zeile | gleich |
**API:** `PATCH` mit `sort_order` oder dediziertes `POST …/reorder` — idempotent, tenant-scoped.
### 4.3 Anlegen
„+“ am **elterlichen Knoten** in der Outline (nicht globaler FAB ohne Kontext).
---
2026-07-11 07:42:14 +02:00
## 5. Zielzustände — Graph (Plan-Modell, kein Workflow)
2026-07-09 11:13:54 +02:00
2026-07-11 07:42:14 +02:00
### 5.0 Abgrenzung (verbindlich)
Der **Zielzustands-Graph** modelliert **Soll-Struktur** — welche überprüfbaren Zielpunkte es gibt und wie sie **logisch zusammenhängen** (sequenziell, parallel, optional, blockierend).
Er ist **kein Workflow** :
| Zielzustands-Graph (Kairo) | Workflow (Mitai Prompt Engine — **nicht** Kairo-Scope) |
|----------------------------|--------------------------------------------------------|
| RoadmapItem = Quality Gate / Meilenstein / Reifegrad | Prompt-/Pipeline-Knoten |
| Kanten = Plan-Abhängigkeiten zwischen Gates | Ausführungs-/Verzweigungslogik |
| Verify = Kriterien + Evidence/Review | LLM-Aufruf, Aggregation, Join |
| Lesbar in **Planen** und **Kontrolle** (Plan vs. Ist) | Admin-Konfiguration für KI |
| Änderung am Plan = bewusste **Planungsentscheidung** (+ Audit) | Laufzeit-Orchestrierung |
**Mitai `WorkflowEditorPage` :** nur **UI-Pattern-Referenz** (Canvas, Zoom, Pan, Snap) für ein künftiges **Zielzustands-Modellierungswerkzeug** — **keine** Übernahme von Workflow-Semantik, Prompt-Knoten oder Runtime.
**Guardrail:** In Docs, UI und Code nicht „Workflow-Graph“, „Gate-Workflow“ oder „Graph-Workflow“ sagen — korrekt: **Zielzustands-Graph** , **Gate-Map** , **Plan-Graph** .
### 5.1 Zwei Ansichten (Liste | Graph)
2026-07-09 11:13:54 +02:00
| Ansicht | Wann | UI |
|---------|------|-----|
| **Liste** | Flache Vorhaben, wenige Gates | `RoadmapPlanSection` (evolviert) |
2026-07-11 07:42:14 +02:00
| **Graph** | Komplexe Abhängigkeiten, Parallel-Gates | **GateMapView** / später **Zielzustands-Designer** |
2026-07-09 11:13:54 +02:00
Umschalter: „Liste | Graph“ im Knoten Zielzustände — Default **Liste** wenn ≤5 Gates, sonst letzter User-Choice (localStorage pro Initiative).
2026-07-11 07:42:14 +02:00
### 5.2 Graph-UI — Mitai-Pattern, Kairo-Semantik
2026-07-09 11:13:54 +02:00
2026-07-11 07:42:14 +02:00
**Referenz (Pattern only):** Mitai Workflow-Editor — Canvas, Zoom, Pan, Snap-to-grid.
2026-07-09 11:13:54 +02:00
2026-07-11 07:42:14 +02:00
**Kairo-Scope (Zielzustands-Modell, kein Workflow):**
2026-07-09 11:13:54 +02:00
| Element | Semantik |
|---------|----------|
| Knoten | RoadmapItem (Gate, Meilenstein, Reifegrad) |
2026-07-11 07:42:14 +02:00
| Kanten | `roadmap_item_dependencies` → später `edge_kind` + `parallel_group` (AP1.4d) |
| Joint / Split (später) | **Plan-Topologie** — parallele Stränge, Join-Gates, optionale Äste — **nicht** Runtime-Verzweigung |
| Kein | Lifecycle-Workflow, Prompt-Knoten, Mitai-Domäne, Ausführungs-Engine |
**Heute (AP1.13a/b — MVP-Zwischenstand):** read-only Auto-Layout + Kanten auf Gate-Detail; **kein** grafischer Designer, **keine** Joint-Knoten, **kein** Parallel-Join-Modell (→ AP1.4d + Modellierungswerkzeug).
**Phase 2 — Zielzustands-Modellierungswerkzeug (PO):**
- Drag-Drop-Designer für Gates, Kanten, Parallelgruppen, Joins
- Bearbeitung nur im **Plan** -Kontext (Modal/Designer — nicht Inline-CRUD-Wand in der Outline)
- Verify / Kriterien / Evidence weiterhin auf Gate-Detail — nicht im Graph als CRUD-Omnibus
### 5.3 Plan-Graph vs. Ist — parallel betrachten (Zielbild)
**Problem (mehrfach in Kairo erlebt):** Wenn Plan und Ist in **demselben mutable Objekt** verschmelzen (Status-Dropdown, Freitext-DoD, Graph = nur aktueller Stand), ist **nicht nachvollziehbar** , was geplant war, was tatsächlich passiert ist und wann der Plan angepasst wurde.
**Regel:**
| Schicht | Inhalt | Änderbarkeit |
|---------|--------|--------------|
| **Plan-Graph (Soll)** | Knoten, Kanten, Kriterien-**Definition**, Parallel-/Join-Topologie | Planung; Revision mit Audit/Decision |
| **Ist-Overlay** | Gate-Status (`reached`/`moved`/…), Kriterien-**Status**, Evidence, Journey-Events | Ausführung, Review, Verify, Reopen |
| **Historie** | Plan-Revisionen, Ist-Ereignisse, Abweichungen Plan↔Ist | append-only / audit |
**Review-Ablauf (Kontrolle / Journey — Ziel):**
```text
1. Plan-Graph und Ist-Overlay **parallel** anzeigen (nicht eins collapsed)
2. Abweichungen sichtbar: Gate erreicht aber Kriterium waived; optionaler Ast nicht genommen; Plan-Kante obsolet
3. Entscheidung: Plan anpassen (Zielzustand revidieren) — mit Begründung — ODER Ist dokumentieren (Decision/moved/discarded)
4. Plan-Graph **ordentlich** nachziehen — nicht stillschweigend den Ist-Stand als neuen Plan überschreiben
```
**Technische Folge (spätere Pakete):**
- AP1.4d: Graph Engine Read Models (`blocked`, `ready` , `fulfillment_ratio` ) aus **Plan-Kanten** + **Ist-Status**
- AP1.4e+: Methodenprofile (Erfüllungsgrad vs. hartes `reached` )
- **AP1.14 (vorgeschlagen):** Plan-Snapshot / Plan-Revision + Ist-Overlay in UI (Kontrolle: „Plan | Ist | Diff“); Graph-Designer Phase 2
2026-07-09 11:13:54 +02:00
2026-07-11 07:42:14 +02:00
**Heute:** Ein Graph, Status am selben Knoten — **Ist vermischt mit Plan** . Truth Table: ◐. Das ist **bewusster MVP-Zwischenstand** , kein Zielbild.
2026-07-09 11:13:54 +02:00
2026-07-11 07:42:14 +02:00
### 5.4 Backend
2026-07-09 11:13:54 +02:00
Baut auf AP1.4d (Graph Engine read models) auf — UI AP1.13 **nach** 4d oder parallel wenn read APIs vorhanden.
---
2026-07-12 10:38:01 +02:00
## 6. Progressive Planung — aufsteigende Granularität
Planen ist **kein einmaliger Vollplan** . Je nach Archetyp existieren unterschiedlich viele Ebenen; die **nächste Ebene** wird erst relevant, wenn der aktuelle Horizont **aktiv** ist und der Unterplan noch **leer** ist (rollende Planung).
### 6.1 Drei Planungsdimensionen (verbindlich)
| Dimension | Frage | OM / UI |
|-----------|--------|---------|
| **A — Ziel-Horizont** | Was muss erreicht sein? | `RoadmapItem` , Gate-Graph — §5, Zielzustands-Designer |
| **B — Struktur** | Wo hängt die Arbeit? | Project-Baum — Outline „Struktur“ |
| **C — Durchführung** | In welcher Reihenfolge committen wir APs? | `Action` + `action_dependencies` — Outline „Arbeit“ §6.3 |
| **D — Zeitbox** (optional) | Was in dieser Iteration/Woche? | `work_cycle` (AP2.0f), Recurring — nicht Gate-Microplan |
**PO-Regel:** Dimension **A** ≠ **C** . AP-Abhängigkeiten (z. B. „Foundation vor Feature“) gehören in **C** , nicht in den Gate-Designer.
### 6.2 Planungsebenen (Referenzleiter)
```text
Ebene 0 Initiative / Vorhaben — Methode, Archetyp, Profil
Ebene 1 Ziel-Horizont — Gates, Phasen grob (optional)
Ebene 2 Struktur — Phase / Stream / Project-Baum (optional)
Ebene 3 Durchführungsplan — Arbeitspakete + Kanten (rollend unter aktivem Gate)
Ebene 4 Zeitbox — Sprint / Woche / Monat (optional, archetypabhängig)
Ebene 5 Ausführung — Tasks / ToDos unter Action
```
**Minimal-Vorhaben** (`generic_operating`): oft nur Ebene 0 → 3 → 5 (Vorhaben → Actions → Tasks).
**Product-Programm** (Kairo-Jinkendo): 1 (G1– G8 grob) + 3 + optional 4 + 5.
**Persönliches Rhythmus-Vorhaben**: eher Ebene 4 zeitgetrieben (Woche/Monat) statt WBS-Tiefe.
### 6.3 Planungsschritte — auto vs. explizites ToDo
Meta-Arbeit (Struktur anlegen, WPs schätzen, Deps klären) wird archetypgesteuert ausgelöst:
| Modus | Mechanismus | Beispiel |
|-------|-------------|----------|
| **auto** | Structure Builder + Hook (`on_plan_required`, `on_wbs_required` ) | Kumite-Pfad seeden |
| **explicit** | Committetes AP mit `action_kind=planning` | „G6 Durchführungsplan detaillieren“ |
| **skip** | Ebene entfällt | Generic ohne Gate-Graph |
**Planning Debt:** Wenn Gate aktiv und Durchführungsplan leer → Attention (AP1.16d), kein stiller Leerzustand.
### 6.4 Outline-Knoten „Arbeit“ — Durchführungsplan (Dimension C)
| Aspekt | Regel |
|--------|--------|
| Scope | Actions unter Initiative / Project / **aktivem Gate-Horizont** |
| Reihenfolge | `sort_order` (Fallback) + `action_dependencies` (requires/blocks) |
| Anzeige | Liste + optional Kanten-Ansicht; `ready` / `blocked` Badges |
| Bearbeitung | Modal (ActionForm); Kanten auf Detail oder Mini-Graph in Kontext |
| **Nicht** | Gate-Topologie, Verify-Kriterien, Join-Knoten |
**Plan-Baum „Arbeit“ (heute AP1.12d):** committete Actions + Tasks; **AP1.16c** ergänzt Vorgänger und blocked/ready.
---
## 7. Ebenen bis Workpackage & Task (OM-Referenz)
2026-07-09 11:13:54 +02:00
| Ebene | Typ | Plan-Outline-Knoten | Tiefe |
|-------|-----|---------------------|-------|
| 0 | Initiative | Wurzel | 1 |
2026-07-12 10:38:01 +02:00
| 1 | RoadmapItem (Gate) | Zielzustände (Graph/Liste) | parallel; grob |
| 2 | Project | rekursiv | max. 5 (bestehend) |
2026-07-09 11:13:54 +02:00
| 3 | BacklogItem | Eingang | flach unter Initiative |
2026-07-12 10:38:01 +02:00
| 4 | Action | Arbeit / Durchführungsplan | unter Project, Gate oder Initiative |
2026-07-09 11:13:54 +02:00
| 5 | Task | (AP1.5d) | unter Action, UI max. ~3 |
2026-07-12 10:38:01 +02:00
**Filter „Arbeit“:** optional nur „unter gewähltem Project“ / „unter aktivem Gate“ (`?project=`, Gate-Scope aus Kontrolle).
2026-07-09 11:13:54 +02:00
---
2026-07-12 10:38:01 +02:00
## 8. Scope-Breadcrumb (AP1.9b — Zuverlässigkeit)
2026-07-09 11:13:54 +02:00
**Problem:** Klick auf Vorhaben im Breadcrumb führt immer nach `/control/status` — in Planen falsch.
**Regel:** Mittlerer Breadcrumb-Klick ist **modus-sensitiv** :
| Aktiver Modus | Klick „Vorhaben X“ |
|---------------|-------------------|
| `/plan/*` | `/plan?initiative=X` |
| `/control/*` | `/control/status?initiative=X` |
| `/work/*` | `/work/today?initiative=X` |
| Objekt-Route | passender Modus aus Objekttyp (`/projects/` → Plan, `/actions/` → Work) |
Portfolio-Klick: Scope leeren, Modus beibehalten.
**Technik:** `ProgramScopeBar` liest `useLocation` + Modus-Registry; kein hardcoded `/control/status` .
---
2026-07-12 10:38:01 +02:00
## 9. Implementierungspakete
2026-07-09 11:13:54 +02:00
```text
AP1.9b Scope-Breadcrumb modus-sensitiv; Scope-Sync bei Deep Links härten
AP1.12a Plan-Outline Shell (Desktop Split / Mobile Drill-down)
AP1.12b Modal-Edit für Project, Backlog, Initiative-Profil (Standardfelder)
AP1.12c Reorder: sort_order API + DnD (Desktop) + ↑↓ (Mobile)
AP1.12d Outline-Knoten „Arbeit“ (Actions listen, Link zu Detail)
2026-07-12 10:38:01 +02:00
AP1.16a action_dependencies, actions.sort_order, action_kind
AP1.16b execution_engine (ready/blocked/critical_path)
AP1.16c Plan-Outline: AP-Kanten, blocked/ready (nicht Gate-Designer)
AP1.16d planning_levels / planning_mode; Planning Debt Attention
2026-07-11 07:42:14 +02:00
AP1.13a GateMapView read-only (Layout aus Dependencies)
AP1.13b Kanten-CRUD auf Gate-Detail (kein Designer)
2026-07-12 10:38:01 +02:00
AP1.4d Graph Engine: parallel_group, edge_kind, blocked/ready (Gates)
AP1.14 Plan-Snapshot / Ist-Overlay / Plan-Revision ✓
2026-07-11 07:42:14 +02:00
AP1.15 Zielzustands-Modellierungswerkzeug (Designer, Mitai-Pattern)
2026-07-11 09:26:16 +02:00
AP1.15a Designer MVP (Pan/Zoom, Kanten, Layout)
AP1.15b Designer UX (Drag-Kanten, Gate anlegen, Klick-Panel)
2026-07-12 10:38:01 +02:00
AP1.15c Join/Branch-Topologie (parallel_group, optional_branch, Engine) — deferred
2026-07-09 11:13:54 +02:00
AP1.5d Tasks in Outline-Knoten „Arbeit“
AP1.10 Archetyp + EFS für Initiative-Profil-Modal (parallel ab 10a)
2026-07-12 10:38:01 +02:00
AP2.0f work_cycle — Zeitbox-Ebene (nach Execution-Graph sinnvoll kombinierbar)
2026-07-09 11:13:54 +02:00
```
**Empfohlene Reihenfolge:**
```text
2026-07-12 10:38:01 +02:00
9b → 12a → 12b → 10a/10c (Profil) → 12c → 12d → 16a → 16b → 16c → 2.0d → 5d → 13a → 13b
2026-07-09 11:13:54 +02:00
```
---
2026-07-12 10:38:01 +02:00
## 10. Nicht-Ziele (Scope Lock)
2026-07-09 11:13:54 +02:00
- Kein Sprint-/Capacity-Planning in Planen (später Team-Modus-Erweiterung)
- Kein Inline-CRUD aller Gates in der Outline-Liste
2026-07-11 07:42:14 +02:00
- Kein Mitai-Workflow-Clone (**auch kein „Workflow-Graph“** — nur Zielzustands-Graph)
- Kein Plan=Ist-Collapse (Status/Freitext ersetzt nicht Plan-Revision + Ist-Historie)
2026-07-12 10:38:01 +02:00
- Kein AP-Dependency-Graph im Zielzustands-Designer (→ AP1.16c in Outline „Arbeit“)
- Kein Micro-Gate pro Foundation-AP (→ Action-Graph unter grobem Gate)
2026-07-09 11:13:54 +02:00
- Kein Steering pro Project-Ebene (ADP Recursive Containers)
---
2026-07-12 10:38:01 +02:00
## 11. Erfolgskriterien (PO)
2026-07-09 11:13:54 +02:00
1. PO kann ein Vorhaben wählen und **in einer Ansicht** Struktur, Gates, Eingang und Arbeit sehen.
2. Bearbeitung läuft **nur im Modal** — Outline bleibt übersichtlich.
3. Project-Reihenfolge per DnD (Desktop) änderbar.
2026-07-11 07:42:14 +02:00
4. Gates mit Abhängigkeiten im **Zielzustands-Graph** darstellbar (AP1.13); Designer + Plan/Ist-Parallelität folgen (AP1.4d, AP1.14+).
2026-07-12 10:38:01 +02:00
5. Breadcrumb-Klick auf Vorhaben bleibt im Modus Planen.
6. Unter aktivem Gate: Durchführungsplan mit Vorgängern planbar — ohne Gate-Graph zu verfeinern (AP1.16).
7. Planning Debt sichtbar, wenn nächste Planungsebene fehlt (AP1.16d).
2026-07-09 11:13:54 +02:00
---
2026-07-12 10:38:01 +02:00
## 12. PO-Freigabe
2026-07-09 11:13:54 +02:00
- [ ] Outline statt drei Tabs (AP1.12) angenommen
- [ ] Modal-Edit + DnD/↑↓ OK
2026-07-11 07:42:14 +02:00
- [ ] GateMap / Zielzustands-Designer (Mitai-**Pattern** only) Scope OK
- [ ] Plan-Graph vs. Ist-Overlay parallel (AP1.14) OK
2026-07-09 11:13:54 +02:00
- [ ] AP1.9b Breadcrumb-Regel OK
2026-07-12 10:38:01 +02:00
- [x] Progressive Planung + Execution-Graph getrennt vom Gate-Graph (§6, AP1.16) — PO 2026-07-12
2026-07-09 11:13:54 +02:00
---
## Referenzen
2026-07-12 10:38:01 +02:00
- `docs/architecture/ADP_Execution_Plan_and_Work_Package_Dependencies_v0.1.md`
2026-07-09 11:13:54 +02:00
- `docs/architecture/ADP_AP1_10_Initiative_Archetypes_and_Entity_Field_System_v0.1.md`
- `docs/architecture/ADP_AP1_9_PM_Work_Modes_Frontend_IA_v0.1.md`
- `docs/reference/design-principles/mitai/PROMPT_ENGINE_DESIGN_PRINCIPLES.md` (WorkflowEditor-Referenz)