{
  "status": "pending_story_promotion",
  "project_id": "gacmai_20260716_084304",
  "canonical_story_path": "/data/video-pipeline/GacMaiAudio/project/gacmai_20260716_084304/artifacts/story_package.json",
  "expected_story_sha256": "c0815670e3dd0bcbdec04ffbf63cb75a7870f2e89eb86edc0ffe2bb45f7ad9a9",
  "validation_path": "/data/video-pipeline/GacMaiAudio/project/gacmai_20260716_084304/artifacts/tts_validation.json",
  "spend_lock_path": "/data/video-pipeline/GacMaiAudio/project/gacmai_20260716_084304/artifacts/tts_spend_lock.json",
  "runner_path": "/opt/OpenMontage/scripts/gacmai/gacmai_tts_runner_v2.py",
  "runner_sha256": "23f0b65ea22cd2574068e559f8d2776d4abf8bbfe52e72ed9dd1e6c2e833d32c",
  "provider": "Ngoc-Huyen-Clone",
  "style": "doc_truyen",
  "speed": 0.95,
  "denoise": true,
  "max_chars": 1600,
  "resume_policy": "Reuse a chunk only when text checksum, audio checksum and PCM probe all match a passed checkpoint.",
  "required_preconditions": [
    "focused rev3 final audit verdict=pass",
    "canonical story read-back SHA matches expected_story_sha256",
    "tts_validation status=passed and authorized_for_tts=true",
    "tts_spend_lock tts_locked=false and authorized_story_sha256 matches expected_story_sha256"
  ],
  "authorized": false,
  "executed": false
}
