DOC: Status-Review, Truth Table Sync und Dogfooding R1 Seed.
Some checks failed
Deploy Development / deploy (push) Failing after 45s
Test Suite / pytest-backend (push) Failing after 1s
Test Suite / k6 /api/health Baseline (push) Has been skipped
Test Suite / playwright-smoke (push) Has been skipped
Test Suite / lint-backend (push) Successful in 2s
Test Suite / compose-smoke (push) Has been skipped

Review-Auswertung, aktualisierte Roadmap/Gap-Analyse und idempotenter Seed fuer Kairo-Jinkendo als Referenz-Vorhaben mit Gates, Actions und Gitea-Evidence.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Lars 2026-07-11 10:17:57 +02:00
parent b85a6ec0c7
commit a26b534c34
10 changed files with 1124 additions and 113 deletions

View File

@ -0,0 +1,411 @@
"""Dogfooding R1 — Referenz-Vorhaben „Jinkendo Kairo“ (idempotent, Nicht-Prod).
Spiegelt Plan aus docs/product/ gemäß Kairo_Dogfooding_Mirror_Steering_v0.1.md.
"""
from __future__ import annotations
import os
from typing import Any, Optional
GITEA_BASE = "http://192.168.2.144:3000/Lars/Kairo-Jinkendo"
INITIATIVE_TITLE = "Jinkendo Kairo"
TENANT_SLUG = "stommer"
def _gitea_commit(sha: str, label: str = "") -> str:
line = f"Commit: [{sha[:7]}]({GITEA_BASE}/commit/{sha})"
if label:
return f"{label}\n{line}\nBranch: develop"
return f"{line}\nBranch: develop"
def _resolve_context() -> tuple[str, str]:
from db import get_connection
from psycopg2.extras import RealDictCursor
conn = get_connection()
try:
with conn.cursor(cursor_factory=RealDictCursor) as cur:
cur.execute("SELECT id FROM tenants WHERE slug = %s", (TENANT_SLUG,))
row = cur.fetchone()
if not row:
raise RuntimeError(
f"Tenant '{TENANT_SLUG}' nicht gefunden — zuerst Portal-Admin/seed_003"
)
tenant_id = str(row["id"])
cur.execute(
"""
SELECT a.id
FROM actors a
WHERE a.tenant_id = %s AND a.actor_type = 'human' AND a.is_active = TRUE
ORDER BY a.created_at
LIMIT 1
""",
(tenant_id,),
)
actor_row = cur.fetchone()
if not actor_row:
raise RuntimeError("Kein Human-Actor im Tenant — seed_003 zuerst")
return tenant_id, str(actor_row["id"])
finally:
conn.close()
def _find_initiative(tenant_id: str) -> Optional[dict[str, Any]]:
from services.initiatives import list_initiatives
for item in list_initiatives(tenant_id=tenant_id):
if item["title"] == INITIATIVE_TITLE:
return item
return None
def _find_by_title(items: list[dict[str, Any]], title: str) -> Optional[dict[str, Any]]:
for item in items:
if item["title"] == title:
return item
return None
def _close_gate_and_verify(*, tenant_id: str, item_id: str) -> None:
from services.roadmap import verify_reached
from services.roadmap_criteria import list_criteria_for_item, waive_criterion
for criterion in list_criteria_for_item(tenant_id=tenant_id, item_id=item_id):
if criterion["status"] not in {"satisfied", "waived", "deferred"}:
waive_criterion(
tenant_id=tenant_id,
criterion_id=criterion["id"],
decision_title="Dogfooding R1 — historisches Gate",
decision_description="Rückwirkende Abnahme per Seed.",
)
verify_reached(tenant_id=tenant_id, item_id=item_id)
def _ensure_gate_chain(
*,
tenant_id: str,
initiative_id: str,
gates: list[tuple[str, str, str]],
) -> dict[str, str]:
"""gates: (title, status, goal) -> id map."""
from services.roadmap import add_dependency, create_roadmap_item, list_roadmap_items
existing = list_roadmap_items(tenant_id=tenant_id, initiative_id=initiative_id)
ids: dict[str, str] = {}
ordered: list[str] = []
for index, (title, status, goal) in enumerate(gates):
found = _find_by_title(existing, title)
if found:
gate_id = found["id"]
else:
created = create_roadmap_item(
tenant_id=tenant_id,
initiative_id=initiative_id,
title=title,
item_type="milestone",
goal_description=goal,
status="planned" if status == "reached" else status,
sort_order=index * 10,
initial_criterion_title=f"{title} — Abnahme",
)
gate_id = created["id"]
existing.append(created)
ids[title] = gate_id
ordered.append(gate_id)
if status == "reached":
_close_gate_and_verify(tenant_id=tenant_id, item_id=gate_id)
for i in range(1, len(ordered)):
try:
add_dependency(
tenant_id=tenant_id,
from_item_id=ordered[i],
to_item_id=ordered[i - 1],
dependency_type="requires",
)
except ValueError as exc:
if "existiert bereits" not in str(exc):
raise
return ids
def _ensure_projects(
*, tenant_id: str, initiative_id: str, titles: list[str]
) -> dict[str, str]:
from services.projects import create_project, list_projects_for_initiative
existing = list_projects_for_initiative(tenant_id=tenant_id, initiative_id=initiative_id)
ids: dict[str, str] = {}
for index, title in enumerate(titles):
found = _find_by_title(existing, title)
if found:
ids[title] = found["id"]
continue
created = create_project(
tenant_id=tenant_id,
initiative_id=initiative_id,
title=title,
description=f"Ist-Struktur — {title}",
sort_order=index,
)
ids[title] = created["id"]
existing.append(created)
return ids
def _ensure_action(
*,
tenant_id: str,
initiative_id: str,
title: str,
status: str,
roadmap_item_id: Optional[str] = None,
project_id: Optional[str] = None,
description: str = "",
) -> dict[str, Any]:
from services.actions import create_action, list_actions_for_initiative
existing = list_actions_for_initiative(tenant_id=tenant_id, initiative_id=initiative_id)
found = _find_by_title(existing, title)
if found:
return found
return create_action(
tenant_id=tenant_id,
initiative_id=initiative_id,
title=title,
description=description,
status=status,
roadmap_item_id=roadmap_item_id,
project_id=project_id,
)
def _ensure_evidence(
*,
tenant_id: str,
initiative_id: str,
title: str,
description: str,
roadmap_item_id: Optional[str] = None,
action_id: Optional[str] = None,
actor_id: Optional[str] = None,
) -> None:
from services.evidence import create_evidence, list_evidence_for_initiative
for item in list_evidence_for_initiative(tenant_id=tenant_id, initiative_id=initiative_id):
if item["title"] == title:
return
create_evidence(
tenant_id=tenant_id,
initiative_id=initiative_id,
title=title,
description=description,
status="accepted",
roadmap_item_id=roadmap_item_id,
action_id=action_id,
submitted_by_actor_id=actor_id,
)
def _ensure_decision(
*,
tenant_id: str,
initiative_id: str,
title: str,
outcome: str,
) -> None:
from db import get_connection
from psycopg2.extras import RealDictCursor
from services.decisions import create_decision
conn = get_connection()
try:
with conn.cursor(cursor_factory=RealDictCursor) as cur:
cur.execute(
"""
SELECT 1 FROM decisions
WHERE tenant_id = %s AND initiative_id = %s AND title = %s
""",
(tenant_id, initiative_id, title),
)
if cur.fetchone():
return
finally:
conn.close()
create_decision(
tenant_id=tenant_id,
initiative_id=initiative_id,
title=title,
description=outcome,
status="decided",
outcome=outcome,
)
def _ensure_portfolio_first(*, tenant_id: str, initiative_id: str) -> None:
from services.initiatives import list_initiatives, reorder_portfolio
all_items = list_initiatives(tenant_id=tenant_id)
ids = [initiative_id] + [i["id"] for i in all_items if i["id"] != initiative_id]
reorder_portfolio(tenant_id=tenant_id, initiative_ids=ids)
def run() -> None:
if os.getenv("ENVIRONMENT", "development").strip().lower() == "production":
print("[dogfooding] Übersprungen in Production")
return
tenant_id, owner_actor_id = _resolve_context()
initiative = _find_initiative(tenant_id)
if not initiative:
from services.initiatives import create_initiative
initiative = create_initiative(
tenant_id=tenant_id,
title=INITIATIVE_TITLE,
owner_actor_id=owner_actor_id,
archetype_key="initiative.product",
method_profile_key="product.kairo_dev",
goal=(
"Operativer Program Director — MVP v0.3 Stufe A (B2b). "
f"Repository: {GITEA_BASE} (Branch develop)"
),
vision="Kairo steuert Kairo — Dogfooding Referenz-Vorhaben.",
target_state_summary="Leitfrage in ≤2 Min; Gates + Ist gespiegelt aus Git/Docs.",
priority="high",
)
print(f"[dogfooding] Initiative angelegt: {initiative['id']}")
else:
print(f"[dogfooding] Initiative vorhanden: {initiative['id']}")
initiative_id = initiative["id"]
gate_defs = [
("G1 — Foundation AP0", "reached", "Tenant, Actor, Auth, OM, Migrationen"),
("G2 — IA & Steering Skeleton", "reached", "AP1.2c, AP1.0, Snapshot, Signals"),
("G3 — Gates & Checkliste", "reached", "AP1.4/4b/4c, Verify, Kriterien"),
("G4 — Ist-Hierarchie & Plan/Ist", "reached", "AP1.5/5c, AP1.6, AP1.14, Journey"),
("G5 — PM Work Modes & Plan-Outline", "active", "AP1.9a ✓; AP1.12 ◐; 9be offen"),
("G6 — Archetyp-Steuerung MVP", "active", "AP2.0 ◐; AP2.0d offen"),
("G7 — MVP-Abnahfe B2b", "planned", "Validation, Leitfrage, Cockpit-Signale"),
("G8 — Agent & Integration", "planned", "AP1.7, Gitea-Webhook, MCP"),
]
gate_ids = _ensure_gate_chain(
tenant_id=tenant_id,
initiative_id=initiative_id,
gates=gate_defs,
)
project_ids = _ensure_projects(
tenant_id=tenant_id,
initiative_id=initiative_id,
titles=["Backend", "Frontend", "Docs & ADPs", "Deploy / CI"],
)
g5 = gate_ids["G5 — PM Work Modes & Plan-Outline"]
g6 = gate_ids["G6 — Archetyp-Steuerung MVP"]
g4 = gate_ids["G4 — Ist-Hierarchie & Plan/Ist"]
done_actions = [
(
"AP1.6b — Journey Gate-Fortschritt",
"done",
g4,
project_ids["Frontend"],
"b85a6ec",
),
(
"AP1.8a — Portfolio-Rang Cockpit",
"done",
g5,
project_ids["Frontend"],
"a19c6ab",
),
(
"AP1.14 — Plan/Ist-Snapshots",
"done",
g4,
project_ids["Backend"],
"064779e",
),
(
"AP2.0 — Archetyp-Slice",
"done",
g6,
project_ids["Backend"],
"3bd9832",
),
(
"DOC-Sync — Status-Review & Roadmap",
"done",
g6,
project_ids["Docs & ADPs"],
None,
),
]
for title, status, gate_id, project_id, sha in done_actions:
action = _ensure_action(
tenant_id=tenant_id,
initiative_id=initiative_id,
title=title,
status=status,
roadmap_item_id=gate_id,
project_id=project_id,
)
if sha:
_ensure_evidence(
tenant_id=tenant_id,
initiative_id=initiative_id,
title=f"Merge {title}",
description=_gitea_commit(sha, title),
roadmap_item_id=gate_id,
action_id=action["id"],
actor_id=owner_actor_id,
)
open_actions = [
("AP1.9c — Cockpit-Signale auf Portfolio-Kacheln", g5, project_ids["Frontend"]),
("AP2.0d — Next-Action-Strategien pro Archetyp", g6, project_ids["Backend"]),
("Dogfooding R2 — Ist laufend pflegen", g6, project_ids["Docs & ADPs"]),
]
for title, gate_id, project_id in open_actions:
_ensure_action(
tenant_id=tenant_id,
initiative_id=initiative_id,
title=title,
status="open",
roadmap_item_id=gate_id,
project_id=project_id,
)
_ensure_decision(
tenant_id=tenant_id,
initiative_id=initiative_id,
title="Join/Branch Graph — deferred",
outcome="OR-Alternativpfade und volle Join-Logik erst bei Use Case (AP1.15d). "
"Siehe ADP_Roadmap_Graph_and_Gate_Checklist_v0.1.md",
)
_ensure_decision(
tenant_id=tenant_id,
initiative_id=initiative_id,
title="MCP nach Operational API",
outcome="MCP-Adapter erst nach AP1.7 (/api/operational). Schicht 4 eingefroren bis B2b-Validation.",
)
_ensure_decision(
tenant_id=tenant_id,
initiative_id=initiative_id,
title="MVP v0.3 PO-Freigabe",
outcome="Abnahfe Stufe A: A1, A2, B2b + B3 minimal. Dokument: Kairo_MVP_Definition_v0.3.md",
)
_ensure_portfolio_first(tenant_id=tenant_id, initiative_id=initiative_id)
print("[dogfooding] R1 abgeschlossen — Kairo-Jinkendo als Vorhaben gespiegelt")

