Kairo-Jinkendo/docs/sprints/Sprint1_AP1_16_Execution_Plan_v0.1.md
Lars 1166a0c7f1
All checks were successful
Deploy Development / deploy (push) Successful in 48s
Test Suite / pytest-backend (push) Successful in 2m20s
Test Suite / lint-backend (push) Successful in 3s
Test Suite / compose-smoke (push) Has been skipped
Test Suite / k6 /api/health Baseline (push) Successful in 19s
Test Suite / playwright-smoke (push) Successful in 14s
AP1.16a-b: Execution-Graph für Arbeitspaket-Abhängigkeiten.
Migration 023, Engine, API und ADP für Durchführungsplan getrennt vom Gate-Graph; Docs und Sprint-Assignment synchronisiert.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-12 10:38:01 +02:00

3.7 KiB
Raw Blame History

AP1.16 — Durchführungsplan & Work-Package-Abhängigkeiten

Stand: 2026-07-12
PO-Freigabe: ADP_Execution_Plan_and_Work_Package_Dependencies_v0.1.md (2026-07-12)
Version (Ziel): 0.19.0-ap1.16
Voraussetzung: AP1.5 (Actions), AP1.6 (Gate-Link), AP1.12d (Outline „Arbeit“)


Ziel

Ausführungsreihenfolge von Arbeitspaketen modellieren — getrennt vom Gate-Graph. Rollende Planung: unter aktivem Gate-Horizont APs mit Vorgängern, ready/blocked Read Models, optional Planning Debt.


PO-Regeln (verbindlich)

Abgrenzung

Gate-Graph (AP1.4d/15) Execution-Graph (AP1.16)
Knoten RoadmapItem Action
UI Zielzustands-Designer Plan-Outline „Arbeit“
Verify Kriterien + Evidence Action done
Granularität grob (515) fein (10100+)

Kanten-Semantik (action_dependencies)

dependency_kind Bedeutung
requires successor startet erst, wenn predecessor done
blocks predecessor offen → successor blocked
relates nur Anzeige, kein Block

Kanten-Richtung in DB: predecessor_action_idsuccessor_action_id (Vorgänger muss erfüllt sein, damit Nachfolger ready).

Scope

  • Beide Actions gleiche Initiative
  • Zyklen verboten (API lehnt ab)
  • Execution Engine steuert keinen Lifecycle automatisch — nur Read Models

Planning Actions

  • action_kind: delivery (Default), planning, review
  • Meta-APs für explizite Planungsschritte (Archetyp planning_mode=explicit)

Lieferungen

AP1.16a — Schema

# Inhalt
1 Migration 023_action_execution_plan.sql
2 actions.sort_order INT NOT NULL DEFAULT 0
3 actions.action_kind CHECK (delivery, planning, review)
4 Tabelle action_dependencies + Indizes
5 Action-Service: Felder in CRUD/SELECT

AP1.16b — Engine & API

# Inhalt
6 backend/steering/graph/execution_engine.py
7 services/execution_plan.py — Deps CRUD, Cycle-Check
8 GET /api/initiatives/{id}/execution/graph-state
9 GET/POST/DELETE …/execution/dependencies
10 pytest: Engine + Cycle-Detection (Unit)

AP1.16c — Frontend (folgt)

# Inhalt
11 Plan-Outline „Arbeit“: blocked/ready Badges
12 Vorgänger-Kanten (Liste oder Mini-Graph)
13 Dependency anlegen/löschen im Action-Kontext

AP1.16d — Steuerung (folgt)

# Inhalt
14 Method Profile: planning_levels, planning_mode
15 Planning Debt in Attention / Cockpit
16 AP2.0d: Next-Action nutzt ready_actions

Explizit nicht in AP1.16ab

  • Gate-Designer-Änderungen
  • project_dependencies (Struktur-Ebene B)
  • RoadmapItem(type=feature) als WP-Knoten (Post-MVP)
  • Lifecycle-Automatik aus Graph
  • Gantt / Kalender

Abnahme

16ab (Backend)

  • Migration 023 auf Pi angewendet
  • Zwei Actions, requires-Kante: Nachfolger blocked bis Vorgänger done
  • Zyklus A→B→A wird abgelehnt
  • sort_order-Fallback ohne Kanten (sequenziell wie Gate-Graph)
  • graph-state liefert ready_actions, blocked_actions, critical_path
  • planning_debt wenn aktives Gate ohne verknüpfte Actions
  • pytest grün (Pi)

16cd (später)

  • Outline zeigt blocked/ready
  • Planning Debt sichtbar in Attention

Reihenfolge

16a (Schema) → 16b (Engine + API) → 16c (UI) → 16d (Profile + Attention)
                     ↓
                 AP2.0d (Strategien)

Siehe: ADP_Execution_Plan_and_Work_Package_Dependencies_v0.1.md, Kairo_Plan_Mode_Design_v0.1.md §6