{
  "schema_version": "xgen-pipeline-1",
  "kind": "application_orchestration_spec_not_comfyui_graph",
  "stages": [
    {
      "id": "brief",
      "executor": "application",
      "output": "validated_creative_brief"
    },
    {
      "id": "keyframe",
      "executor": "gemini_generate_content",
      "model": "gemini-2.5-flash-image",
      "request_file": "nano-banana-request.json",
      "output": "candidate_image"
    },
    {
      "id": "approval",
      "executor": "human_review",
      "requires": [
        "candidate_image"
      ],
      "output": "approved_image_sha256"
    },
    {
      "id": "prepare",
      "executor": "image_preparation",
      "dimensions": [
        832,
        480
      ],
      "policy": "review crop or padding; preserve product geometry",
      "output": "approved-keyframe.png"
    },
    {
      "id": "motion",
      "executor": "comfyui",
      "graph_file": "wan21-i2v-api.json",
      "input": "approved-keyframe.png",
      "concurrency_per_worker": 1,
      "output": "ordered_81_frame_manifest"
    },
    {
      "id": "encode",
      "executor": "cpu_ffmpeg",
      "fps": 16,
      "codec": "libx264",
      "pixel_format": "yuv420p",
      "input": "ordered_81_frame_manifest",
      "output": "review.mp4"
    },
    {
      "id": "qa",
      "executor": "human_and_automated",
      "output": "accepted_or_rejected"
    },
    {
      "id": "publish",
      "executor": "object_storage",
      "requires": [
        "accepted_asset",
        "run_manifest"
      ],
      "output": "versioned_delivery_asset"
    }
  ],
  "retry": {
    "maximum_generation_attempts": 2,
    "retry_requires_remaining_budget": true,
    "reconcile_existing_artifacts_before_retry": true
  },
  "secret_policy": "Credentials are environment/secret-store values, never workflow fields."
}