View File

@ -1,7 +1,9 @@
# Jinkendo Kairo # Jinkendo Kairo
## Current State & Gap Analysis v0.2 ## Current State & Gap Analysis v0.2
**Status:** Gap-Analyse (living document) > **Superseded:** Siehe **`Kairo_Current_State_Gap_Analysis_v0.3.md`** (Stand 2026-07-11).
**Status:** Gap-Analyse (archiviert)
**Stand:** 2026-07-05 (nach AP1.1b + DOC Welle 1) **Stand:** 2026-07-05 (nach AP1.1b + DOC Welle 1)
**Ersetzt für Ist-Stand:** `Kairo_Current_State_Gap_Analysis_AP0.1_AP0.6b_v0.1.md` **Ersetzt für Ist-Stand:** `Kairo_Current_State_Gap_Analysis_AP0.1_AP0.6b_v0.1.md`
**Detail-Tabelle:** `Kairo_Implementation_Truth_Table_v0.1.md` **Detail-Tabelle:** `Kairo_Implementation_Truth_Table_v0.1.md`

View File

@ -0,0 +1,97 @@
# Jinkendo Kairo
## Current State & Gap Analysis v0.3
**Status:** Gap-Analyse (living document)
**Stand:** 2026-07-11 (Review + DOC-Sync)
**Ersetzt für Ist-Stand:** `Kairo_Current_State_Gap_Analysis_v0.2.md`
**Detail-Tabelle:** `Kairo_Implementation_Truth_Table_v0.1.md`
**Review & Roadmap:** `Kairo_Status_Review_and_Next_Steps_v0.1.md`
---
## 1. Zweck
Ordnet **Implementierungsstand** gegen **Vision v0.2** und **MVP v0.3** ein — nicht gegen veraltetes „Milestone minimal = fertig“.
---
## 2. Was seit v0.2 (2026-07-05) dazugekommen ist
| Paket | Geliefert | Produktwert |
|-------|-----------|-------------|
| AP1.4c4e | Checkliste-UI, Graph Engine, Methodenprofile | ◐ Gates nutzbar |
| AP1.12ad | Plan-Outline, Modal, Reorder, Actions im Baum | ◐ Plan-Modus |
| AP1.13a/b | Gate-Map, Dependency-Pflege | ◐ Graph-Sicht |
| AP1.14 | Plan-Snapshots, Plan/Ist-Diff | ◐ Kontrolle |
| AP1.15ac | Zielzustands-Designer | ◐ Plan-Graph |
| AP1.5d | Task-Baum Backend + Outline | ◐ |
| AP1.6b | Journey Gate-Fortschritt + Ist-Graph | ◐ Kontrolle |
| AP1.8a | Portfolio-Rang | ◐ Cockpit |
| AP1.9a | PM Work Modes Shell | ✓ IA-Grundlage |
| AP1.10c | Profil-Modal Archetyp/EFS | ◐ |
| AP2.0ac | Method-Stubs, Archetypen, Kontrolle-Lagebild | ◐ MVP-B2b-Basis |
| DOC Review | Status-Review, Dogfooding-Konzept | ✓ |
---
## 3. Gap-Matrix (Vision v0.2 + MVP v0.3)
| Konzept | Technisch | Produkt (Alltag) | Nächstes Paket |
|---------|-----------|------------------|----------------|
| Tenant / Actor / Capabilities | ✓ | ✓ | — |
| Initiative + Archetyp | ◐ | ◐ | Dogfooding R1 |
| Action (Arbeitspaket) | ✓ | ◐ | AP1.9 polish |
| Project / Task Hierarchie | ◐ | ◐ | AP1.5d Rest |
| Backlog / Blocker / Evidence / Decision / Review | ✓ | ◐ | Dogfooding Evidence |
| RoadmapItem / Gates | ◐ | ◐ | Dogfooding Gates |
| Plan vs. Ist | ◐ | ◐ | AP1.9d |
| Graph / Designer | ◐ | ◐ | — |
| Steering / Lifecycle / Snapshot | ◐ | ◐ | AP2.0d |
| NextAction mit Begründung | ◐ | ◐ | AP2.0d |
| Portfolio-Priorität | ◐ | ◐ | AP1.9c Signale |
| Situativer Kontext | ✗ | ✗ | AP1.8b deferred |
| PM Work Modes IA | ✓ Shell | ◐ | AP1.9be |
| Modal/Detail-Bearbeitung | ◐ | ◐ | AP1.12/10 polish |
| Journey | ◐ | ◐ | Validation |
| Operational Actor API | ✗ | ✗ | AP1.7 |
| Gitea-Integration | ✗ | ✗ | Phase 1 manuell; Webhook später |
| MVP-Abnahfe Stufe A | ◐ Infra | ✗ | AP2.1 / AP0.10d |
---
## 4. Dokumenten-Gap
| Gap | Status |
|-----|--------|
| Zielbild vs. Ist vermischt | ◐ → **verbessert** (Review + Truth Table Sync) |
| Vision §10 veraltet | ◐ → Verweis auf Truth Table |
| Roadmap Phasen veraltet | ✓ aktualisiert 2026-07-11 |
| Kein Dogfooding-Konzept | ✓ `Kairo_Dogfooding_Mirror_Steering_v0.1.md` |
| Target State ohne Marker | ◐ Implementation Map |
---
## 5. Zwingende nächste Schritte
1. **Dogfooding R1** — Kairo-Jinkendo in Kairo anlegen (manuell, Pi)
2. **AP1.9c** — Cockpit-Signale auf Portfolio-Kacheln
3. **AP2.0d** — Next-Action-Strategien pro Archetyp
4. **AP0.10d / AP2.1** — Validation B2b
5. **AP1.7** — Operational API (Voraussetzung MCP)
Siehe `Kairo_Status_Review_and_Next_Steps_v0.1.md` §5.
---
## 6. Risiko bei Verzögerung
| Risiko | Folge |
|--------|-------|
| Weiter Plan-Politur ohne Steuerung | Infrastruktur ohne MVP-Wert |
| Kein Dogfooding | Keine ehrliche Validation |
| MCP vor AP1.7 | Ad-hoc-APIs, Scope-Verletzung |
| Truth Table erneut veralten | Falsche Prioritäten |
---
*v0.2 archiviert als Referenz; bei Konflikt gilt v0.3.*

