{
  "project_id": "gacmai_20260716_233054",
  "title": "Dấu Chì Trên Dòng Chảy",
  "status": "authorized",
  "authorized": true,
  "editorial_story_path": "/data/video-pipeline/GacMaiAudio/project/gacmai_20260716_233054/artifacts/story_package.json",
  "editorial_story_sha256": "f6d929b0535e70639bbb24b8fffe9f968afd0db92cb186c7d7f90f124aa6b53c",
  "projection_builder": "/home/hermes/build_gacmai_20260716_233054_tts_projection.py",
  "tts_projection_path": "/data/video-pipeline/GacMaiAudio/project/gacmai_20260716_233054/artifacts/tts_story.json",
  "tts_projection_sha256": "8717eb7a78c813361c5127fe874e799b8a7523464e2243fcbf05d4a7332e961b",
  "narration_text_sha256": "40ae9330c64440f82303bbb4a11f9f06d6635d9f6253f6388183e9ded2c2b2a9",
  "runner": "/opt/OpenMontage/scripts/gacmai/gacmai_tts_runner_v2.py",
  "runner_contract": {
    "provider": "Ngọc Huyền direct import",
    "style": "doc_truyen",
    "speed": 0.95,
    "denoise": true,
    "max_chunk_chars": 1600,
    "expected_codec": "pcm_s16le",
    "sample_rate": 48000,
    "channels": 1,
    "checkpoint_and_reuse_required": true,
    "single_submission": true
  },
  "audio_assembly": {
    "runner": "/opt/OpenMontage/scripts/gacmai/gacmai_audio_assembler_v2.py",
    "sequence": [
      "intro",
      "2_seconds_silence",
      "story"
    ],
    "tempo": 1.1,
    "tempo_applied_exactly_once": true,
    "integrated_loudness_lufs": -16.0,
    "true_peak_dbfs": -1.5,
    "cue_measurement": "derive from actual intro speech end and silence boundary; never hard-code"
  },
  "release_requirements": [
    "canonical editorial story exact SHA",
    "deterministic validation pass",
    "duplication zero violations",
    "evidence and authority pass",
    "independent editorial verdict pass",
    "source SHA stable and source_modified=false",
    "TTS projection checksum bound in spend lock"
  ],
  "executed": false
}
