{
  "schema_version": 1,
  "project_id": "010-Toi-Nhuong-Hon-Uoc-Cho-Thien-Kim-Gia",
  "run_id": "run-20260720T021905Z-d7be0da2",
  "status": "passed",
  "verified": true,
  "canonical_title": "Tôi Nhường Hôn Ước Cho Thiên Kim Giả",
  "candidate_path": "/data/video-pipeline/HaTramAudio/project/010-Toi-Nhuong-Hon-Uoc-Cho-Thien-Kim-Gia/work/story/run-001/candidate.txt",
  "candidate_sha256": "cd19954c7d8e24db8cb6119bdeeedbca4853cf4864e5f01c773ecbcbe8907321",
  "candidate_bytes": 75584,
  "authority_sha256": {
    "script/story-brief.json": "5cc8548b6ec33d28393e96666750851d83e513db4fc678914f88b73554a2a758",
    "script/identity-registry.json": "b6d3c1853afdc581a5cd64c2b038ead16e995fe59b2e05fe774e068e3e48a882",
    "script/reveal-ledger.json": "cc43d3ef270fdda2967b59a79cf9ce1bcd390712f8a2a11c1611f2af3ab8f401",
    "script/high-concept-ledger.json": "bf638b29fce752750593c10cbd5273ba610523b60b5bbc885a8e53044bb38c32",
    "script/outline.json": "08c8c322f79beed9a3f66af0a76b310d37a3a8748775c6878b28e4d8e7e5de89"
  },
  "checks": {
    "utf8_nfc": {
      "verified": true
    },
    "word_count": {
      "value": 12191,
      "planning_prior_min": 9700,
      "planning_prior_max": 14600,
      "duration_authority": "Voice Test thực tế 40–60 phút",
      "verified": true
    },
    "title_authority": {
      "value": "Tôi Nhường Hôn Ước Cho Thiên Kim Giả",
      "verified": true
    },
    "authority_snapshot": {
      "observed": {
        "script/story-brief.json": "5cc8548b6ec33d28393e96666750851d83e513db4fc678914f88b73554a2a758",
        "script/identity-registry.json": "b6d3c1853afdc581a5cd64c2b038ead16e995fe59b2e05fe774e068e3e48a882",
        "script/reveal-ledger.json": "cc43d3ef270fdda2967b59a79cf9ce1bcd390712f8a2a11c1611f2af3ab8f401",
        "script/high-concept-ledger.json": "bf638b29fce752750593c10cbd5273ba610523b60b5bbc885a8e53044bb38c32",
        "script/outline.json": "08c8c322f79beed9a3f66af0a76b310d37a3a8748775c6878b28e4d8e7e5de89"
      },
      "expected": {
        "script/story-brief.json": "5cc8548b6ec33d28393e96666750851d83e513db4fc678914f88b73554a2a758",
        "script/identity-registry.json": "b6d3c1853afdc581a5cd64c2b038ead16e995fe59b2e05fe774e068e3e48a882",
        "script/reveal-ledger.json": "cc43d3ef270fdda2967b59a79cf9ce1bcd390712f8a2a11c1611f2af3ab8f401",
        "script/high-concept-ledger.json": "bf638b29fce752750593c10cbd5273ba610523b60b5bbc885a8e53044bb38c32",
        "script/outline.json": "08c8c322f79beed9a3f66af0a76b310d37a3a8748775c6878b28e4d8e7e5de89"
      },
      "verified": true
    },
    "narration_hygiene": {
      "meta_hits": [],
      "starts_with_title": false,
      "trailing_whitespace_lines": 0,
      "verified": true
    },
    "required_story_contract": {
      "missing": [],
      "verified": true
    },
    "reveal_order": {
      "positions": {
        "rebirth": 1571,
        "deadline": 4492,
        "timeline_drift": 10740,
        "old_relationship_error": 13281,
        "membership_climax": 37736,
        "one_year_resolution": 49487
      },
      "verified": true
    },
    "opening_comprehension": {
      "first_350_words": true,
      "verified": true
    },
    "paragraph_audio_shape": {
      "paragraph_count": 649,
      "max_words": 81,
      "paragraphs_over_180_words": 0,
      "verified": true
    },
    "duplicate_paragraphs": {
      "verified": true,
      "paragraphs_checked": 234,
      "duplicates": []
    },
    "originality": {
      "verified": true,
      "corpus_files_compared": 62,
      "ngram_size": 14,
      "max_ngram_overlap": 0,
      "max_exact_token_run": 6,
      "thresholds": {
        "ngram14_overlap_max": 8,
        "longest_exact_token_run_max": 30
      },
      "findings": []
    }
  }
}