View File

@ -19,7 +19,7 @@ Es verhindert:
- CRUD-Omnibus-Seiten als Steuerungs-UI - CRUD-Omnibus-Seiten als Steuerungs-UI
- Verwechslung von **implementiertem** und **zielbildlichem** Stand - Verwechslung von **implementiertem** und **zielbildlichem** Stand
**Implementierungsstand:** `Kairo_Implementation_Truth_Table_v0.1.md` **Implementierungsstand:** `Kairo_Implementation_Truth_Table_v0.1.md` · **Gap:** `Kairo_Current_State_Gap_Analysis_v0.3.md`
--- ---

View File

@ -1,13 +1,14 @@
# Jinkendo Kairo # Jinkendo Kairo
## Corrected MVP Roadmap v0.2 ## Corrected MVP Roadmap v0.2
**Status:** führende Produkt-Roadmap **Status:** führende Produkt-Roadmap (AP-Historie + nächste Schritte)
**Stand:** 2026-07-06 (PO-Korrektur Schichtung) **Stand:** 2026-07-11 (Review + DOC-Sync)
**Ersetzt:** `Kairo_Corrected_MVP_Roadmap_v0.1.md` **Ersetzt:** `Kairo_Corrected_MVP_Roadmap_v0.1.md`
**Vision:** `Kairo_Vision_and_Product_Direction_v0.2.md` **Vision:** `Kairo_Vision_and_Product_Direction_v0.2.md`
**MVP-Nordstern:** `Kairo_MVP_Definition_v0.3.md` (führend für Abnahfe)
**Ist-Stand:** `Kairo_Implementation_Truth_Table_v0.1.md` **Ist-Stand:** `Kairo_Implementation_Truth_Table_v0.1.md`
**PO-ADP:** `ADP_PO_Product_Layering_and_IA_Reset_v0.1.md` **Review & Nächste Schritte:** `Kairo_Status_Review_and_Next_Steps_v0.1.md`
**Container-ADP:** `ADP_Recursive_Containers_and_Execution_Granularity_v0.1.md` **Dogfooding:** `Kairo_Dogfooding_Mirror_Steering_v0.1.md`
--- ---
@ -99,20 +100,24 @@ Phase A OM-Inventar AP0.8AP0.10 ✓ (technisch)
Phase B Steering Skeleton AP1.0AP1.1b ✓ (technisch) Phase B Steering Skeleton AP1.0AP1.1b ✓ (technisch)
Phase C Dokumentation Welle 12 ✓ Phase C Dokumentation Welle 12 ✓
Phase D IA-Skeleton AP1.2 + AP1.2c ✓ Phase D IA-Skeleton AP1.2 + AP1.2c ✓
Phase E Steering AP1.2, AP1.3 ◐ Phase E Steering AP1.2 ✓ / AP1.3 ○
Phase F Gate-Backend AP1.4 + AP1.4b ✓ (Backend); UI minimal Phase F Gate AP1.4AP1.4e ✓ Backend + ◐ UI
Phase G Ist-Hierarchie AP1.5 ✓ Phase G Ist-Hierarchie AP1.5 + AP1.5c ✓
Phase G2 Rekursive Container AP1.5c5d ✓ 5c / → 5d nach AP1.6 Phase G2 Rekursive Tasks AP1.5d ◐ Backend + Outline
Phase H Plan/Ist-Verknüpfung AP1.6 ✓ Phase H Plan/Ist AP1.6 + AP1.6b ✓
Phase H2 PM Work Modes IA AP1.9 ✓ 9a / → 9b9e Phase H2 PM Work Modes AP1.9 ✓ 9a / → 9b9e
Phase H3 Plan Outline & Archetypes AP1.1012 ← **NÄCHSTES DESIGN+CODE** (PO 2026-07-09) Phase H3 Plan Outline AP1.12 + AP1.10 ◐ 12ad, 10c
Phase H4 Rekursive Tasks AP1.5d nach AP1.12d Phase I Gate-Graph AP1.13 + AP1.15 ◐ 13a/b, 15ac
Phase I Gate-Graph AP1.4d + AP1.13 nach AP1.12 Phase I2 Plan/Ist Snapshots AP1.14 ✓
Phase J Portfolio & Kontext AP1.8 geplant Phase J Portfolio AP1.8 ◐ 8a ✓ / 8b deferred
Phase K Agent Interface AP1.7 geplant (unverändert) Phase K Archetyp-Steuerung AP2.0 ◐ 2.0ac ✓ / → 2.0df
Phase L Validation AP0.10d (laufend PO) parallel Phase L Agent Interface AP1.7 ○
Phase M Validation AP0.10d + Dogfooding ← **NÄCHSTES (PO 2026-07-11)**
Phase N Integration Gitea/MCP nach AP1.7
``` ```
**Frontend-Version:** `0.18.0-ap2.0` · **Schema:** Migration 022
--- ---
## 3. Erledigt (Referenz) ## 3. Erledigt (Referenz)
@ -131,27 +136,39 @@ Phase L Validation AP0.10d (laufend PO) parallel
| AP1.4b | 0.13.1-ap1.4b | Gate-Checkliste Backend + Detail-Route | | AP1.4b | 0.13.1-ap1.4b | Gate-Checkliste Backend + Detail-Route |
| AP1.5c | 0.14.1-ap1.5c | Rekursive Projects | | AP1.5c | 0.14.1-ap1.5c | Rekursive Projects |
| AP1.6 | 0.15.0-ap1.6 | Plan/Ist, Journey, Gate-Beiträge | | AP1.6 | 0.15.0-ap1.6 | Plan/Ist, Journey, Gate-Beiträge |
| AP1.5e | 0.15.1-ap1.5e | Projekt-Detail (Übergang) | | AP1.6b | 0.15.0-ap1.6b | Journey Gate-Fortschritt + Ist-Graph |
| AP1.9a | 0.16.x-ap1.9a | PM Work Modes Shell, Scope, Redirects | | AP1.4c4e | 0.15.x | Checkliste-UI, Graph Engine, Methodenprofile |
| DOC Plan | 2026-07-09 | Plan Mode Design v0.1, ADP AP1.10 | | AP1.12ad | 0.16.x | Plan-Outline, Modal, Reorder |
| DOC PM UI | 2026-07-08 | PM Frontend UI Concept v0.1, ADP AP1.9 | | AP1.13a/b | 0.16.x | Gate-Map, Dependencies |
| DOC PO | 2026-07-06 | ADP Product Layering & IA-Reset | | AP1.14 | 0.17.x | Plan-Snapshots, Plan/Ist-Diff |
| DOC Container | 2026-07-06 | ADP Recursive Containers & Execution Granularity | | AP1.15ac | 0.17.x | Zielzustands-Designer |
| AP1.5d | 0.17.x | Task-Baum (teilweise) |
| AP1.8a | 0.18.x | Portfolio-Rang |
| AP2.0 | 0.18.0-ap2.0 | Archetyp-Katalog, Method-Stubs, Kontrolle-Lagebild |
| AP1.10c | 0.18.x | Profil-Modal Archetyp/EFS |
| DOC Review | 2026-07-11 | Status-Review, Truth Table Sync, Dogfooding-Konzept |
--- ---
## 4. Nächste Pakete (verbindliche Reihenfolge — PO 2026-07-06) ## 4. Nächste Pakete (verbindliche Reihenfolge — PO 2026-07-06)
### 4.0 Abnahme-Reihenfolge (Stand 2026-07-11) ### 4.0 Abnahme-Reihenfolge (Stand 2026-07-11 — Review)
| # | Paket | Status | Begründung | Siehe **`Kairo_Status_Review_and_Next_Steps_v0.1.md` §5** für vollständige Roadmap.
|---|-------|--------|------------|
| 1 | **AP1.6b** Journey Gate-Fortschritt + Ist-Graph | ✓ | ADP-Lücke schließen; Plan/Ist in Kontrolle sichtbar | | Phase | Paket | Status | Begründung |
| 2 | **AP1.9c/d** Cockpit + Kontrolle Polish | offen | Signale auf Portfolio-Kacheln, Filter | |-------|-------|--------|------------|
| 3 | **AP1.5d** Rekursive Tasks (Rest) | → | Backend + Outline da; ggf. Task-Detail-Route | | D0 | DOC-Sync (Truth Table, Gap, Review) | ✓ | eine Wahrheit |
| 4 | **AP1.8b** Situativer Kontext | deferred | Nach Portfolio-Prio (8a ✓) | | D1 | Dogfooding R1 — Kairo-Jinkendo in Kairo | **→ nächstes** | B2b-Validation |
| 5 | **AP1.7** Agent Interface | offen | Nach Operating Model tragfähig | | 1 | AP1.9c Cockpit-Signale | offen | MVP §5.7 |
| 6 | **AP1.15d** OR-Alternativpfade | deferred | Nur bei Use Case | | 2 | AP2.0d Next-Action-Strategien | offen | MVP Stufe A |
| 3 | Dogfooding R2 — Ist + Gitea-Evidence | offen | Fortschritt sichtbar |
| 4 | AP0.10d / AP2.1 Validation B2b | offen | MVP-Urteil |
| 5 | AP2.0f work_cycle (B3 minimal) | offen | Sprint-Zeitbox |
| 6 | AP1.7 Operational API | offen | MCP-Voraussetzung |
| 7 | Gitea-Webhook + MCP | deferred | Schicht 4 |
**Erledigt (Review-Queue):** AP1.6b ✓
### AP1.5 — Hierarchie & Ist-Ebene ✓ ### AP1.5 — Hierarchie & Ist-Ebene ✓
@ -369,7 +386,7 @@ Criteria, Waive/Defer, Reopen, Detail-Route. Version `0.13.1-ap1.4b`
| Thema | Bis wann | | Thema | Bis wann |
|-------|----------| |-------|----------|
| Gate-UI-Politur (Modal, Checkliste, Designer) | **Nach AP1.6** (PO 2026-07-06) | | Gate-UI-Politur (Modal, Checkliste, Designer) | **Teilweise geliefert** (AP1.4c, 12b, 15); weiter nur mit Steuerungs-Bezug |
| Prompt/KI/MCP produktiv | Ist-Hierarchie + Plan/Ist | | Prompt/KI/MCP produktiv | Ist-Hierarchie + Plan/Ist |
| Method Designer UI | AP1.3+ | | Method Designer UI | AP1.3+ |
| Gantt / Kalender | nach Plan/Ist | | Gantt / Kalender | nach Plan/Ist |
@ -398,10 +415,13 @@ MVP-nah wenn:
0.14.0-ap1.5 ✓ Hierarchie (Project, Task flach) 0.14.0-ap1.5 ✓ Hierarchie (Project, Task flach)
0.14.1-ap1.5c ✓ Rekursive Projects 0.14.1-ap1.5c ✓ Rekursive Projects
0.15.0-ap1.6 ✓ Plan/Ist / Journey 0.15.0-ap1.6 ✓ Plan/Ist / Journey
0.15.1-ap1.5d → Rekursive Tasks — NÄCHSTES 0.15.0-ap1.6b ✓ Journey Gate-Fortschritt
0.15.2-ap1.4d → Gate-Graph 0.16.x ✓ AP1.9a, AP1.12, AP1.13 (teilweise)
0.16.0-ap1.7 → Agent Interface 0.17.x ✓ AP1.14, AP1.15 (teilweise)
0.17.0-ap1.8 → Portfolio + Kontext 0.18.0-ap2.0 ✓ Archetyp-Slice AP2.0
0.18.x → AP1.9c, Dogfooding, AP2.0d — NÄCHSTES
0.19.x → AP2.0f work_cycle, AP2.1 Validation
0.20.0-ap1.7 → Operational Actor Interface
``` ```
--- ---

