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.