{
  "schema_version": 1,
  "project_id": "012-Nguoi-Giu-Chiec-Chia-Khoa-Cua-Ngay-Hom-Qua",
  "run_id": "run-20260720T084924Z-02f78a49",
  "status": "passed",
  "verified": true,
  "candidate_sha256": "b2057491e2ec831a8d5ea3635bc246c42a4c4b8a9e12e28be42a1b4c7844a107",
  "word_count": 11072,
  "predicted_minutes": 46.56934959349594,
  "voice_test_receipt": "log/voice-test.json",
  "validation_report": "work/story/run-20260720T084924Z-02f78a49/validation-report.json",
  "originality_report": "script/originality-report.json",
  "gates": {
    "global_coherence": {
      "verified": true,
      "basis": "30 locked objects resolve in causal countdown; midpoint letter/hospital reveal drives changed behavior; clock and two-key setup pay off in climax"
    },
    "dialogue": {
      "verified": true,
      "basis": "speaker turns anchored by names/actions; recurring consent language evolves rather than repeats scene templates"
    },
    "identity": {
      "verified": true,
      "basis": "full-name/allowed address scan PASS; no standalone forbidden one-syllable aliases after masking legitimate names/places"
    },
    "continuity": {
      "verified": true,
      "basis": "30-day countdown, keys, letter, health disclosure, demolition deadline and ownership choices reconcile through ending"
    },
    "reveal": {
      "verified": true,
      "basis": "R1-R6 occur in locked order; poster limit excludes illness, letter, lock mechanism and final restart"
    },
    "narration_hygiene": {
      "verified": true,
      "basis": "deterministic validator PASS for hash b2057491e2ec831a8d5ea3635bc246c42a4c4b8a9e12e28be42a1b4c7844a107; NFC UTF-8, no headings/CTA/metadata/line-number artifacts"
    },
    "originality": {
      "verified": true,
      "basis": "10 available production authorities; zero shared 14-grams, longest exact run 8 tokens, zero repeated paragraph >=8 words"
    },
    "voice_test": {
      "verified": true,
      "sample_words": 656,
      "duration_seconds": 165.55,
      "measured_wpm": 237.7529447296889,
      "predicted_minutes": 46.56934959349594
    },
    "listening_test": {
      "verified": false,
      "status": "provisional",
      "basis": "No direct auditory evaluator or ASR proxy; kept distinct from technical/Voice Test PASS."
    },
    "tts_lexicon": {
      "verified": true,
      "basis": "Candidate uses full Hán–Việt names consistently; technical voice sample is valid PCM and production will retain exact text chunks."
    }
  },
  "completed_at": "2026-07-20T09:25:05.618675+00:00"
}