View File

@ -0,0 +1,256 @@
# Jinkendo Kairo
## Dogfooding — Spiegel-Steuerung für Kairo-Jinkendo v0.1
**Status:** Betriebskonzept (Phase 1 — manuell)
**Stand:** 2026-07-11
**Auslöser:** Kairo-Jinkendo als Referenz-Vorhaben B2b in Kairo führen; Plan bleibt in Git/Docs, Kairo spiegelt Ist + Fortschritt
**Bezug:** `Kairo_MVP_Definition_v0.3.md` §8 (B2b), `ADP_Archetype_and_Method_Catalog_v0.2.md` (`product.kairo_dev`), `Kairo_Status_Review_and_Next_Steps_v0.1.md`
---
## 1. Prinzip: Spiegel, nicht Quelle
| Ebene | **Quelle der Wahrheit (Phase 1)** | **Kairo-Rolle** |
|-------|-----------------------------------|-----------------|
| **Plan / Roadmap** | `docs/product/`, ADPs, Cursor/Git | Gates als **Abbild** der Phasen; Kriterien = Abnahme-Checkliste |
| **Feinplanung / APs** | Roadmap-Docs, Chat, Issues | **Actions** (committete Arbeitspakete) |
| **Ist-Fortschritt** | Git-Commits, Deploy, Tests | Action-Status, Gate-Verify, Evidence |
| **Ergebnisse / Artefakte** | Gitea (Commits, PRs, CI) | **Evidence** mit Link in `description` |
| **Entscheidungen** | ADPs, PO-Entscheidungen in Docs | **Decision**-Einträge (kurz + Verweis) |
| **Reise** | aggregiert | **Journey** (automatisch aus OM-Events) |
**Phase 1:** Keine Planung **aus** Kairo heraus — nur **Spiegeln** und **Steuern** (Next Action, Attention, Gate-Fortschritt).
**Phase 2 (später):** Gitea-Webhook → Evidence/Journey automatisch (Schicht 4, nach AP1.7).
**Phase 3 (später):** MCP/Operational API — Agent pflegt Ist aus Cursor.
---
## 2. Vorhaben-Setup (einmalig, manuell auf Pi)
### 2.1 Initiative
| Feld | Wert |
|------|------|
| **Titel** | Jinkendo Kairo |
| **Archetyp** | `initiative.product` |
| **Ausprägung / Profil** | `product.kairo_dev` |
| **Methode** | `continuous_product` (automatisch via Archetyp) |
| **Goal** | Operativer Program Director — MVP v0.3 Stufe A (B2b) |
| **EFS `metrics`** | KPIs: Deploy grün, Leitfrage ≤2 Min, Validation ≥3/5 |
| **EFS `release_theme`** | z. B. „Steuerung sichtbar + Dogfooding“ |
Optional in **Goal** oder **metrics** (bis dediziertes EFS-Feld):
```text
Repository: http://192.168.2.144:3000/Lars/Kairo-Jinkendo
Branch develop: Deploy + Tests
Branch main: Production
```
### 2.2 Projects (Ist-Struktur, optional)
Spiegel der Code-Schichten — flach oder Baum:
| Project | Inhalt |
|---------|--------|
| Backend | API, Steering, Migrationen |
| Frontend | Modi, Plan, Kontrolle |
| Docs & ADPs | Product, Architecture |
| Deploy / CI | Gitea Actions, Pi |
Actions nur an **Blatt-Projects** (AP1.5c-Regel).
### 2.3 Actors
| Actor | Typ | Rolle |
|-------|-----|-------|
| Lars (User) | human | PO |
| Cursor Agent | agent | Vibe-Coder (später AP1.7) |
---
## 3. Gate-Struktur (Plan-Spiegel)
Gates = **Zielzustände** entlang der **bereits erledigten und offenen Phasen** — nicht jede Commit-Message.
Vorschlag **8 Gates** (sequenziell, `requires`-Kanten):
| # | Gate-Titel | Status (2026-07-11) | Kriterien (Beispiele) |
|---|------------|---------------------|------------------------|
| G1 | Foundation AP0 | **reached** | Tenant, Actor, Auth, OM-Tabellen |
| G2 | IA & Steering Skeleton | **reached** | AP1.2c, AP1.0, Snapshot |
| G3 | Gates & Checkliste Backend | **reached** | AP1.4/4b, Verify API |
| G4 | Ist-Hierarchie & Plan/Ist | **reached** | AP1.5/5c, AP1.6, AP1.14 |
| G5 | PM Work Modes & Plan-Outline | **active** | AP1.9a ✓, AP1.12 ◐, 9be offen |
| G6 | Archetyp-Steuerung MVP | **active** | AP2.0 ◐, AP2.0d offen |
| G7 | MVP-Abnahfe B2b | **planned** | Validation, Leitfrage, Cockpit-Signale |
| G8 | Agent & Integration | **planned** | AP1.7, Gitea-Webhook optional |
**Verify-Regel:** Gate auf `reached` nur wenn Kriterien erfüllt (AP1.4b) — rückwirkend für G1G4 mit Evidence „Completion Report / Commit-Spanne“.
**Graph:** G1 → G2 → … → G8 (sequenziell); Parallel-Gruppen erst bei Bedarf (AP1.15c).
---
## 4. Actions (Ist) — Mapping
**Regel:** Eine Action = ein **committetes Arbeitspaket** (AP-Slice), nicht jeder Task.
### 4.1 Erledigt → Action `done`
| Action-Titel | Gate | Evidence |
|--------------|------|----------|
| AP1.6b Journey Gate-Fortschritt | G4 | Commit `b85a6ec` |
| AP1.8a Portfolio-Rang | G5 | Commit `a19c6ab` |
| AP1.15ac Zielzustands-Designer | G4/G5 | Commits `0c2ca4a`…`d7aefed` |
| AP2.0 Archetyp-Slice | G6 | Commit `3bd9832` ff. |
### 4.2 Offen → Action `open` / `in_progress`
| Action-Titel | Gate | Priorität |
|--------------|------|-----------|
| AP1.9c Cockpit-Signale | G5 | **hoch** |
| AP2.0d Next-Action-Strategien | G6 | **hoch** |
| Dogfooding R1 Vorhaben anlegen | G7 | **sofort (manuell)** |
| AP1.7 Operational API | G8 | nach Validation |
| DOC-Sync (dieser Slice) | G6 | erledigt mit Commit |
**Zuordnung:** `roadmap_item_id` = aktuelles Gate; `project_id` = Backend/Frontend/Docs.
---
## 5. Fortschrittstracking
### 5.1 Gate-Fortschritt (automatisch in Kairo)
- **Kontrolle → Journey:** Fokus-Gates + Kriterien (AP1.6b)
- **Kontrolle → Plan/Ist:** Diff Plan-Snapshot vs. Ist (AP1.14)
- **Gate-Detail:** Checkliste, Verify, Dependencies
### 5.2 Action-Fortschritt (manuell / aus Git spiegeln)
| Ist in Git | Kairo-Update |
|------------|--------------|
| Commit auf `develop` merged | Action → `done`; Evidence anlegen |
| Work in Progress | Action → `in_progress` |
| Blockiert (CI rot, DB) | Blocker anlegen + Action → `blocked` |
### 5.3 Portfolio
- **Cockpit:** `portfolio_rank` #1 für „Jinkendo Kairo“ (AP1.8a)
- Nach AP1.9c: Signale auf Kachel (offene Blocker, Gate blockiert, …)
---
## 6. Ergebnisse & Gitea-Verweise
### 6.1 Was heute ohne Code geht
**Evidence** (`title`, `description`, `roadmap_item_id`, `action_id`):
- `title`: kurz, z. B. „AP1.6b merged“
- `description`: Markdown mit Links:
```markdown
Commit: [b85a6ec](http://192.168.2.144:3000/Lars/Kairo-Jinkendo/commit/b85a6ec)
Branch: develop
CI: [test.yml Run #…](http://192.168.2.144:3000/Lars/Kairo-Jinkendo/actions/runs/…)
Deploy: Pi develop OK
```
- `status`: `accepted` wenn Review/Verify OK
- Verknüpfung mit **Gate-Kriterium** (`satisfied_by_evidence_id`) wo sinnvoll
**Decision** für PO-Entscheidungen:
- Titel: „Join/Branch deferred“
- Outcome: Verweis auf `ADP_Roadmap_Graph_and_Gate_Checklist_v0.1.md` § Join/Branch
**Review** nach größeren Slices (optional):
- Titel: „Review AP2.0 Steering Slice“
- Summary + Link zum Sprint-Assignment
### 6.2 Journey
Journey aggregiert automatisch: Decisions, Reviews, Evidence, Actions (status `done`), Gates — **Gitea-Links erscheinen in Evidence-Summary**, wenn in `description` gepflegt.
### 6.3 URL-Muster Gitea (Instanz Lars)
| Artefakt | URL-Muster |
|----------|------------|
| Commit | `http://192.168.2.144:3000/Lars/Kairo-Jinkendo/commit/{sha}` |
| Branch | `http://192.168.2.144:3000/Lars/Kairo-Jinkendo/src/branch/{branch}` |
| Datei | `http://192.168.2.144:3000/Lars/Kairo-Jinkendo/src/branch/develop/{path}` |
| Actions/CI | `http://192.168.2.144:3000/Lars/Kairo-Jinkendo/actions` |
| Compare | `http://192.168.2.144:3000/Lars/Kairo-Jinkendo/compare/{base}...{head}` |
### 6.4 Was später automatisiert wird (nicht Phase 1)
| Integration | Trigger | Kairo-Ziel | Paket |
|-------------|---------|------------|-------|
| Push `develop` | Gitea Webhook | Evidence + Journey | AP2.x Integration |
| CI grün/rot | Workflow-Run | Evidence / Blocker | Hook `on_result_received` |
| PR merged | Gitea Event | Action `done` | AP1.7 + Agent |
**Guardrail:** Kein paralleles Issue-Tracking — Gitea bleibt Code-Quelle; Kairo bleibt Steuerungs-Quelle für Plan/Ist/Entscheidungen.
---
## 7. EFS-Erweiterung (optional, kleiner Code-Slice)
Für sauberere Repo-Verknüpfung (AP1.10b-Pattern, kein neues OM-Objekt):
| Feld | Archetyp | Typ | Zweck |
|------|----------|-----|-------|
| `repository_url` | `initiative.product` | text/uri | Gitea-Repo |
| `default_branch` | `initiative.product` | text | `develop` |
| `ci_status_url` | `initiative.product` | text/uri | Actions-Übersicht |
**Phase 1:** ohne Migration — URLs in `metrics` oder Initiative-`goal`.
**Phase 1b:** Seed in `entity_fields/definitions.py` + Anzeige im Profil-Modal.
---
## 8. Checkliste — Erste Anlage (Dogfooding R1)
Auf dem **Pi-Deploy** (nach Push auf `develop`):
**Automatisch:** Seed `seed_004_dogfooding_kairo_jinkendo` (Backend-Start, idempotent, Nicht-Prod).
**Manuell prüfen** in Kairo UI:
- [ ] Initiative „Jinkendo Kairo“ sichtbar (`initiative.product`, Profil `product.kairo_dev`)
- [ ] 4 Projects, 8 Gates (G1G4 `reached`, G5G6 `active`)
- [ ] Actions offen: AP1.9c, AP2.0d, Dogfooding R2
- [ ] Evidence mit Gitea-Commit-Links (z. B. `b85a6ec`, `a19c6ab`)
- [ ] Cockpit: Portfolio-Rang #1
- [ ] Kontrolle: Leitfrage-Test — „Was ist als Nächstes dran?“
**Erfolg R1:** In ≤2 Minuten in Kontrolle erkennbar: aktives Gate, nächste Action, letztes Evidence mit Gitea-Link.
---
## 9. Abnahme Dogfooding (R2)
| Check | Kriterium |
|-------|-----------|
| Plan-Spiegel | Gates entsprechen Roadmap-Phasen §2 |
| Ist aktuell | Offene Actions = echte nächste APs |
| Fortschritt | G5/G6 Kriterien reflectieren Truth Table |
| Gitea | Jede abgeschlossene Action hat ≥1 Evidence mit Commit-Link |
| Journey | ≥10 Events inkl. Decisions + Evidence |
| Steuerung | Next Action begründet (nach AP2.0d) |
---
## 10. Bezug zu MCP (später)
1. **AP1.7** — Agent liest `context`, `next-action`; schreibt Action-Status, Evidence
2. **MCP-Adapter** — Cursor ruft Operational API
3. Agent legt Evidence mit Commit-URL an nach jedem Push
4. **Kein** MCP vor AP1.7 (Scope Lock)
---
*Siehe auch: `Kairo_Status_Review_and_Next_Steps_v0.1.md`, `Sprint1_AP2_0_Steering_Archetypes_Assignment_v0.1.md`, `.gitea/workflows/test.yml`*

