# AP0.5 – Abschlussbericht Minimaler Vorhaben- und Maßnahmen-Slice **Status:** implementiert **Stand:** 2026-07-04 **Version:** `0.5.0-ap0.5` · Schema `006` --- ## 1. Scope und Einordnung AP0.5 liefert den **ersten fachlich nutzbaren Kairo-Slice**: Ein angemeldeter Actor kann innerhalb eines Tenants Vorhaben und Maßnahmen verwalten, zuweisen und seinen offenen Maßnahmen-Backlog abrufen. | Anforderung (AP0.5) | Status | |---------------------|--------| | Migration `006` (initiatives, actions, action_assignments) | ✓ | | Tenant-Bezug für alle Objekte | ✓ | | Owner Actor für Initiative | ✓ | | Action gehört zu Initiative | ✓ | | Action → ein oder mehrere Actors (Assignments) | ✓ | | CRUD-Minimum Initiatives | ✓ | | CRUD-Minimum Actions | ✓ | | Endpoint „Meine offenen Maßnahmen“ | ✓ | | Statusmodell minimal | ✓ | | Priority minimal | ✓ | | Capability-Gates (4 neue Capabilities) | ✓ | | Audit bei Create/Update/Statuswechsel | ✓ | | Tests (Isolation, CRUD, Assignment, Status) | ✓ | | README/API-Doku | ✓ | **Bewusst nicht in AP0.5:** Projects, Milestones, Programs, Reviews, Evidence, Blocker-Objekte, KI/Prompt-Erweiterung, MCP, automatische Priorisierung, komplexe UI, Workflow Engine. --- ## 2. Umgesetzte Dateien ### 2.1 Migration & Schema | Datei | Zweck | |-------|--------| | `backend/migrations/006_initiatives_actions.sql` | Tabellen initiatives, actions, action_assignments | ### 2.2 Services | Datei | Zweck | |-------|--------| | `backend/services/initiatives.py` | Vorhaben-CRUD, Validierung, Audit | | `backend/services/actions.py` | Maßnahmen-CRUD, Assignments, offene Maßnahmen | ### 2.3 API & Capabilities | Datei | Zweck | |-------|--------| | `backend/routers/initiatives.py` | Initiative-Endpoints + nested Action-Create/List | | `backend/routers/actions.py` | Action-Endpoints + `/me/open` | | `backend/rights_registrations/initiative_ops.py` | 4 AP0.5-Capabilities | | `backend/rights_registrations/__init__.py` | Import initiative_ops | | `backend/main.py` | Router-Registrierung | | `backend/version.py` | `0.5.0-ap0.5`, Schema `006` | ### 2.4 Tests & Doku | Datei | Zweck | |-------|--------| | `backend/tests/test_initiatives_actions.py` | CRUD, Isolation, Assignment, Status, Audit | | `backend/tests/test_migrations.py` | Migration 006 | | `backend/tests/test_rights_registry.py` | 16 Capabilities | | `README.md` | API-Doku AP0.5 | | `frontend/src/App.jsx` | Header AP0.5 | --- ## 3. Neue Migrationen **`006_initiatives_actions.sql`** | Tabelle | Zweck | |---------|--------| | `initiatives` | Vorhaben (tenant-scoped, owner_actor_id) | | `actions` | Maßnahmen (gehört zu initiative) | | `action_assignments` | Actor-Zuweisungen (n:m) | --- ## 4. Datenmodell ``` tenants └── initiatives id, tenant_id, title, goal, status, priority owner_actor_id → actors └── actions id, tenant_id, initiative_id, title, description status, priority └── action_assignments id, tenant_id, action_id, actor_id UNIQUE (action_id, actor_id) ``` --- ## 5. Endpoints Siehe `README.md` — Abschnitt AP0.5. --- ## 6. Statusmodell **Initiative:** `active` · `paused` · `completed` · `archived` **Action:** `open` · `in_progress` · `blocked` · `done` · `discarded` **Priorität:** `low` · `normal` · `high` Offene Maßnahmen: Status ∈ `{open, in_progress, blocked}` und zugewiesen an `ctx.actor_id`. --- ## 7. Assignment-Modell n:m über `action_assignments`; `PUT /api/actions/{id}/assignments` ersetzt die Liste; Validierung gegen Tenant-Actors. --- ## 8. Capability-Nutzung `kairo.initiative.read/manage` · `kairo.action.read/manage` — Grants für tenant owner/admin/member. --- ## 9. Tenant-Isolation Alle Queries tenant-scoped; Cross-Tenant → 404/400; Tests in `test_initiatives_actions.py`. --- ## 10. Tests 11 Tests in `test_initiatives_actions.py` + aktualisierte Registry/Migration-Tests. Ausführung (Dev-Stack): ```bash docker compose -f docker-compose.dev-env.yml exec backend python -m pytest tests -ra -vv ``` --- ## 11. Empfehlung nächster kleinster Slice **AP0.6 – Kommentare pro Maßnahme** (`action_comments`, read/manage Capability, minimal Audit) — operativer Mehrwert ohne Projects/Milestones/KI.