Artifact Change Set

Ein Change Set ist wie ein Paket, das alles enthält, was sich ändern soll: Code, Tests, Migrationen, Dokumentation. Es ist das zentrale Artefakt der Implementierungsphase - die konkrete Antwort auf den Request.

Mehr als nur Code

Ein Change Set ist nicht einfach ein Git-Commit. Es ist eine strukturierte Sammlung aller Änderungen, die zusammen deployed werden müssen, um den Request zu erfüllen. Es enthält auch Metadaten, die für Review und Deployment wichtig sind.

Vollständiges Beispiel

# Artifact: Change Set
# Erstellt in: Phase 6 (Implementation)

artifact:
  type: "change_set"
  version: "1.0"

  # Identifikation
  metadata:
    id: "CHG-2024-0058"
    request_id: "REQ-2024-0057"  # Verknüpfung zum Request
    created_at: "2024-01-15T14:30:00Z"
    created_by: "claude-code"
    status: "ready_for_review"

  # Zusammenfassung
  summary:
    title: "Implement Google OAuth2 Login"
    description: "Adds Google Sign-In button and OAuth2 flow"
    change_class: "normal"

  # Code-Änderungen
  code_changes:
    repository: "company/auth-service"
    branch: "feature/google-oauth"
    base_branch: "main"
    commits:
      - sha: "a1b2c3d4"
        message: "feat: Add Google OAuth2 service"
        files_changed: 3
      - sha: "e5f6g7h8"
        message: "feat: Add Google login button component"
        files_changed: 2
      - sha: "i9j0k1l2"
        message: "test: Add OAuth2 flow tests"
        files_changed: 2

    # Statistiken
    stats:
      files_added: 5
      files_modified: 8
      files_deleted: 0
      lines_added: 342
      lines_removed: 12

    # Betroffene Dateien nach Kategorie
    files:
      source:
        - path: "src/Services/OAuth/GoogleOAuthService.php"
          action: "added"
          lines: 145
        - path: "src/Controllers/AuthController.php"
          action: "modified"
          diff_lines: 32

      tests:
        - path: "tests/Unit/OAuth/GoogleOAuthServiceTest.php"
          action: "added"
          test_count: 12
        - path: "tests/Integration/OAuthFlowTest.php"
          action: "added"
          test_count: 5

      frontend:
        - path: "resources/js/components/GoogleLoginButton.vue"
          action: "added"

      config:
        - path: "config/services.php"
          action: "modified"
          diff_lines: 8

      docs:
        - path: "docs/api/oauth.md"
          action: "added"

  # Tests
  tests:
    unit:
      total: 12
      passed: 12
      coverage: 94.2

    integration:
      total: 5
      passed: 5

    e2e:
      total: 3
      passed: 3

  # Dependencies
  dependencies:
    added:
      - name: "league/oauth2-google"
        version: "^3.0"
        reason: "Google OAuth2 client"

    updated: []
    removed: []

  # Datenbank-Migrationen
  migrations:
    - file: "2024_01_15_143000_add_google_id_to_users.php"
      action: "add_column"
      table: "users"
      column: "google_id"
      reversible: true

  # Konfigurationsänderungen
  config_changes:
    - file: "config/services.php"
      key: "google.client_id"
      type: "env_reference"
      env_var: "GOOGLE_CLIENT_ID"

    - file: "config/services.php"
      key: "google.client_secret"
      type: "env_reference"
      env_var: "GOOGLE_CLIENT_SECRET"

  # Deployment-Hinweise
  deployment_notes:
    pre_deployment:
      - "Set GOOGLE_CLIENT_ID in .env"
      - "Set GOOGLE_CLIENT_SECRET in .env"
      - "Run migrations"

    post_deployment:
      - "Verify OAuth2 callback URL in Google Console"
      - "Monitor auth error logs"

    rollback_steps:
      - "Revert to previous release"
      - "Run down migration"
      - "Remove env variables (optional)"

Change Set Validierung

# Automatische Validierung
change_set_validation:
  change_id: "CHG-2024-0058"
  validated_at: "2024-01-15T17:00:00Z"

  checks:
    - check: "all_tests_pass"
      passed: true
      details: "20/20 tests passed"

    - check: "coverage_threshold"
      passed: true
      details: "94.2% > 80% required"

    - check: "no_security_issues"
      passed: true
      details: "0 findings in SAST scan"

    - check: "migrations_reversible"
      passed: true
      details: "All migrations have down() method"

    - check: "docs_updated"
      passed: true
      details: "API documentation added"

    - check: "no_hardcoded_secrets"
      passed: true
      details: "Credentials use env variables"

  result: "VALID"
  ready_for_review: true

Warum ist das wichtig?

Das Change Set macht Änderungen atomar und nachvollziehbar. Alles, was zusammengehört, ist zusammen. Reviewer sehen nicht nur Code, sondern auch Tests, Migrationen und Deployment-Hinweise. Rollbacks sind möglich, weil alles dokumentiert ist.

Im Mensch + KI-Code Prozess: Das Change Set wird in Phase 6 erstellt und am Gate G4 validiert. Es enthält alles, was für Review, Testing und Deployment nötig ist. Die KI erstellt das Change Set basierend auf dem Request und den Contracts.