View File

@ -1,11 +1,13 @@
# Kairo — Implementation Truth Table v0.1 # Kairo — Implementation Truth Table v0.1
**Status:** living document — bei jedem AP aktualisieren **Status:** living document — bei jedem AP aktualisieren
**Stand:** 2026-07-11 (nach AP1.6b) **Stand:** 2026-07-11 (Review + DOC-Sync; Code `develop` @ `b85a6ec`, Frontend `0.18.0-ap2.0`)
**Zweck:** Ehrliche Trennung von **implementiert**, **teilweise**, **nur API/Schema**, **nur Dokumentiert** **Zweck:** Ehrliche Trennung von **implementiert**, **teilweise**, **nur API/Schema**, **nur Dokumentiert**
Verhindert, dass Zielbild-Dokumente als Ist-Stand gelesen werden. Verhindert, dass Zielbild-Dokumente als Ist-Stand gelesen werden.
**Review:** `Kairo_Status_Review_and_Next_Steps_v0.1.md` · **Dogfooding:** `Kairo_Dogfooding_Mirror_Steering_v0.1.md`
--- ---
## Legende ## Legende
@ -30,7 +32,7 @@ Verhindert, dass Zielbild-Dokumente als Ist-Stand gelesen werden.
| Capabilities | ✓ | Keine Objekt-Sichtbarkeit | | Capabilities | ✓ | Keine Objekt-Sichtbarkeit |
| Auth / Session | ✓ | | | Auth / Session | ✓ | |
| Audit (Auth/Admin) | ◐ | Nicht für alle OM-Events | | Audit (Auth/Admin) | ◐ | Nicht für alle OM-Events |
| Migrationen nummeriert | ✓ | Schema 014 | | Migrationen nummeriert | ✓ | Schema bis **022** (`portfolio_rank`) |
--- ---
@ -38,23 +40,28 @@ Verhindert, dass Zielbild-Dokumente als Ist-Stand gelesen werden.
| Element | Stand | Anmerkung | | Element | Stand | Anmerkung |
|---------|-------|-----------| |---------|-------|-----------|
| Initiative | ✓ | | | Initiative | ✓ | inkl. `archetype_key`, `portfolio_rank` |
| Project | ◐ | AP1.5 + AP1.5c: Baum (`parent_project_id`), Blatt-Regel für Actions | | Project | ◐ | AP1.5 + AP1.5c: Baum, Blatt-Regel; `archetype_key` Mirror AP2.0b |
| Action | ✓ | Gate-Zuordnung AP1.6 | | Action | ✓ | Gate-Zuordnung AP1.6, `due_at` |
| ActionAssignment | ✓ | | | ActionAssignment | ✓ | |
| BacklogItem | ✓ | Gate-Zuordnung AP1.6 | | BacklogItem | ✓ | Gate-Zuordnung AP1.6, `sort_order` |
| Blocker | ✓ | `action_id` optional | | Blocker | ✓ | `action_id` optional |
| Milestone | ◐ | Tabelle MVP-Brücke; kein Gate | | Milestone | ◐ | Legacy-Tabelle MVP-Brücke; RoadmapItem bevorzugt |
| Evidence | ✓ | | | Evidence | ✓ | `roadmap_item_id`, `action_id`; Gitea-Links in `description` (manuell) |
| Decision | ✓ | | | Decision | ✓ | |
| Review | ✓ | | | Review | ✓ | `roadmap_item_id` |
| RecurringElement | ✓ | | | RecurringElement | ✓ | |
| Task (unter Action) | ◐ | AP1.5 minimal GUI | | Task (unter Action) | ◐ | AP1.5d: `parent_task_id`, Baum-API, Outline; Roll-up-UI ◐ |
| Roadmap | ◐ | 1 pro Initiative; Migration 010 | | Roadmap | ◐ | 1 pro Initiative; Migration 010 |
| RoadmapItem | ◐ | Verify über Checkliste AP1.4b | | RoadmapItem | ◐ | CRUD + Detail; Verify AP1.4b |
| RoadmapItem Dependencies | ◐ | requires/blocks/related | | RoadmapItem Dependencies | ◐ | requires/blocks/related; Graph AP1.4d |
| RoadmapItem Criteria | ◐ | Checkliste, waive/defer, Reopen AP1.4b | | RoadmapItem Criteria | ◐ | Checkliste, waive/defer, Reopen AP1.4b/c |
| Plan-Ist-Verknüpfung | ◐ | Evidence/Reviews + Kriterien | | Plan-Ist-Verknüpfung | ◐ | Links, Kriterien, Journey AP1.6; Snapshots AP1.14 |
| Plan-Snapshots | ◐ | Migration 021, Diff-View Kontrolle AP1.14 |
| Entity Field System | ◐ | Migration 017, Seeds AP1.10b/AP2.0b |
| Initiative Archetypes | ◐ | Migration 016, Registry AP2.0b |
| Method Profiles (Code-Seeds) | ◐ | `product.kairo_dev`, Kumite, Buch — AP2.0b |
| `work_cycle` / Sprint | ✗ | 📄 MVP v0.3 B3; Migration AP2.0f geplant |
--- ---
@ -64,19 +71,21 @@ Verhindert, dass Zielbild-Dokumente als Ist-Stand gelesen werden.
|---------|-------|-----------| |---------|-------|-----------|
| steering_contexts (009) | ✓ | Lifecycle, method_key | | steering_contexts (009) | ✓ | Lifecycle, method_key |
| backend/steering/ lifecycle | ✓ | | | backend/steering/ lifecycle | ✓ | |
| Signal Engine | ◐ | Regeln begrenzt | | Signal Engine | ◐ | Regeln begrenzt; Cockpit-Kacheln offen AP1.9c |
| Method Registry | ◐ | generic_operating, product_milestone_driven; **Ziel AP2.0a:** program_delivery, continuous_product, … — siehe `ADP_Archetype_and_Method_Catalog_v0.2.md` | | Method Registry | ◐ | AP2.0a: Stubs inkl. `continuous_product`, `program_delivery`, …; 2 Strategien aktiv |
| Archetyp-/Methoden-Katalog PO | ✓ | ADP v0.2 + MVP v0.3 freigegeben 2026-07-10 | | Archetyp-/Methoden-Katalog PO | ✓ | ADP v0.2 + MVP v0.3 |
| NextActionCandidate | ◐ | API + Widget; nicht konfigurierbar auf beiden Ebenen | | NextActionCandidate | ◐ | API + Widget; `reason_code` teilweise AP2.0c; Strategien AP2.0d offen |
| Portfolio-Priorität (Initiativen) | ◐ | AP1.8a: portfolio_rank, Cockpit-Reorder, Next-Action-Sort | | Portfolio-Priorität (Initiativen) | ◐ | AP1.8a: `portfolio_rank`, Reorder, Next-Action-Sort |
| Situativer Steuerungskontext (Next Action) | ✗ | 📄 Vision §7.6 | | Situativer Steuerungskontext (Next Action) | ✗ | 📄 Vision §7.6; AP1.8b deferred |
| AttentionItem | ◐ | | | AttentionItem | ◐ | |
| Initiative Steering Snapshot | ✓ | Graph für Actions + linked | | Initiative Steering Snapshot | ✓ | Actions + linked; Archetyp/Guidance AP2.0c |
| operating_phase | ✗ | entfernt AP1.2; Snapshot nutzt `signals` + Lifecycle | | operating_phase | ✗ | entfernt AP1.2 |
| signals (Snapshot) | ✓ | `backend/steering/signals/snapshot_signals.py` | | signals (Snapshot) | ✓ | `snapshot_signals.py` |
| Graph Read Models (blocked/ready) | ◐ | AP1.4d/e; Join/OR AP1.15d deferred |
| Hook Orchestrator | ✗ | AP1.3 geplant | | Hook Orchestrator | ✗ | AP1.3 geplant |
| Structure Builder | ✗ | 📄 | | Structure Builder | ✗ | 📄 |
| DoD Engine | ✗ | 📄 | | DoD Engine | ✗ | 📄 |
| Gitea / Webhook Integration | ✗ | 📄 Schicht 4; manuelle Evidence-Links Phase 1 |
--- ---
@ -84,16 +93,27 @@ Verhindert, dass Zielbild-Dokumente als Ist-Stand gelesen werden.
| Sicht | Stand | Anmerkung | | Sicht | Stand | Anmerkung |
|-------|-------|-----------| |-------|-------|-----------|
| Workspace (Portfolio aller Initiativen) | ✓ | Portfolio-Widget | | PM Work Modes Shell | ✓ | AP1.9a: Cockpit, Work, Plan, Control + Redirects |
| Initiative-Übersicht (operative Steuerung) | ✓ | AP1.2c | | Cockpit (Portfolio) | ◐ | Widget-Grid; Rang AP1.8a; Signale auf Kacheln ✗ AP1.9c |
| Initiative Unterseiten (Plan, Inbox, …) | ✓ | Shell + Pflege verschoben | | Ausführen (/work) | ◐ | Heute, Meine APs |
| Journey (Kontrolle / Initiative) | ◐ | AP1.6b: Fokus-Gates + Kriterien read-only, Ist-Graph eingebettet | | Planen (/plan) | ◐ | Outline AP1.12, Gates, Inbox, Struktur, Profil |
| Next-Action-Widget konfigurierbar (Workspace + Initiative) | ✓ | scope portfolio/initiative | | Kontrolle (/control) | ◐ | Status, Plan/Ist AP1.14, Journey AP1.6b |
| Action Detail-Route | ✓ | `/initiatives/:id/actions/:actionId` | | Scope-Breadcrumb modus-sensitiv | ◐ | AP1.9b teilweise |
| Action Detail-Seite | ✗ | | | Workspace (Legacy-Redirect) | ✓ | → Cockpit |
| Gate Detail-Seite | ◐ | `/initiatives/:id/plan/items/:itemId` AP1.4b | | Initiative-Übersicht (Steuerung) | ✓ | AP1.2c / Control Status |
| Modal-Bearbeitung | ✗ | Inline-Formulare überall | | Journey | ◐ | AP1.6b: Fokus-Gates, Kriterien read-only, Ist-Graph |
| Next-Action-Widget | ✓ | portfolio + initiative scope |
| Action Detail-Route | ✓ | `/actions/:actionId` |
| Action Detail-Seite | ✓ | ActionHubCard + TasksSection |
| Gate Detail-Seite | ◐ | `/gates/:gateId`; Checkliste AP1.4c |
| Gate Map (read-only) | ✓ | AP1.13a |
| Gate Dependencies pflegen | ◐ | AP1.13b Detail |
| Zielzustands-Designer | ◐ | AP1.15ac; OR deferred |
| Plan-Outline | ◐ | AP1.12ad: Baum, Modal, Reorder, Actions |
| Profil-Modal (Archetyp/EFS) | ◐ | AP1.10c |
| Modal-Bearbeitung (Gates/Profil) | ◐ | viele Sektionen noch Inline-CRUD |
| Admin-UI | ✗ | | | Admin-UI | ✗ | |
| Team-Modus | ✗ | AP1.9f |
--- ---
@ -101,17 +121,34 @@ Verhindert, dass Zielbild-Dokumente als Ist-Stand gelesen werden.
| Gate-Anforderung (Vision) | Ist | | Gate-Anforderung (Vision) | Ist |
|---------------------------|-----| |---------------------------|-----|
| DoD / prüfbare Kriterien | ◐ | `roadmap_item_criteria`; Default „Gate allgemein“ | | DoD / prüfbare Kriterien | ◐ | `roadmap_item_criteria`; UI AP1.4c |
| Zieltermin | ◐ | `target_date` | | Zieltermin | ◐ | `target_date` |
| Abhängigkeiten | ◐ | API; Graph Engine AP1.4d | | Abhängigkeiten | ◐ | API + Graph Engine AP1.4d; Designer AP1.15 |
| parallel vs. sequenziell | ◐ | `sequencing_mode` (deprecated); Graph AP1.4d | | parallel vs. sequenziell | ◐ | Kanten + `parallel_group`; `sequencing_mode` deprecated |
| Plan-Graph vs. Ist-Overlay | ◐ | AP1.13 Designer + AP1.6b Journey Ist-Graph (read-only); Plan/Ist-Diff AP1.14 | | Plan-Graph vs. Ist-Overlay | ◐ | Designer AP1.15; Journey Ist-Graph AP1.6b; Diff AP1.14 |
| Zielzustands-Designer (Joint/Parallel) | ◐ | AP1.15a/b Designer; AP1.15c parallel/optional in Engine+Designer; OR deferred | | Zielzustands-Designer (Joint/Parallel) | ◐ | AP1.15ac; Join/OR AP1.15d deferred |
| Plan-Revision / Graph-Historie | ◐ | AP1.14 Plan-Snapshots | | Plan-Revision / Graph-Historie | ◐ | AP1.14 Plan-Snapshots |
| Verify vor `reached` | ◐ | Kriterienplan + gate_override | | Verify vor `reached` | ◐ | Kriterien + gate_override |
| Reopen nach `reached` | ◐ | `active`, Kriterien bleiben AP1.4b | | Reopen nach `reached` | ◐ | AP1.4b |
| Decision bei `moved` | ✗ | | | Decision bei `moved` | ✗ | |
| Quality-Gate-Semantik | ◐ | Checkliste + Audit | | Quality-Gate-Semantik | ◐ | Checkliste + Audit teilweise |
---
## Archetyp / MVP v0.3
| Element | Stand | Anmerkung |
|---------|-------|-----------|
| Vier-Schichten-Modell dokumentiert | ✓ | ADP v0.2 |
| Initiative-Archetypen Seeds | ◐ | AP2.0b |
| Default-Methode bei Anlage | ◐ | AP2.0b |
| Next-Action program_delivery | ◐ | Strategie registriert |
| Next-Action continuous_product | ◐ | Strategie registriert |
| maturity / sequential / queue / recurring Strategien | ○ | AP2.0d |
| Referenz-Ausprägung product.kairo_dev | ◐ | Code-Seed; Dogfooding manuell |
| MVP-Abnahfe Stufe A validiert | ✗ | AP0.10d / AP2.1 offen |
| Operational Actor API | ✗ | AP1.7 |
| MCP produktiv | ✗ | nach AP1.7 |
--- ---
@ -119,10 +156,27 @@ Verhindert, dass Zielbild-Dokumente als Ist-Stand gelesen werden.
| Vision | UI heute | | Vision | UI heute |
|--------|----------| |--------|----------|
| Arbeitspaket | Maßnahme | | Arbeitspaket | Maßnahme (interim) |
| Quality Gate | Meilenstein (CRUD) | | Quality Gate | Zielzustand / Gate (teils „Meilenstein“ legacy) |
| Programm | Vorhaben | | Programm | Vorhaben |
| Plan | ◐ | Plan-Liste + Gate-Detail AP1.4b | | Plan | ◐ | Plan-Outline + Gates + Designer |
| Cockpit | ✓ | ehem. Workspace |
---
## MVP-Nutzbarkeits-Bar (v0.3 §5) — Kurz
| # | Kriterium | Stand |
|---|-----------|-------|
| 1 | Anlegen Archetyp/Methode | ◐ |
| 2 | Struktur modellieren | ◐ |
| 3 | Ist committen | ◐ |
| 4 | Kontrolle begründet | ◐ |
| 5 | Journey | ◐ |
| 6 | Leitfrage ≤2 Min | ◐ |
| 7 | Cockpit Attention | ◐ |
Details: `Kairo_Status_Review_and_Next_Steps_v0.1.md` §2.1
--- ---
@ -131,20 +185,21 @@ Verhindert, dass Zielbild-Dokumente als Ist-Stand gelesen werden.
| Risiko | Mitigation | | Risiko | Mitigation |
|--------|------------| |--------|------------|
| Target State liest sich wie fertig | Truth Table + Vision v0.2 | | Target State liest sich wie fertig | Truth Table + Vision v0.2 |
| Completion Reports = Vision erreicht | Banner „technisch, nicht produktlich“ | | Completion Reports = Vision erreicht | Review-Doc + Dogfooding |
| Usability Recovery → mehr InitiativeDetail | Recovery Plan v0.2 → IA-first | | Roadmap-Phasen veraltet | Roadmap v0.2 §2 aktualisiert 2026-07-11 |
| Usability Recovery → InitiativeDetail | IA-first, Redirects AP1.9a |
--- ---
## Nächste erwartete Änderungen (nach DOC-Programm) ## Nächste erwartete Truth-Table-Änderungen
| AP | Erwartete Truth-Table-Änderung | | AP | Erwartung |
|----|--------------------------------| |----|-----------|
| AP1.2c | IA-Skeleton ✓ | | AP1.9c | Cockpit-Signale ◐→✓ |
| AP1.2 | operating_phase ✗, signals ✓ | | AP2.0d | Strategien ○→◐ |
| AP1.4 | RoadmapItem ◐, Gate Verify ◐ | | Dogfooding R1 | Referenz-Vorhaben in Alltag ◐ |
| AP1.5 | Task ○, Project GUI ◐ | | AP2.0f | work_cycle ○→◐ |
| AP1.8 | Portfolio-Priorität ○, situativer Kontext ○ | | AP1.7 | Operational API ✗→◐ |
--- ---

