{
  "analysis_id": "01a1252a-fd63-75e3-8fbb-6eb23f211534",
  "created_at": "2026-10-10T09:35:36.803143600Z",
  "provider": "local_heuristic",
  "model": "studio-local-planner-v1",
  "source_sha256": "6a5f38c25eb6652f1408deb8213e36b3e98606a2658511a4bf7b473669182e53",
  "analysis": {
    "title": "The Last Light — public demonstration",
    "logline": "INT. WORKSHOP - EVENING A small desk lamp lights an unfinished wooden bird. MAYA turns the bird in her hands. ELI waits beside an open toolbox. MAYA I",
    "treatment": "Bản treatment local sơ bộ: INT. WORKSHOP - EVENING A small desk lamp lights an unfinished wooden bird. MAYA turns the bird in her hands. ELI waits beside an open toolbox. MAYA I",
    "screenplay_draft": "INT. WORKSHOP - EVENING\n\nA small desk lamp lights an unfinished wooden bird. MAYA turns the bird in her hands. ELI waits beside an open toolbox.\n\nMAYA\nI thought I had to finish it alone.\n\nELI\nYou still get to decide where it flies.\n\nMaya sets the bird on the table and slides a pencil toward Eli.\n\nEXT. WORKSHOP DOOR - DUSK\n\nThe two stand in the doorway. Maya holds the finished bird against the fading sky.\n\nMAYA\nTomorrow, we make another.\n\nELI\nThen leave the light on.\n\nThe workshop lamp stays lit as the street grows dark.\n\nFADE OUT.\n",
    "genre": "Chưa xác nhận",
    "tone": "Suy luận local — cần đạo diễn xác nhận",
    "target_duration_seconds": 18,
    "language": "en",
    "script_notes": [
      {
        "severity": "review",
        "area": "dramaturgy",
        "note": "Local Draft chỉ tách cấu trúc và không thay thế phân tích ngữ nghĩa của model.",
        "suggested_fix": "Duyệt scene boundaries; dùng ChatGPT subscription cho bản phân tích sâu nếu policy cho phép."
      }
    ],
    "story_beats": [
      {
        "id": "BEAT_SC01",
        "beat": "A small desk lamp lights an unfinished wooden bird. MAYA turns the bird in her hands. ELI waits beside an open toolbox. MAYA I thought I had to finish it alone. ELI You still get t",
        "purpose": "Xác nhận mục tiêu kịch tính với đạo diễn",
        "emotional_turn": "Local Draft chưa suy luận; cần đạo diễn xác nhận"
      },
      {
        "id": "BEAT_SC02",
        "beat": "The two stand in the doorway. Maya holds the finished bird against the fading sky. MAYA Tomorrow, we make another. ELI Then leave the light on. The workshop lamp stays lit as the s",
        "purpose": "Xác nhận mục tiêu kịch tính với đạo diễn",
        "emotional_turn": "Local Draft chưa suy luận; cần đạo diễn xác nhận"
      }
    ],
    "characters": [],
    "assets": [],
    "scenes": [
      {
        "id": "SC01",
        "heading": "INT. WORKSHOP - EVENING",
        "location": "INT. WORKSHOP - EVENING",
        "time_of_day": "day/unspecified",
        "summary": "A small desk lamp lights an unfinished wooden bird. MAYA turns the bird in her hands. ELI waits beside an open toolbox. MAYA I thought I had to finish it alone. ELI You still get t",
        "dramatic_goal": "Xác nhận mục tiêu kịch tính với đạo diễn",
        "duration_seconds": 9,
        "character_ids": [],
        "continuity_in": [
          "Khóa trạng thái nhân vật từ cảnh trước"
        ],
        "continuity_out": [
          "Ghi lại vị trí, hướng nhìn và đạo cụ cuối cảnh"
        ],
        "shots": [
          {
            "id": "SC01_SH010",
            "shot_size": "Wide / Establishing",
            "camera_angle": "Eye level",
            "lens": "28mm",
            "camera_move": "Slow controlled push-in",
            "framing": "Thiết lập không gian và trục hành động",
            "action": "A small desk lamp lights an unfinished wooden bird. MAYA turns the bird in her hands. ELI waits beside an open toolbox. MAYA I thought I had to finish it alone. ELI You still get t",
            "character_motion": "Chuyển động chính đi theo một vector rõ ràng",
            "environment_motion": "Chỉ giữ 1–2 lớp chuyển động nền",
            "duration_seconds": 5,
            "dialogue": "",
            "continuity_notes": [
              "Khóa screen direction trước shot kế"
            ]
          },
          {
            "id": "SC01_SH020",
            "shot_size": "Medium close-up",
            "camera_angle": "Eye level / matching eyeline",
            "lens": "50mm",
            "camera_move": "Locked hoặc micro-dolly",
            "framing": "Ưu tiên biểu cảm, chừa look room",
            "action": "Phản ứng hoặc beat cảm xúc trọng tâm",
            "character_motion": "Giữ đầu, vai và bàn tay trong giới hạn continuity",
            "environment_motion": "Nền chuyển động nhẹ, không tranh chủ thể",
            "duration_seconds": 4,
            "dialogue": "",
            "continuity_notes": [
              "Match eyeline và trạng thái đạo cụ"
            ]
          }
        ]
      },
      {
        "id": "SC02",
        "heading": "EXT. WORKSHOP DOOR - DUSK",
        "location": "EXT. WORKSHOP DOOR - DUSK",
        "time_of_day": "day/unspecified",
        "summary": "The two stand in the doorway. Maya holds the finished bird against the fading sky. MAYA Tomorrow, we make another. ELI Then leave the light on. The workshop lamp stays lit as the s",
        "dramatic_goal": "Xác nhận mục tiêu kịch tính với đạo diễn",
        "duration_seconds": 9,
        "character_ids": [],
        "continuity_in": [
          "Khóa trạng thái nhân vật từ cảnh trước"
        ],
        "continuity_out": [
          "Ghi lại vị trí, hướng nhìn và đạo cụ cuối cảnh"
        ],
        "shots": [
          {
            "id": "SC02_SH010",
            "shot_size": "Wide / Establishing",
            "camera_angle": "Eye level",
            "lens": "28mm",
            "camera_move": "Slow controlled push-in",
            "framing": "Thiết lập không gian và trục hành động",
            "action": "The two stand in the doorway. Maya holds the finished bird against the fading sky. MAYA Tomorrow, we make another. ELI Then leave the light on. The workshop lamp stays lit as the s",
            "character_motion": "Chuyển động chính đi theo một vector rõ ràng",
            "environment_motion": "Chỉ giữ 1–2 lớp chuyển động nền",
            "duration_seconds": 5,
            "dialogue": "",
            "continuity_notes": [
              "Khóa screen direction trước shot kế"
            ]
          },
          {
            "id": "SC02_SH020",
            "shot_size": "Medium close-up",
            "camera_angle": "Eye level / matching eyeline",
            "lens": "50mm",
            "camera_move": "Locked hoặc micro-dolly",
            "framing": "Ưu tiên biểu cảm, chừa look room",
            "action": "Phản ứng hoặc beat cảm xúc trọng tâm",
            "character_motion": "Giữ đầu, vai và bàn tay trong giới hạn continuity",
            "environment_motion": "Nền chuyển động nhẹ, không tranh chủ thể",
            "duration_seconds": 4,
            "dialogue": "",
            "continuity_notes": [
              "Match eyeline và trạng thái đạo cụ"
            ]
          }
        ]
      }
    ],
    "continuity_rules": [
      "Mỗi shot phải kế thừa exact character/wardrobe/location/prop state.",
      "Khóa screen direction, eyeline và trạng thái tay/đạo cụ trước synthesis.",
      "Mỗi chuyển động có start pose, path, speed và end pose rõ ràng."
    ],
    "quality_gates": [
      {
        "stage": "Script lock",
        "check": "Logic truyện, intent và thoại",
        "human_must_review": true
      },
      {
        "stage": "Continuity lock",
        "check": "Identity, wardrobe, props, eyeline",
        "human_must_review": true
      },
      {
        "stage": "Pre-render",
        "check": "Shot intent, camera, motion và cost cap",
        "human_must_review": true
      }
    ],
    "risk_flags": [
      {
        "severity": "info",
        "category": "local_draft",
        "message": "Không có dữ liệu nào rời máy; character extraction chưa chạy.",
        "mitigation": "Duyệt thủ công hoặc chạy ChatGPT trên nội dung được phép gửi."
      }
    ]
  },
  "usage": null
}