State Draft Operations
Ein Entwurf ist wie ein Bleistift-Sketch: Du kannst alles ändern, alles löschen, nochmal anfangen. Der State "Draft" ist dieser geschützte Raum, in dem Experimente erlaubt sind und nichts in Stein gemeißelt ist.
Was bedeutet "State"?
Ein State definiert den aktuellen Zustand eines Artefakts und welche Operationen in diesem Zustand erlaubt sind. "Draft" ist der initiale Zustand - hier ist noch alles möglich.
Erlaubte Operationen im Draft-State
# State: Draft
# Initialer Zustand für neue Artefakte
state:
id: "draft"
name: "Entwurf"
description: "Artefakt ist in Bearbeitung, noch nicht finalisiert"
# Wer darf diesen State nutzen?
actors:
- "requester"
- "analyst"
- "implementer"
- "ai_agent"
# Erlaubte Operationen
allowed_operations:
create:
description: "Neues Artefakt erstellen"
allowed: true
validation: "minimal"
read:
description: "Artefakt lesen"
allowed: true
scope: "owner_and_team"
update:
description: "Artefakt bearbeiten"
allowed: true
frequency: "unlimited"
validation: "basic"
delete:
description: "Artefakt löschen"
allowed: true
confirmation: "required"
reversible: true # Soft-Delete
submit:
description: "Zur Prüfung einreichen"
allowed: true
transitions_to: "submitted"
preconditions:
- "all_required_fields_filled"
- "basic_validation_passed"
duplicate:
description: "Kopie erstellen"
allowed: true
export:
description: "Exportieren"
allowed: true
formats: ["json", "yaml", "pdf"]
# Nicht erlaubte Operationen
forbidden_operations:
approve:
reason: "Muss erst eingereicht werden"
deploy:
reason: "Nur für finalisierte Artefakte"
archive:
reason: "Nur für abgeschlossene Artefakte"
# Automatische Übergänge
auto_transitions:
- condition: "abandoned_for_30_days"
action: "archive"
notification: "owner"
# Sichtbarkeit
visibility:
default: "private"
can_share: true
can_make_public: false
Draft in der Praxis
# Beispiel: Request im Draft-State
artifact:
type: "request"
id: "REQ-2024-0059"
state: "draft"
# Metadata
created_at: "2024-01-15T08:00:00Z"
created_by: "alice@example.com"
last_modified: "2024-01-15T08:45:00Z"
# Content (noch unvollständig)
content:
title: "Neues Reporting-Dashboard"
description: "Wir brauchen bessere Reports..."
acceptance_criteria: [] # Noch leer
# Operation Log
operations_performed:
- operation: "create"
at: "2024-01-15T08:00:00Z"
by: "alice@example.com"
- operation: "update"
at: "2024-01-15T08:30:00Z"
by: "alice@example.com"
changes: ["title", "description"]
- operation: "update"
at: "2024-01-15T08:45:00Z"
by: "alice@example.com"
changes: ["description"]
# Was fehlt für Submit?
submit_blockers:
- field: "acceptance_criteria"
issue: "Mindestens ein Kriterium erforderlich"
# Nächste mögliche Aktionen
available_actions:
- action: "update"
description: "Weiter bearbeiten"
- action: "delete"
description: "Entwurf löschen"
- action: "submit"
blocked: true
blocker_reason: "Acceptance Criteria fehlen"
Warum ist das wichtig?
Der Draft-State gibt Freiheit zum Experimentieren. Nichts ist endgültig, alles kann geändert werden. Das reduziert die Angst vor dem ersten Schritt und ermöglicht iteratives Arbeiten - ohne das System zu belasten.
Im Mensch + KI-Code Prozess: Neue Requests, Contracts und Änderungen starten immer im Draft-State. Erst nach Einreichung (Submit) beginnt der formale Prozess. Drafts werden nach 30 Tagen Inaktivität automatisch archiviert.