View File

@ -221,3 +221,5 @@ Bei MVP-Fragen gilt:
- `docs/architecture/Kairo_Method_Design_Principles_v0.1.md` - `docs/architecture/Kairo_Method_Design_Principles_v0.1.md`
- `docs/architecture/Kairo_Target_Architecture_Method_Driven_Adaptive_Steering_Core_v0.1.md` - `docs/architecture/Kairo_Target_Architecture_Method_Driven_Adaptive_Steering_Core_v0.1.md`
- `docs/product/Kairo_Implementation_Truth_Table_v0.1.md` - `docs/product/Kairo_Implementation_Truth_Table_v0.1.md`
- `docs/product/Kairo_Status_Review_and_Next_Steps_v0.1.md`
- `docs/product/Kairo_Dogfooding_Mirror_Steering_v0.1.md`

View File

@ -0,0 +1,170 @@
# Jinkendo Kairo
## Status-Review & Nächste Schritte v0.1
**Status:** PO-Review-Auswertung (living document)
**Stand:** 2026-07-11
**Auslöser:** Vollständiger Plan/Ist/Soll-Abgleich, MVP-Review, Vorbereitung Dogfooding
**Bezug:** `Kairo_MVP_Definition_v0.3.md`, `Kairo_Implementation_Truth_Table_v0.1.md`, `Kairo_Corrected_MVP_Roadmap_v0.2.md`
**Dogfooding:** `Kairo_Dogfooding_Mirror_Steering_v0.1.md`
---
## 1. Executive Summary
**Gesamtziel (unverändert):** Kairo ist der operative **Program Director** — Plan und Ist getrennt, Gates prüfbar, Steuerung archetyp- und methodengebunden, Agenten als Actors.
**Ist (2026-07-11, `develop` @ `b85a6ec`):**
- **Foundation & OM:** tragfähig (~95 %)
- **Plan/Gates/Infrastruktur:** weit (~70 %) — RoadmapItem, Checkliste, Graph Engine, Designer, Plan/Ist-Diff, Journey
- **IA / PM Work Modes:** Shell da (~60 %) — Polish offen
- **Archetyp-Steuerung (MVP v0.3):** erster Slice AP2.0 (~40 %)
- **MVP-Abnahfe Stufe A:** noch nicht validiert (~25 %)
**Urteil:** Technisch **weit über dem alten MVP-Slice** (`Initiative → Action`), produktlich **noch nicht MVP-nah** im Sinne von v0.3 — weil **Steuerung pro Archetyp**, **Cockpit-Signale** und **Referenz-Validierung** fehlen.
**Nächster strategischer Hebel:** Kairo-Jinkendo als **Referenz-Vorhaben B2b** in Kairo spiegeln (Dogfooding) — Plan bleibt in Git/Docs, Kairo trackt Ist + Fortschritt + Ergebnisse.
---
## 2. Plan / Ist / Soll — Review-Matrix
### 2.1 MVP-Nutzbarkeits-Bar (v0.3 §5)
| # | Kriterium | Soll | Ist 2026-07-11 | Δ |
|---|-----------|------|----------------|---|
| 1 | Vorhaben anlegen (Archetyp, Methode, EFS) | Archetyp → Default-Methode | AP2.0b ✓, Profil-Modal AP1.10c ◐ | UX nicht geführt |
| 2 | Passende Struktur modellieren | methodenabhängig | Gates, Graph, Outline, Projects ◐ | archetyp-Flows fehlen |
| 3 | Ist committen | Actions, Tasks, Recurring | Actions ✓, Tasks ◐ AP1.5d, Recurring ✓ | Task-Roll-up ◐ |
| 4 | Kontrolle mit Begründung | Lifecycle, Methode, Next Action | AP2.0c Snapshot ◐ | Strategien unvollständig |
| 5 | Journey nachvollziehbar | ≥5 Events | AP1.6a/b ◐ | nicht validiert |
| 6 | Leitfrage ≤2 Min | ohne CRUD-Wand | IA AP1.9a ✓, Inline-Forms ◐ | Polish AP1.9c/d |
| 7 | Cockpit Portfolio-Attention | welches Vorhaben zuerst | AP1.8a Rang ✓, Signale ✗ | AP1.9c |
**Score:** 0/7 voll ✓ · 7/7 ◐
### 2.2 Abnahfe-Stufen (Archetypen)
| Stufe | Archetypen | Ist |
|-------|------------|-----|
| **A** | A1, A2, B2b, B3 minimal | **B2b am nächsten** (Kairo selbst); A1/A2 → AP2.0d; B3 → AP2.0f (`work_cycle` fehlt) |
| **B** | A3, B1, D1 | Katalog + Seeds, keine Strategien |
| **C** | C1 | nur Spezifikation |
### 2.3 Reifegrad (technisch vs. produktlich)
```text
Foundation ████████ ~95%
OM-Persistenz ██████░░ ~75%
Plan/Gates ██████░░ ~70%
IA / Modi █████░░░ ~60%
Steering-Kern ████░░░░ ~50%
Archetyp-Steuerung ███░░░░░ ~40%
MVP-Abnahfe A ██░░░░░░ ~25%
Agent/MCP ░░░░░░░░ ~5%
Dokumentation █████░░░ ~55% (nach diesem DOC-Slice)
```
---
## 3. Was seit dem letzten DOC-Stand geliefert wurde
Commits auf `develop` bis `b85a6ec` (Auszug):
| Paket | Inhalt | Produktwert |
|-------|--------|-------------|
| AP1.4c | Gate-Checkliste UI | Verify im Alltag |
| AP1.4d/e | Graph Engine, Methodenprofile | blocked/ready, enforce_gate_blocking |
| AP1.12ad | Plan-Outline, Modal, Reorder, Actions im Baum | Plan-Modus nutzbar |
| AP1.13a/b | Gate-Map read-only + Dependency-Pflege | Graph-Sicht |
| AP1.14 | Plan-Snapshots, Plan/Ist-Diff | Kontrolle |
| AP1.15ac | Zielzustands-Designer | Pan/Zoom, Drag-Kanten, parallel/optional |
| AP1.5d | Task-Baum Backend + Plan-Outline | ◐ Rest UI |
| AP1.6b | Journey Gate-Fortschritt + Ist-Graph | Kontrolle |
| AP1.8a | Portfolio-Rang, Cockpit-Reorder | Cockpit |
| AP2.0ac | Method-Stubs, Archetyp-Seeds, Kontrolle-Lagebild | MVP-B2b-Basis |
| AP1.10c | Profil-Modal Archetyp/EFS | Anlage |
**Frontend-Version:** `0.18.0-ap2.0`
**Schema:** Migrationen 001022
---
## 4. Bekannte Abweichungen & Risiken
| Thema | Beschreibung | Maßnahme |
|-------|--------------|----------|
| Dokumentationsdrift | Truth Table, Gap Analysis, Vision §10, Roadmap §2 veraltet | **dieser DOC-Slice** |
| Zwei Roadmap-Logiken | Roadmap v0.2 (AP-Historie) vs. MVP v0.3 §9 (Abnahfe-first) | MVP v0.3 führend für Abnahme |
| Infrastruktur > Steuerung | Viel Gate/Plan-UI ohne archetyp-Strategien | AP2.0d vor Plan-Politur |
| Todo-Explosion | Listen noch überall erreichbar | MVP §7 UI-Regeln + Default-Ansichten |
| MCP vor AP1.7 | Ad-hoc-Integration | Erst Operational API |
| Gitea-Integration | Schicht 4 eingefroren | Phase 1: manuelle Evidence-Links (Dogfooding-Doc) |
---
## 5. Roadmap — Nächste Schritte (verbindlich)
Priorität nach MVP v0.3 §9, Review 2026-07-11 und Dogfooding-Vorbereitung:
| Phase | Paket | Ziel | Abhängigkeit |
|-------|-------|------|--------------|
| **D0** | **DOC-Sync** | Truth Table, Gap Analysis, Roadmap §23, dieses Dokument | — |
| **D1** | **Dogfooding R1** | Vorhaben „Kairo-Jinkendo“ in Kairo anlegen (Spiegel, manuell) | D0 |
| **1** | **AP1.9c** | Cockpit: Signale auf Portfolio-Kacheln | — |
| **2** | **AP1.9b/d** | Scope-Breadcrumb, Kontrolle-Polish | 1 optional parallel |
| **3** | **AP2.0d** | Next-Action-Strategien: maturity, sequential, recurring, queue | — |
| **4** | **Dogfooding R2** | Ist pflegen, Evidence mit Gitea-Links, Gate-Fortschritt | D1 |
| **5** | **AP0.10d / AP2.1** | Validation B2b: Leitfrage-Test auf Pi | 3, 4 |
| **6** | **AP2.0f** | `work_cycle` / Sprint auf Product (B3 minimal) | 5 optional |
| **7** | **AP1.5d Rest** | Task-Detail, Roll-up-UI | parallel möglich |
| **8** | **AP1.7** | Operational Actor Interface | nach 5 |
| **9** | **Integration** | Gitea-Webhook → Journey/Evidence (Schicht 4) | AP1.7 |
| **10** | **MCP-Adapter** | Cursor-Agent auf Operational API | 8 |
```text
D0 DOC ──► D1 Dogfooding anlegen ──► 1 AP1.9c ──► 3 AP2.0d ──► 4 Ist spiegeln
└──► 5 Validation ──► 8 AP1.7 ──► 10 MCP
```
**Bewusst deferred:** AP1.15d OR-Pfade, AP1.8b situativer Kontext, AP1.3 Hook Orchestrator (parallel möglich, nicht MVP-kritisch).
---
## 6. MVP-Urteil
**Ist Kairo MVP-nah (v0.3)?** — **Nein**, aber **B2b-Abnahfe (Kairo steuert Kairo)** ist mit D1 + AP1.9c + AP2.0d + Validation in **23 Iterationen** erreichbar.
Minimum für **Stufe-A-Abnahfe B2b**:
1. Vorhaben `initiative.product` + Ausprägung `product.kairo_dev`
2. Gate-Struktur entlang Phasen (siehe Dogfooding-Doc)
3. Committete Actions für laufende APs
4. Kontrolle: Next Action mit Begründung (prüfen nach AP2.0d)
5. Journey + Gate-Fortschritt sichtbar
6. Cockpit: Priorität + Signale
7. Validation ≥3/5 „hilft bei Steuerung“
---
## 7. Dokumenten-Updates in diesem Slice
| Dokument | Änderung |
|----------|----------|
| `Kairo_Implementation_Truth_Table_v0.1.md` | Vollständig auf Stand 2026-07-11 |
| `Kairo_Current_State_Gap_Analysis_v0.2.md` | → v0.3, Gap-Matrix aktualisiert |
| `Kairo_Corrected_MVP_Roadmap_v0.2.md` | Phasen §2, Erledigt §3, Nächste §4, Versionen §7 |
| `Kairo_Vision_and_Product_Direction_v0.2.md` | §10 Verweis auf Truth Table (Kurzstand) |
| `Kairo_Dogfooding_Mirror_Steering_v0.1.md` | **neu** — Spiegel-Steuerung + Gitea |
---
## 8. PO-Freigabe (offen)
- [ ] Roadmap §5 (Phasen D010) akzeptiert
- [ ] Dogfooding Phase 1 (manueller Spiegel) starten
- [ ] Gitea-Links in Evidence als Übergang bis Webhook OK
---
*Siehe auch: `Kairo_MVP_Definition_v0.3.md`, `ADP_Archetype_and_Method_Catalog_v0.2.md`, `Kairo_Dogfooding_Mirror_Steering_v0.1.md`*

View File

@ -399,29 +399,27 @@ Kairo ist **kein** einzelnes PM- oder Software-Framework. Auf **allen Ebenen** k
## 10. Ehrlicher Implementierungsstand (Kurz) ## 10. Ehrlicher Implementierungsstand (Kurz)
| Visionselement | Stand | **Vollständig:** `Kairo_Implementation_Truth_Table_v0.1.md` (Stand 2026-07-11)
|----------------|-------| **Review & Roadmap:** `Kairo_Status_Review_and_Next_Steps_v0.1.md`
| Tenant, Actor, Capabilities | ✓ produktionsnah |
| Initiative, Action, Assignment | ✓ flach |
| Backlog, Blocker, Evidence, Decision, Review | ✓ CRUD + APIs |
| Steering Foundation (Lifecycle, Snapshot) | ✓ Skeleton |
| Method Registry | ✓ minimal |
| Workspace Next Action / Heute | ✓ Widget-Ebene |
| **Portfolio-Priorität (Initiativen)** | ✗ |
| **Next-Action-Widget konfigurierbar (Workspace + Initiative)** | ◐ Widget-Registry; fest eingebaut |
| **Getrennte IA (Workspace → Initiative → Unterseiten)** | ✗ |
| **Operational Actor Interface (Vibe-Coder API)** | ✗ |
| **Situativer Steuerungskontext** | ✗ |
| **Modal/Detail-Bearbeitung** | ✗ |
| **Roadmap / RoadmapItem** | ✗ |
| **Gate mit DoD & Verifikation** | ✗ |
| **Abhängigkeiten** | ✗ |
| **Plan vs. Ist** | ✗ |
| **Task-Hierarchie unter Action** | ✗ |
| **Journey-Sicht** | ✗ |
| Project (optional im OM) | Schema/API teils, **GUI fehlt** |
Details: `Kairo_Implementation_Truth_Table_v0.1.md` | Visionselement | Stand 2026-07-11 |
|----------------|------------------|
| Tenant, Actor, Capabilities | ✓ |
| Initiative, Action, Assignment, OM-CRUD | ✓ / ◐ GUI |
| Steering Foundation (Lifecycle, Snapshot, Signals) | ✓ Skeleton |
| Method Registry + Archetyp-Katalog | ◐ AP2.0ac |
| PM Work Modes (Cockpit, Plan, Control) | ◐ Shell ✓, Polish offen |
| RoadmapItem / Gate / Checkliste / Graph | ◐ AP1.44e, 13, 15 |
| Plan vs. Ist / Journey | ◐ AP1.6, 1.14, 1.6b |
| Plan-Outline / Modal (Gates, Profil) | ◐ AP1.12, 1.10c |
| Portfolio-Priorität | ◐ AP1.8a |
| Next Action mit Begründung | ◐ AP2.0c; Strategien AP2.0d offen |
| Archetyp-Steuerung MVP v0.3 | ◐ nicht validiert |
| Operational Actor Interface / MCP | ✗ AP1.7 |
| Task-Hierarchie | ◐ AP1.5d |
| MVP-Abnahfe Stufe A | ✗ |
**Urteil:** Technisch weit über dem historischen `Initiative → Action`-Slice; produktlich **noch nicht MVP-nah** (v0.3) — Dogfooding + AP1.9c + AP2.0d als nächste Hebel.
--- ---