{
  "version": "dramart_seedance_final_prompt_contract_design_deepseek.v1",
  "created_at": "2026-06-12T07:51:15.987943Z",
  "contract_id": "dramart_seedance_final_prompt_contract_design_no_execution",
  "round_id": "round2",
  "project_root": ".",
  "output_run_dir": "outputs/dramart_seedance_final_prompt_contract_design_deepseek_round2_20260612_1551",
  "contract_text": "# Dramart / Seedance Final Prompt Contract Design\n\n更新时间：`2026-06-12T15:40:00+08:00`\n\n## Authority\n\n- Contract id: `dramart_seedance_final_prompt_contract_design_no_execution`\n- Previous status: `dramart_seedance_operator_preview_decision_capture_no_writeback_landed_validated`\n- Previous gate: `outputs/dramart_seedance_operator_preview_decision_capture_no_writeback_20260612_150026_fresh/DRAMART_SEEDANCE_OPERATOR_PREVIEW_DECISION_CAPTURE_gate.json`\n- Expected marker before this contract lands: `dramart_seedance_final_prompt_contract_design_no_execution`\n- Expected marker after this contract lands: `dramart_seedance_final_prompt_draft_no_writeback`\n- Active route authority remains `execution_state.json.next_entrypoint`.\n- `execution_state.json.next_entrypoint` must remain `platform_neutral_prompt_readiness_manual_execution_log_contract`.\n- Explicit boundary phrase for validators and handoff: `final prompt contract design only; no final prompt text, no final prompt export, no provider-ready payload, provider execution, media generation, evidence creation, writeback, route transition, NOW-36 activation, readiness, or production acceptance`.\n- DeepSeek v4 pro thinking/max remains advisory-only and is not provider evidence, manual execution evidence, operator acceptance, route authority, writeback authority, replay authority, outputs-index authority, NOW-36 activation, provider readiness, production readiness, or production acceptance.\n\nThis contract designs the next no-writeback draft structure for Dramart-AI style scene-level prompts and Seedance 2.0 style shot-level prompts. It does not create the prompt draft itself. It does not export provider-ready prompt text, generate payloads, call providers, generate media, bind assets or voices, mutate canonical state, or claim readiness.\n\n## Decision After This Contract Validates\n\nIf this contract passes deterministic validation and DeepSeek Round 1/2 parse pass with no unresolved high/blocker findings or required corrections:\n\n- `final_prompt_contract_design_closed=true`\n- `next_required_action=dramart_seedance_final_prompt_draft_no_writeback`\n- `next_step_kind=bounded_final_prompt_draft_no_writeback`\n- `future_final_prompt_draft_no_writeback_authorized=true`\n- `future_final_prompt_quality_audit_no_writeback_required=true`\n- `future_final_prompt_repair_no_writeback_required_if_audit_fails=true`\n- `dramart_seedance_final_prompt_authorized=false`\n- `final_prompt_export_authorized=false`\n- `provider_payload_generation_authorized=false`\n- `provider_payload_execution_authorized=false`\n- `provider_execution_authorized=false`\n- `manual_provider_workflow_authorized=false`\n- `media_generation_authorized=false`\n- `asset_generation_authorized=false`\n- `asset_acquisition_authorized=false`\n- `asset_import_upload_authorized=false`\n- `asset_validation_as_real_authorized=false`\n- `asset_binding_authorized=false`\n- `voice_profile_creation_authorized=false`\n- `voice_profile_validation_authorized=false`\n- `voice_profile_binding_authorized=false`\n- `operator_evidence_intake_authorized=false`\n- `provider_manual_operator_evidence_authorized=false`\n- `accepted_or_rejected_uid_decision_authorized=false`\n- `accepted_overlay_writeback_authorized=false`\n- `canonical_or_row_writeback_authorized=false`\n- `feedback_repair_replay_authorized=false`\n- `outputs_index_mutation_authorized=false`\n- `active_route_transition_authorized=false`\n- `now36_activation_authorized=false`\n- `provider_readiness_authorized=false`\n- `production_readiness_authorized=false`\n- `production_acceptance_authorized=false`\n\nThe next implementation may create bounded review-only draft artifacts under a fresh `outputs/` run. Those artifacts must be labeled draft/no-writeback and must remain non-provider-ready until a later quality audit, repair if needed, operator final prompt review packet, operator final prompt decision capture, export contract, and export no-execution gate are separately landed.\n\n## Evidence Basis\n\nAuthoritative and supporting inputs:\n\n- active route authority: `execution_state.json.next_entrypoint`\n- operator decision capture gate: `outputs/dramart_seedance_operator_preview_decision_capture_no_writeback_20260612_150026_fresh/DRAMART_SEEDANCE_OPERATOR_PREVIEW_DECISION_CAPTURE_gate.json`\n- operator decision capture record: `outputs/dramart_seedance_operator_preview_decision_capture_no_writeback_20260612_150026_fresh/DRAMART_SEEDANCE_OPERATOR_PREVIEW_DECISION_CAPTURE_record.json`\n- operator review packet gate: `outputs/dramart_seedance_operator_preview_review_packet_no_writeback_20260612_0501_fresh/DRAMART_SEEDANCE_OPERATOR_PREVIEW_REVIEW_PACKET_gate.json`\n- operator review packet public HTML: `https://gongju.gold/novel2video/runs/dramart_seedance_operator_preview_review_packet_no_writeback_20260612_0501_fresh/DRAMART_SEEDANCE_OPERATOR_PREVIEW_REVIEW_PACKET_review.html`\n- Dramart/Seedance adapter preview run: `outputs/dramart_seedance_adapter_preview_no_writeback_20260612_012535_fresh`\n- Dramart/Seedance adapter preview gate: `outputs/dramart_seedance_adapter_preview_no_writeback_20260612_012535_fresh/DRAMART_SEEDANCE_ADAPTER_PREVIEW_gate.json`\n- Dramart scene preview packets: `outputs/dramart_seedance_adapter_preview_no_writeback_20260612_012535_fresh/DRAMART_SEEDANCE_ADAPTER_PREVIEW_dramart_ai_scene_prompt_preview_packets.jsonl`\n- Seedance shot preview packets: `outputs/dramart_seedance_adapter_preview_no_writeback_20260612_012535_fresh/DRAMART_SEEDANCE_ADAPTER_PREVIEW_seedance_2_0_shot_prompt_preview_packets.jsonl`\n- adapter-only entity mention ledger: `outputs/dramart_seedance_adapter_preview_no_writeback_20260612_012535_fresh/DRAMART_SEEDANCE_ADAPTER_PREVIEW_entity_mention_ledger.jsonl`\n- cross-platform alignment matrix: `outputs/dramart_seedance_adapter_preview_no_writeback_20260612_012535_fresh/DRAMART_SEEDANCE_ADAPTER_PREVIEW_cross_platform_prompt_alignment_matrix.jsonl`\n- unsupported/risky field report: `outputs/dramart_seedance_adapter_preview_no_writeback_20260612_012535_fresh/DRAMART_SEEDANCE_ADAPTER_PREVIEW_unsupported_or_risky_field_report.jsonl`\n- final prompt authorization decision gate: `outputs/dramart_seedance_final_prompt_authorization_decision_gate_20260612_012707_final/DRAMART_SEEDANCE_FINAL_PROMPT_AUTH_DECISION_gate.json`\n- NOW-36 blocked/no-execution gate: `outputs/now36_real_asset_evidence_activation_decision_final_20260609_0413/NOW36_ACTIVATION_DECISION_gate.json`\n\nKey preserved facts:\n\n- The operator supplied the exact allowed decision value `accept_preview_for_next_final_prompt_contract_design`.\n- The decision capture gate has `pass=true`, `validator_status=pass`, and `operator_preview_decision_captured=true`, but it records only a route recommendation.\n- The decision capture record is not operator acceptance, not final prompt authorization, not evidence, not route authority, not writeback authority, not readiness, and not production acceptance.\n- The adapter preview gate has `pass=true`, `validator_status=pass`, Dramart preview packet count `5`, Seedance preview packet count `20`, alignment row count `5`, and forbidden side-effect counters `0`.\n- The final prompt authorization decision gate is closed as `blocked_no_execution`.\n- `dramart_seedance_final_prompt_authorized=false`.\n- `final_prompt_export_authorized=false`.\n- `provider_payload_generation_authorized=false`.\n- `provider_execution_authorized=false`.\n- `production_acceptance_authorized=false`.\n- NOW-36 remains blocked/no-execution.\n\n## Future No-Writeback Artifact Set\n\nThe next implementation may create only these draft/no-writeback artifacts. File names below are contracts, not files created by this contract step:\n\n- `DRAMART_SEEDANCE_FINAL_PROMPT_DRAFT_input_ref_index.json`\n- `DRAMART_SEEDANCE_FINAL_PROMPT_DRAFT_dramart_ai_scene_prompt_draft_packets.jsonl`\n- `DRAMART_SEEDANCE_FINAL_PROMPT_DRAFT_seedance_2_0_shot_prompt_draft_packets.jsonl`\n- `DRAMART_SEEDANCE_FINAL_PROMPT_DRAFT_entity_mention_ledger_final.jsonl`\n- `DRAMART_SEEDANCE_FINAL_PROMPT_DRAFT_cross_platform_alignment.jsonl`\n- `DRAMART_SEEDANCE_FINAL_PROMPT_DRAFT_unsupported_or_downgraded_field_report.jsonl`\n- `DRAMART_SEEDANCE_FINAL_PROMPT_DRAFT_quality_rubric.json`\n- `DRAMART_SEEDANCE_FINAL_PROMPT_DRAFT_review_packet_contract.json`\n- `DRAMART_SEEDANCE_FINAL_PROMPT_DRAFT_validation_report.json`\n- `DRAMART_SEEDANCE_FINAL_PROMPT_DRAFT_gate.json`\n\nThe draft implementation must not create provider execution payloads, endpoint request bodies, media assets, real asset refs, voice profiles, manual execution logs, operator evidence packets, accepted overlays, canonical writeback rows, replay actions, route transition records, or outputs-index mutations.\n\n## Input Ref Index Schema\n\n`final_prompt_input_ref_index` must be a JSON object with:\n\n- `index_id`\n- `created_at`\n- `stage_id`: `dramart_seedance_final_prompt_draft_no_writeback`\n- `source_adapter_preview_run_dir`\n- `source_adapter_preview_gate_ref`\n- `source_operator_review_packet_run_dir`\n- `source_operator_review_packet_gate_ref`\n- `source_operator_decision_capture_gate_ref`\n- `source_operator_decision_capture_record_ref`\n- `source_final_prompt_authorization_blocked_gate_ref`\n- `source_now36_blocked_gate_ref`\n- `source_dramart_preview_packet_refs`\n- `source_seedance_preview_packet_refs`\n- `source_entity_mention_ledger_ref`\n- `source_alignment_matrix_ref`\n- `source_unsupported_risk_report_ref`\n- `input_fingerprints`\n- `read_only_assertions`\n- `forbidden_authority`\n- `forbidden_side_effect_counters`\n\nThe index must prove source drift did not occur by hashing the exact upstream files used by the draft step.\n\n## Dramart-AI Scene Prompt Draft Schema\n\n`dramart_ai_scene_prompt_draft_packet` must be a JSONL row with:\n\n- `dramart_final_prompt_draft_packet_id`\n- `platform_scope`: `dramart_ai`\n- `draft_status`: `draft_no_writeback_pending_quality_audit`\n- `source_dramart_preview_packet_id`\n- `source_screenplay_scene_packet_id`\n- `source_selection_id`\n- `source_trace_refs`\n- `scene_title`\n- `scene_order`\n- `scene_summary`\n- `scene_story_function`\n- `character_or_entity_block`\n- `entity_mentions`\n- `entity_mention_ledger_ids`\n- `dramart_ai_style_intent`\n- `dramart_ai_scene_structure`\n- `dramart_ai_shot_block_plan`\n- `camera_language`\n- `performance_and_dialogue_notes`\n- `setting_and_atmosphere_notes`\n- `continuity_notes`\n- `negative_constraints`\n- `draft_prompt_text_candidate`\n- `draft_prompt_text_candidate_sha256`\n- `adapter_only_assertions`\n- `review_only_assertions`\n- `not_provider_ready_reasons`\n\n`draft_prompt_text_candidate` may be generated only in the future draft step. It must be labeled draft/no-writeback and must include no provider endpoint, job id, payload envelope, real asset binding, voice profile binding, accepted UID, canonical writeback claim, manual execution claim, or production-readiness claim.\n\n## Seedance 2.0 Shot Prompt Draft Schema\n\n`seedance_2_0_shot_prompt_draft_packet` must be a JSONL row with:\n\n- `seedance_final_prompt_draft_packet_id`\n- `platform_scope`: `seedance_2_0`\n- `draft_status`: `draft_no_writeback_pending_quality_audit`\n- `source_seedance_preview_packet_id`\n- `source_dramart_preview_packet_id`\n- `source_screenplay_scene_packet_id`\n- `source_storyboard_shot_packet_id`\n- `source_selection_id`\n- `source_trace_refs`\n- `scene_title`\n- `shot_index`\n- `shot_duration_seconds`\n- `shot_scale`\n- `camera_motion`\n- `composition_and_staging`\n- `subject_action`\n- `setting_and_lighting`\n- `visual_style`\n- `continuity_constraints`\n- `entity_mentions`\n- `entity_mention_ledger_ids`\n- `negative_constraints`\n- `seedance_2_0_style_intent`\n- `draft_visual_prompt_text_candidate`\n- `draft_visual_prompt_text_candidate_sha256`\n- `adapter_only_assertions`\n- `review_only_assertions`\n- `not_provider_ready_reasons`\n\n`draft_visual_prompt_text_candidate` may be generated only in the future draft step. It is not final prompt export, not provider-ready payload, and not media generation.\n\n## Entity Mention Ledger Final Schema\n\n`entity_mention_ledger_final` must remain adapter-only and must not become canonical entity binding:\n\n- `ledger_entry_id`\n- `platform_scope`\n- `draft_packet_id`\n- `source_preview_ledger_entry_id`\n- `mention_token`\n- `entity_display_name`\n- `source_surface_text`\n- `local_entity_key`\n- `mention_origin`\n- `source_scene_packet_id`\n- `source_storyboard_shot_packet_id`\n- `source_selection_id`\n- `source_trace_refs`\n- `validator_status`\n- `adapter_only=true`\n- `not_canonical_entity_uid=true`\n- `not_accepted_overlay=true`\n- `not_asset_binding=true`\n- `not_voice_profile_binding=true`\n- `not_writeback_authority=true`\n- `review_status`\n\nThe `@实体名称` mention syntax is permitted only as adapter-layer display text. It must not be treated as `canonical_entity_uid`, accepted UID decision, accepted overlay, asset binding, voice binding, provider evidence, or production evidence.\n\n## Cross-Platform Alignment Schema\n\n`cross_platform_final_prompt_alignment` must be a JSONL row with:\n\n- `alignment_row_id`\n- `alignment_status`\n- `source_alignment_row_id`\n- `source_scene_packet_id`\n- `source_selection_id`\n- `dramart_final_prompt_draft_packet_id`\n- `seedance_final_prompt_draft_packet_ids`\n- `shared_entity_mention_ledger_ids`\n- `scene_to_shot_mapping`\n- `dramart_scene_intent`\n- `seedance_shot_intent_summary`\n- `continuity_alignment_notes`\n- `field_loss_or_downgrade_refs`\n- `quality_rubric_refs`\n- `review_only_assertions`\n\nThe alignment row must preserve the scene-level Dramart / shot-level Seedance relationship without forcing platform-specific syntax into canonical schemas.\n\n## Unsupported Or Downgraded Field Report Schema\n\n`unsupported_or_downgraded_field_report` must be a JSONL row with:\n\n- `unsupported_or_downgraded_field_id`\n- `platform_scope`\n- `draft_packet_id`\n- `source_field_path`\n- `field_category`\n- `source_value_fingerprint`\n- `draft_handling`\n- `downgrade_reason`\n- `blocked_use`\n- `allowed_draft_use`\n- `required_repair_before_export`\n- `review_only_assertions`\n\nEvery unsupported, risky, ambiguous, provider-specific, asset-dependent, or evidence-dependent field must be downgraded to draft-only notes or blocked before export.\n\n## Quality Rubric Schema\n\n`quality_rubric` must be a JSON object with:\n\n- `rubric_id`\n- `stage_id`\n- `created_at`\n- `source_draft_run_dir`\n- `quality_dimensions`\n- `required_pass_dimensions`\n- `platform_specific_dimensions`\n- `entity_mention_validator_summary`\n- `cross_platform_alignment_summary`\n- `unsupported_or_downgraded_field_summary`\n- `source_grounding_summary`\n- `professional_screenplay_distance_summary`\n- `hard_blockers`\n- `repair_required`\n- `operator_review_packet_required`\n\nMinimum required dimensions:\n\n- `source_grounding`\n- `scene_event_order_preservation`\n- `dramart_scene_prompt_usability`\n- `seedance_shot_prompt_usability`\n- `entity_mention_correctness`\n- `cross_platform_continuity`\n- `unsupported_field_downgrade`\n- `no_provider_ready_payload_leakage`\n- `no_media_or_asset_leakage`\n- `no_evidence_or_writeback_leakage`\n- `no_readiness_or_production_overclaim`\n\nThe future draft gate must not mark export-ready or provider-ready even if this rubric passes; a later export contract and gate are required.\n\n## Review Packet Schema\n\n`review_packet_contract` must define the future operator final prompt review packet with:\n\n- `review_packet_id`\n- `source_draft_run_dir`\n- `source_quality_rubric_ref`\n- `dramart_scene_prompt_review_refs`\n- `seedance_shot_prompt_review_refs`\n- `entity_mention_review_refs`\n- `unsupported_or_downgraded_field_refs`\n- `cross_platform_alignment_refs`\n- `operator_decision_options`\n- `operator_decision_capture_enabled=false`\n- `operator_evidence_intake_enabled=false`\n- `final_prompt_export_enabled=false`\n- `provider_execution_enabled=false`\n- `writeback_enabled=false`\n- `review_only_assertions`\n\nAllowed future final-prompt review decision values are not authorized by this contract. They must be defined by a later operator final prompt review packet contract after the draft and quality audit are complete.\n\n## Validators And Drift Checks\n\nThe final validator for this contract must check:\n\n- the contract file exists and contains the required contract id, boundary phrase, expected previous marker, expected next marker, artifact schema names, and forbidden authority flags;\n- `execution_state.json.next_entrypoint` remains `platform_neutral_prompt_readiness_manual_execution_log_contract`;\n- `execution_state.json.next_implementation_kind` is `dramart_seedance_final_prompt_contract_design_no_execution` before landing;\n- the operator decision capture gate passes and records only `operator_decision_value=accept_preview_for_next_final_prompt_contract_design`;\n- the adapter preview gate passes and remains review-only/no-writeback;\n- the operator review packet gate passes and remains no final prompt/export/provider/evidence/writeback authorization;\n- the final prompt authorization gate remains `blocked_no_execution`;\n- NOW-36 remains blocked/no-execution;\n- no actual final prompt draft artifact is created by this contract gate;\n- no provider-ready payload, endpoint body, provider job, media, real asset ref, voice profile, manual execution log, provider/manual/operator evidence, accepted overlay, canonical UID/KG/raw KG/entity-store writeback, row mutation, feedback intake, repair execution, replay action, route transition, outputs-index mutation, NOW-36 activation, readiness claim, or production acceptance is created;\n- DeepSeek v4 pro thinking/max Round 1 and Round 2 are both `call_status=success`, `parse_status=pass`, model `deepseek-v4-pro`, and advisory-only;\n- Round 1 supports this contract design, Round 2 supports Round 1, and neither round has required corrections or high/blocker findings;\n- all forbidden side-effect counters remain `0`.\n\nTimeout, unavailable response, parse fail, skipped advisory, or non-`deepseek-v4-pro` advisory cannot be used as pass basis.\n\n## Forbidden Side-Effect Counters\n\nAll counters must remain `0` in this contract:\n\n- `final_prompt_text_generation_count`\n- `final_prompt_draft_generation_count`\n- `final_prompt_export_count`\n- `provider_payload_generation_count`\n- `provider_payload_execution_count`\n- `provider_job_execution_count`\n- `manual_provider_workflow_count`\n- `media_generation_count`\n- `image_generation_count`\n- `audio_generation_count`\n- `tts_generation_count`\n- `video_generation_count`\n- `asset_generation_count`\n- `asset_acquisition_count`\n- `asset_import_count`\n- `asset_upload_count`\n- `asset_validation_as_real_count`\n- `asset_binding_count`\n- `voice_profile_creation_count`\n- `voice_profile_validation_count`\n- `voice_profile_binding_count`\n- `operator_evidence_intake_count`\n- `provider_manual_evidence_count`\n- `operator_evidence_creation_count`\n- `accepted_uid_decision_count`\n- `rejected_uid_decision_count`\n- `accepted_overlay_write_count`\n- `operator_overlay_write_count`\n- `canonical_uid_writeback_count`\n- `canonical_kg_writeback_count`\n- `raw_kg_writeback_count`\n- `entity_store_writeback_count`\n- `registry_mutation_count`\n- `row_mutation_count`\n- `feedback_intake_count`\n- `repair_execution_count`\n- `replay_action_count`\n- `route_transition_count`\n- `outputs_index_mutation_count`\n- `now36_activation_count`\n- `provider_readiness_claim_count`\n- `production_readiness_claim_count`\n- `production_acceptance_count`\n\n## DeepSeek Advisory Basis Required\n\nThis contract requires two DeepSeek v4 pro thinking/max rounds with `timeout_seconds=600` where tooling permits:\n\n- DeepSeek v4 pro thinking/max Round 1: review the final prompt contract design, current control plane, operator decision capture gate, adapter preview gate, operator review packet gate, final prompt blocked gate, NOW-36 blocked gate, and proposed draft/no-writeback schema set. Decide whether this no-execution contract is the correct next step and whether `dramart_seedance_final_prompt_draft_no_writeback` is sufficiently bounded.\n- DeepSeek v4 pro thinking/max Round 2: critique Round 1 for hidden final prompt export, provider-ready payload leakage, provider execution leakage, media/assets/voice leakage, evidence leakage, writeback leakage, route transition leakage, outputs-index mutation, NOW-36 activation, readiness overclaim, production acceptance overclaim, or treating `@实体名称` as canonical UID / real asset binding.\n\nDeepSeek output remains advisory-only. It may support the advice-style contract gate, but it cannot become operator decision, operator acceptance, provider/manual evidence, route authority, writeback authority, replay authority, outputs-index authority, NOW-36 activation, provider readiness, production readiness, or production acceptance.\n\n## Stop Condition\n\nAfter this contract lands, the project may proceed only to:\n\n`dramart_seedance_final_prompt_draft_no_writeback`\n\nThe next step is a bounded no-writeback draft generation stage plus its deterministic validation. It must not export final prompts, generate provider-ready payloads, execute providers, generate media/assets/evidence, bind real assets or voices, write canonical state, mutate rows, transition route, mutate outputs indexes, activate NOW-36, or claim readiness/acceptance.\n",
  "artifact_refs": {
    "contract": {
      "path": "docs/dramart_seedance_final_prompt_contract_design_20260612.md",
      "exists": true,
      "sha256": "92b89b591a1189b38d6929bd796b98b94749a98abf220928cc4e73dcbdf74090",
      "size_bytes": 21099
    },
    "decision_capture_gate": {
      "path": "outputs/dramart_seedance_operator_preview_decision_capture_no_writeback_20260612_150026_fresh/DRAMART_SEEDANCE_OPERATOR_PREVIEW_DECISION_CAPTURE_gate.json",
      "exists": true,
      "sha256": "282fa0c66fe6581b05b9e78c2c4223f1aff47a4cbf60ea78b224fdea83869234",
      "size_bytes": 7069
    },
    "decision_capture_record": {
      "path": "outputs/dramart_seedance_operator_preview_decision_capture_no_writeback_20260612_150026_fresh/DRAMART_SEEDANCE_OPERATOR_PREVIEW_DECISION_CAPTURE_record.json",
      "exists": true,
      "sha256": "e926c24a9606d95650d4f8aabed9b32483da237fa9e2423843a691f143378552",
      "size_bytes": 6329
    },
    "operator_review_gate": {
      "path": "outputs/dramart_seedance_operator_preview_review_packet_no_writeback_20260612_0501_fresh/DRAMART_SEEDANCE_OPERATOR_PREVIEW_REVIEW_PACKET_gate.json",
      "exists": true,
      "sha256": "0c43f23cde8d1532d9cf27c82ce45316fad8153284f0e817c74c8b57c006033e",
      "size_bytes": 8063
    },
    "adapter_preview_gate": {
      "path": "outputs/dramart_seedance_adapter_preview_no_writeback_20260612_012535_fresh/DRAMART_SEEDANCE_ADAPTER_PREVIEW_gate.json",
      "exists": true,
      "sha256": "a81d616243ae8739cc948ed68e70f2fc3bf18e2d36388f555ae8b4ecf6537b04",
      "size_bytes": 3032
    },
    "dramart_preview_packets": {
      "path": "outputs/dramart_seedance_adapter_preview_no_writeback_20260612_012535_fresh/DRAMART_SEEDANCE_ADAPTER_PREVIEW_dramart_ai_scene_prompt_preview_packets.jsonl",
      "exists": true,
      "sha256": "0142749a2cfbcdd945bd31e075bb259a1ea2a77de75989850a30b2dcef1a7a80",
      "size_bytes": 20326
    },
    "seedance_preview_packets": {
      "path": "outputs/dramart_seedance_adapter_preview_no_writeback_20260612_012535_fresh/DRAMART_SEEDANCE_ADAPTER_PREVIEW_seedance_2_0_shot_prompt_preview_packets.jsonl",
      "exists": true,
      "sha256": "b890ed69004b3578aa03b006a0ec6b1d33c6a2b966dfc23d305079349f0909f5",
      "size_bytes": 51172
    },
    "entity_ledger": {
      "path": "outputs/dramart_seedance_adapter_preview_no_writeback_20260612_012535_fresh/DRAMART_SEEDANCE_ADAPTER_PREVIEW_entity_mention_ledger.jsonl",
      "exists": true,
      "sha256": "794e4fc62980386d28951063e19adae6e221383e4c136818e7689d1e0492433a",
      "size_bytes": 165342
    },
    "alignment_matrix": {
      "path": "outputs/dramart_seedance_adapter_preview_no_writeback_20260612_012535_fresh/DRAMART_SEEDANCE_ADAPTER_PREVIEW_cross_platform_prompt_alignment_matrix.jsonl",
      "exists": true,
      "sha256": "6e79b396d2c42a0e94f739479b7adb80ed547f43458e084d65a3e5de8df9f754",
      "size_bytes": 16122
    },
    "risk_report": {
      "path": "outputs/dramart_seedance_adapter_preview_no_writeback_20260612_012535_fresh/DRAMART_SEEDANCE_ADAPTER_PREVIEW_unsupported_or_risky_field_report.jsonl",
      "exists": true,
      "sha256": "272734b1d86895fde8ad9225988db59890f8a7bfd02f567c749148a575bac942",
      "size_bytes": 30535
    },
    "final_prompt_gate": {
      "path": "outputs/dramart_seedance_final_prompt_authorization_decision_gate_20260612_012707_final/DRAMART_SEEDANCE_FINAL_PROMPT_AUTH_DECISION_gate.json",
      "exists": true,
      "sha256": "800b54b6ea3d1e459c8c736732dd7a2778d5e772d6b497dafd8b83da13a6c7d3",
      "size_bytes": 3273
    },
    "now36_gate": {
      "path": "outputs/now36_real_asset_evidence_activation_decision_final_20260609_0413/NOW36_ACTIVATION_DECISION_gate.json",
      "exists": true,
      "sha256": "8a1297c116207a5ebc6ea64f1c4029d07c97d42e56ad6b209517012b854e0585",
      "size_bytes": 37274
    },
    "execution_state": {
      "path": "execution_state.json",
      "exists": true,
      "sha256": "a9c0db822a5f21bc4b924b60b1ddbe459c026983ff309ebe31a4d877630b354d",
      "size_bytes": 157223
    },
    "phase_acceptance": {
      "path": "phase_acceptance.json",
      "exists": true,
      "sha256": "aa38d374b18e66e4abfa1d27cc57579c76e2929171be8d0ab3c87acc595a335d",
      "size_bytes": 159686
    },
    "workflow": {
      "path": "workflow.json",
      "exists": true,
      "sha256": "06b9d22d2cf9ea3976f9b118991bf124d61867392c7ff1c2dd2e6071b0e81264",
      "size_bytes": 254585
    },
    "workflow_index": {
      "path": "workflow_index.json",
      "exists": true,
      "sha256": "139a35093b1efa2c5b0b4e353db0ec800cbe45dcd3d3ac422391a69f8e7b7938",
      "size_bytes": 167264
    },
    "todo": {
      "path": "todo.md",
      "exists": true,
      "sha256": "61f93af0c59aaf62d2461e403f360b5c70350aa93a42e289cf6959e3ee70ebc8",
      "size_bytes": 6591
    },
    "projectreport": {
      "path": "projectreport.md",
      "exists": true,
      "sha256": "3af2f8f27d1f2fb1c0da2bfde5ce11147bd07c430cfd4664d79deef655480226",
      "size_bytes": 4577
    }
  },
  "control_plane": {
    "execution_next_entrypoint": "platform_neutral_prompt_readiness_manual_execution_log_contract",
    "execution_current_status": "dramart_seedance_operator_preview_decision_capture_no_writeback_landed_validated",
    "execution_current_priority_lane": "dramart_seedance_final_prompt_contract_design_mainline",
    "execution_next_implementation_kind": "dramart_seedance_final_prompt_contract_design_no_execution",
    "phase_current_status": "dramart_seedance_operator_preview_decision_capture_no_writeback_landed_validated",
    "phase_next_implementation_kind": "dramart_seedance_final_prompt_contract_design_no_execution",
    "workflow_current_status": "dramart_seedance_operator_preview_decision_capture_no_writeback_landed_validated",
    "workflow_next_implementation_kind": "dramart_seedance_final_prompt_contract_design_no_execution",
    "workflow_index_current_status": "dramart_seedance_operator_preview_decision_capture_contract_landed_validated",
    "workflow_index_next_implementation_kind": "dramart_seedance_final_prompt_contract_design_no_execution"
  },
  "decision_capture_gate_core": {
    "pass": true,
    "status": "dramart_seedance_operator_preview_decision_capture_no_writeback_landed_validated",
    "gate_status": "dramart_seedance_operator_preview_decision_capture_no_writeback_pass",
    "validator_status": "pass",
    "failure_count": 0,
    "operator_decision_value": "accept_preview_for_next_final_prompt_contract_design",
    "operator_preview_decision_captured": true,
    "operator_preview_decision_capture_record_count": 1,
    "operator_decision_intake_performed": false,
    "next_required_action": "dramart_seedance_final_prompt_contract_design_no_execution",
    "next_step_kind": "contract_only_no_execution_before_final_prompt_export",
    "dramart_seedance_final_prompt_contract_design_authorized": true,
    "dramart_seedance_final_prompt_authorized": false,
    "final_prompt_export_authorized": false,
    "provider_payload_generation_authorized": false,
    "provider_execution_authorized": false,
    "production_acceptance_authorized": false
  },
  "operator_review_gate_core": {
    "pass": true,
    "status": "dramart_seedance_operator_preview_review_packet_no_writeback_landed_validated",
    "gate_status": "dramart_seedance_operator_preview_review_packet_no_writeback_pass",
    "validator_status": "pass",
    "failure_count": 0,
    "next_required_action": "remain_blocked_pending_operator_preview_decision_no_execution",
    "decision_capture_enabled": false,
    "operator_decision_intake_enabled": false,
    "dramart_seedance_final_prompt_authorized": false,
    "final_prompt_export_authorized": false,
    "provider_payload_generation_authorized": false,
    "provider_execution_authorized": false,
    "production_acceptance_authorized": false
  },
  "adapter_preview_gate_core": {
    "pass": true,
    "status": "dramart_seedance_adapter_preview_no_writeback_landed_validated",
    "gate_status": "dramart_seedance_adapter_preview_no_writeback_pass",
    "validator_status": "pass",
    "failure_count": 0,
    "dramart_preview_packet_count": 5,
    "seedance_preview_packet_count": 20,
    "alignment_row_count": 5,
    "dramart_seedance_final_prompt_authorized": false,
    "final_prompt_export_authorized": false,
    "provider_execution_authorized": false,
    "production_acceptance_authorized": false
  },
  "final_prompt_gate_core": {
    "pass": true,
    "status": "dramart_seedance_final_prompt_authorization_decision_gate_closed_blocked_no_execution_landed_validated",
    "gate_status": "dramart_seedance_final_prompt_authorization_decision_gate_blocked_no_execution_pass",
    "validator_status": "pass",
    "failure_count": 0,
    "decision": "blocked_no_execution",
    "operator_final_prompt_authorization_available": false,
    "dramart_seedance_final_prompt_authorized": false,
    "final_prompt_export_authorized": false,
    "provider_payload_generation_authorized": false,
    "provider_execution_authorized": false,
    "production_acceptance_authorized": false
  },
  "now36_gate_core": {
    "pass": true,
    "status": "now36_real_asset_evidence_activation_decision_closed_blocked_no_execution_landed_validated",
    "gate_status": "now36_activation_decision_pass_blocked_no_execution",
    "validator_status": "pass",
    "production_activation_ready": false,
    "provider_manual_execution_allowed": false,
    "now36_activation_authorized": false
  },
  "source_artifact_summaries": {
    "dramart_preview_packets": {
      "path": "outputs/dramart_seedance_adapter_preview_no_writeback_20260612_012535_fresh/DRAMART_SEEDANCE_ADAPTER_PREVIEW_dramart_ai_scene_prompt_preview_packets.jsonl",
      "row_count": 5,
      "parse_failures": 0,
      "samples": [
        {
          "camera_language": "场景建立镜头后接中近景动作/对白，镜头连续性优先于平台执行参数。",
          "character_or_entity_block": "唐僧、孙大圣、大圣、八戒",
          "continuity_notes": [
            "本包仅为 review-only 候选剧本控制数据，不是 canonical screenplay。",
            "人物/实体只保留 mention 线索，不创建 canonical UID。",
            "后续如需改成 Seedance/Dramart adapter output，必须进入独立 adapter 合同。"
          ],
          "dramart_ai_prompt_preview_candidate": "场次：第一百回　径回东土　五圣成真。 平台目标：Dramart AI review-only 短剧/漫剧分镜预览。 实体提及：@唐僧 @孙大圣 @大圣 @八戒。 镜头画面：镜头1：且不言他四众脱身，随金刚驾风而起，却说陈家庄救生寺内多人，天晓起来，仍治果肴来献，至楼下，不见了唐僧。 / 镜头2：这个也来问，那个也来寻，俱慌慌张张，莫知所措，叫苦连天的道： / 镜头3：“清清把个活佛放去了！ / 镜头4：”一会家无计，将办来的品物，俱抬在楼上祭祀烧纸。。 镜头语言：以场次推进为主，保持文本事件顺序和人物关系连续。 仅供审阅，不是 final prompt，不是 provider payload。",
          "dramart_preview_packet_id": "DRAMART_PREVIEW_920246007B133F7C5B",
          "entity_mention_ledger_ids": [
            "DSLEDGER_121A3CFBBF8FFC802E",
            "DSLEDGER_9E03CFFF099037CF0F",
            "DSLEDGER_E0FAE5A2DA653E0509",
            "DSLEDGER_C5D0E1E196A1EBE950"
          ],
          "entity_mentions": [
            "@唐僧",
            "@孙大圣",
            "@大圣",
            "@八戒"
          ],
          "negative_constraints": [
            "不要生成 final_prompt_text。",
            "不要写 provider payload 或 execution endpoint。",
            "不要声明真实资产绑定、canonical UID 或生产验收。"
          ],
          "platform_target": "Dramart AI style adapter preview; review-only; no provider execution",
          "review_only_assertions": {
            "adapter_layer_only": true,
            "canonical_or_row_writeback_authorized": false,
            "dramart_seedance_final_prompt_authorized": false,
            "final_prompt_export_authorized": false,
            "not_canonical_entity_uid": true,
            "not_final_prompt": true,
            "not_media_generation": true,
            "not_operator_evidence": true,
            "not_production_acceptance": true,
            "not_provider_execution": true,
            "not_provider_payload": true,
            "not_real_asset_binding": true,
            "not_writeback_authority": true,
            "outputs_index_mutation_authorized": false,
            "production_acceptance_authorized": false,
            "provider_execution_authorized": false,
            "review_only": true
          },
          "review_status": "pending_operator_review_no_writeback",
          "scene_title": "第一百回　径回东土　五圣成真",
          "shot_image_blocks": [
            "镜头1：且不言他四众脱身，随金刚驾风而起，却说陈家庄救生寺内多人，天晓起来，仍治果肴来献，至楼下，不见了唐僧。",
            "镜头2：这个也来问，那个也来寻，俱慌慌张张，莫知所措，叫苦连天的道：",
            "镜头3：“清清把个活佛放去了！",
            "镜头4：”一会家无计，将办来的品物，俱抬在楼上祭祀烧纸。"
          ],
          "source_screenplay_scene_packet_id": "PSCENE_88887CC8DDF80FE1ED7E",
          "source_selection_id": "PSEL_92EA78DCCF985E7FAF48",
          "source_trace_refs": {
            "mini_replay_ref": {
              "trace_replay_id": "TRACE_92EA78DCCF985E7FAF48",
              "trace_status": "mini_pipeline_trace_replay_pass_no_writeback"
            },
            "scene_beat_ref": {
              "beat_boundary_count": 4,
              "beat_boundary_ids": [
                "BEAT_BD227A59594EFE861D18",
                "BEAT_90858A7FB9E5440B9CAC",
                "BEAT_C83466BCA8376A70B5F2",
                "BEAT_614E57D195C89859CC77"
              ],
              "scene_card_id": "SCENE_F43AEDD923B4AEBB0C02",
              "scene_card_status": "scene_boundary_dry_run_candidate_no_writeback"
            },
            "semantic_candidate_ref": {
              "candidate_id": "SEM_CC22B5BC8BAACAE159E5",
              "candidate_status": "candidate_no_writeback_not_canonical",
              "entity_mention_count": 16,
              "event_scene_hint_count": 6,
              "relation_hint_count": 3
            },
            "source_selection_id": "PSEL_92EA78DCCF985E7FAF48",
            "source_text_ref": {
              "file_id": "INFILE_125DA103A66BF0AED108",
              "input_path": "input/西游记（原文版）.txt",
              "input_sha256": "0cae1c06a99bf6f119721bed64bec290b8c8d5a5e5bdf8dd7358bae80d3fda84",
              "ref_type": "local_input_text_ref",
              "source_line_end": 5939,
              "source_line_start": 5886
            }
          }
        },
        {
          "camera_language": "场景建立镜头后接中近景动作/对白，镜头连续性优先于平台执行参数。",
          "character_or_entity_block": "林之孝、賈芸、鳳姐、惜春",
          "continuity_notes": [
            "本包仅为 review-only 候选剧本控制数据，不是 canonical screenplay。",
            "人物/实体只保留 mention 线索，不创建 canonical UID。",
            "后续如需改成 Seedance/Dramart adapter output，必须进入独立 adapter 合同。"
          ],
          "dramart_ai_prompt_preview_candidate": "场次：第一一二回　 活冤孽妙尼遭大劫　死讎仇趙妾赴冥曹。 平台目标：Dramart AI review-only 短剧/漫剧分镜预览。 实体提及：@林之孝 @賈芸 @鳳姐 @惜春。 镜头画面：镜头1：話說鳳姐命捆起上夜眾 / 镜头2：章回/段落开场信息，建立场次入口。 / 镜头3：女人送營審問，女人跪地哀求．林之孝同賈芸道：“你們求也無益．老爺派我們 / 镜头4：看家，沒有事是造化，如今有了事，上下都擔不是，誰救得你．若說是周瑞的干。 镜头语言：以场次推进为主，保持文本事件顺序和人物关系连续。 仅供审阅，不是 final prompt，不是 provider payload。",
          "dramart_preview_packet_id": "DRAMART_PREVIEW_F48AFBA6DE461D7B6D",
          "entity_mention_ledger_ids": [
            "DSLEDGER_B13A4A3E3E03F27434",
            "DSLEDGER_96E10BBC31437513C3",
            "DSLEDGER_5F4C702764A859B31E",
            "DSLEDGER_C6ED937E5108354B61"
          ],
          "entity_mentions": [
            "@林之孝",
            "@賈芸",
            "@鳳姐",
            "@惜春"
          ],
          "negative_constraints": [
            "不要生成 final_prompt_text。",
            "不要写 provider payload 或 execution endpoint。",
            "不要声明真实资产绑定、canonical UID 或生产验收。"
          ],
          "platform_target": "Dramart AI style adapter preview; review-only; no provider execution",
          "review_only_assertions": {
            "adapter_layer_only": true,
            "canonical_or_row_writeback_authorized": false,
            "dramart_seedance_final_prompt_authorized": false,
            "final_prompt_export_authorized": false,
            "not_canonical_entity_uid": true,
            "not_final_prompt": true,
            "not_media_generation": true,
            "not_operator_evidence": true,
            "not_production_acceptance": true,
            "not_provider_execution": true,
            "not_provider_payload": true,
            "not_real_asset_binding": true,
            "not_writeback_authority": true,
            "outputs_index_mutation_authorized": false,
            "production_acceptance_authorized": false,
            "provider_execution_authorized": false,
            "review_only": true
          },
          "review_status": "pending_operator_review_no_writeback",
          "scene_title": "第一一二回　 活冤孽妙尼遭大劫　死讎仇趙妾赴冥曹",
          "shot_image_blocks": [
            "镜头1：話說鳳姐命捆起上夜眾",
            "镜头2：章回/段落开场信息，建立场次入口。",
            "镜头3：女人送營審問，女人跪地哀求．林之孝同賈芸道：“你們求也無益．老爺派我們",
            "镜头4：看家，沒有事是造化，如今有了事，上下都擔不是，誰救得你．若說是周瑞的干"
          ],
          "source_screenplay_scene_packet_id": "PSCENE_87AE651E3ACED2225B09",
          "source_selection_id": "PSEL_DB2F7BBB579862E63F3D",
          "source_trace_refs": {
            "mini_replay_ref": {
              "trace_replay_id": "TRACE_DB2F7BBB579862E63F3D",
              "trace_status": "mini_pipeline_trace_replay_pass_no_writeback"
            },
            "scene_beat_ref": {
              "beat_boundary_count": 4,
              "beat_boundary_ids": [
                "BEAT_CDEF4AFC5D5DE82352AF",
                "BEAT_950E8C820434BAA2F6FF",
                "BEAT_0F7C1B90FC8504BDAF8B",
                "BEAT_A6718BDF852E3520A3CE"
              ],
              "scene_card_id": "SCENE_11034729EA832FA21734",
              "scene_card_status": "scene_boundary_dry_run_candidate_no_writeback"
            },
            "semantic_candidate_ref": {
              "candidate_id": "SEM_074AA3584843BB075595",
              "candidate_status": "candidate_no_writeback_not_canonical",
              "entity_mention_count": 16,
              "event_scene_hint_count": 6,
              "relation_hint_count": 4
            },
            "source_selection_id": "PSEL_DB2F7BBB579862E63F3D",
            "source_text_ref": {
              "file_id": "INFILE_4B08573D7E744BAA8F56",
              "input_path": "input/红楼梦（原文版）.txt",
              "input_sha256": "72df08dce82c0be4622d16060725b0287b1badbb3a979756336148212d6f1d07",
              "ref_type": "local_input_text_ref",
              "source_line_end": 26737,
              "source_line_start": 26535
            }
          }
        }
      ],
      "keys": [
        "camera_language",
        "character_or_entity_block",
        "continuity_notes",
        "dramart_ai_prompt_preview_candidate",
        "dramart_preview_packet_id",
        "entity_mention_ledger_ids",
        "entity_mentions",
        "negative_constraints",
        "platform_target",
        "review_only_assertions",
        "review_status",
        "scene_title",
        "shot_image_blocks",
        "source_screenplay_scene_packet_id",
        "source_selection_id",
        "source_trace_refs"
      ],
      "status_counts": {
        "review_status=pending_operator_review_no_writeback": 5
      }
    },
    "seedance_preview_packets": {
      "path": "outputs/dramart_seedance_adapter_preview_no_writeback_20260612_012535_fresh/DRAMART_SEEDANCE_ADAPTER_PREVIEW_seedance_2_0_shot_prompt_preview_packets.jsonl",
      "row_count": 20,
      "parse_failures": 0,
      "samples": [
        {
          "camera_motion": "static_establishing_hold",
          "composition_and_staging": "且不言他四众脱身，随金刚驾风而起，却说陈家庄救生寺内多人，天晓起来，仍治果肴来献，至楼下，不见了唐僧。",
          "continuity_constraints": [
            "保持与上一镜头的文本事件顺序一致。",
            "不绑定真实资产、不引用 provider payload、不使用 Seedance/Dramart 特定语法。"
          ],
          "duration_seconds": 6,
          "entity_mention_ledger_ids": [
            "DSLEDGER_96952EBCF38BC1DEA3",
            "DSLEDGER_BFDE239A671B49A7B0",
            "DSLEDGER_8FCBADF5E2BC3FEFED"
          ],
          "entity_mentions": [
            "@唐僧",
            "@孙大圣",
            "@大圣"
          ],
          "negative_constraints": [
            "text-only preview; no image/video generation",
            "no provider payload",
            "no final prompt export",
            "no asset or voice profile binding"
          ],
          "review_only_assertions": {
            "adapter_layer_only": true,
            "canonical_or_row_writeback_authorized": false,
            "dramart_seedance_final_prompt_authorized": false,
            "final_prompt_export_authorized": false,
            "not_canonical_entity_uid": true,
            "not_final_prompt": true,
            "not_media_generation": true,
            "not_operator_evidence": true,
            "not_production_acceptance": true,
            "not_provider_execution": true,
            "not_provider_payload": true,
            "not_real_asset_binding": true,
            "not_writeback_authority": true,
            "outputs_index_mutation_authorized": false,
            "production_acceptance_authorized": false,
            "provider_execution_authorized": false,
            "review_only": true
          },
          "review_status": "pending_operator_review_no_writeback",
          "seedance_preview_packet_id": "SEEDANCE_PREVIEW_E6B2693E5CD4673BFE",
          "shot_index": 1,
          "source_screenplay_scene_packet_id": "PSCENE_88887CC8DDF80FE1ED7E",
          "source_selection_id": "PSEL_92EA78DCCF985E7FAF48",
          "source_storyboard_shot_packet_id": "PSHOT_4AAF1EF45018EEE24971",
          "source_trace_refs": {
            "beat_boundary_id": "BEAT_BD227A59594EFE861D18",
            "linked_entity_mention_ids": [
              "MEN_FF18D236762A96F0F01D"
            ],
            "linked_event_scene_hint_ids": [],
            "screenplay_scene_packet_id": "PSCENE_88887CC8DDF80FE1ED7E",
            "source_selection_id": "PSEL_92EA78DCCF985E7FAF48",
            "source_text_ref": {
              "file_id": "INFILE_125DA103A66BF0AED108",
              "input_path": "input/西游记（原文版）.txt",
              "input_sha256": "0cae1c06a99bf6f119721bed64bec290b8c8d5a5e5bdf8dd7358bae80d3fda84",
              "ref_type": "local_input_text_ref",
              "source_line_end": 5939,
              "source_line_start": 5886
            }
          },
          "visual_prompt_preview_candidate": "Seedance 2.0 review-only shot preview. 画面：且不言他四众脱身，随金刚驾风而起，却说陈家庄救生寺内多人，天晓起来，仍治果肴来献，至楼下，不见了唐僧。 实体：@唐僧 @孙大圣 @大圣。镜头：establishing_wide，static_establishing_hold，约6秒。 保持前后镜头连续；不生成媒体，不提交平台。"
        },
        {
          "camera_motion": "shot_reverse_shot_ready_static",
          "composition_and_staging": "这个也来问，那个也来寻，俱慌慌张张，莫知所措，叫苦连天的道：",
          "continuity_constraints": [
            "保持与上一镜头的文本事件顺序一致。",
            "不绑定真实资产、不引用 provider payload、不使用 Seedance/Dramart 特定语法。"
          ],
          "duration_seconds": 6,
          "entity_mention_ledger_ids": [
            "DSLEDGER_3341340727222C70D5",
            "DSLEDGER_788FF4EF97BD96FF75",
            "DSLEDGER_7A92D1D098DC3151C3"
          ],
          "entity_mentions": [
            "@唐僧",
            "@孙大圣",
            "@大圣"
          ],
          "negative_constraints": [
            "text-only preview; no image/video generation",
            "no provider payload",
            "no final prompt export",
            "no asset or voice profile binding"
          ],
          "review_only_assertions": {
            "adapter_layer_only": true,
            "canonical_or_row_writeback_authorized": false,
            "dramart_seedance_final_prompt_authorized": false,
            "final_prompt_export_authorized": false,
            "not_canonical_entity_uid": true,
            "not_final_prompt": true,
            "not_media_generation": true,
            "not_operator_evidence": true,
            "not_production_acceptance": true,
            "not_provider_execution": true,
            "not_provider_payload": true,
            "not_real_asset_binding": true,
            "not_writeback_authority": true,
            "outputs_index_mutation_authorized": false,
            "production_acceptance_authorized": false,
            "provider_execution_authorized": false,
            "review_only": true
          },
          "review_status": "pending_operator_review_no_writeback",
          "seedance_preview_packet_id": "SEEDANCE_PREVIEW_7609891113A8E9E2D2",
          "shot_index": 2,
          "source_screenplay_scene_packet_id": "PSCENE_88887CC8DDF80FE1ED7E",
          "source_selection_id": "PSEL_92EA78DCCF985E7FAF48",
          "source_storyboard_shot_packet_id": "PSHOT_97596039E253E66AE8A3",
          "source_trace_refs": {
            "beat_boundary_id": "BEAT_90858A7FB9E5440B9CAC",
            "linked_entity_mention_ids": [
              "MEN_9139EA61700EC0D433AA",
              "MEN_8B150276A812544636BB"
            ],
            "linked_event_scene_hint_ids": [
              "EVT_39E3C0BE5DE879E79DBB"
            ],
            "screenplay_scene_packet_id": "PSCENE_88887CC8DDF80FE1ED7E",
            "source_selection_id": "PSEL_92EA78DCCF985E7FAF48",
            "source_text_ref": {
              "file_id": "INFILE_125DA103A66BF0AED108",
              "input_path": "input/西游记（原文版）.txt",
              "input_sha256": "0cae1c06a99bf6f119721bed64bec290b8c8d5a5e5bdf8dd7358bae80d3fda84",
              "ref_type": "local_input_text_ref",
              "source_line_end": 5939,
              "source_line_start": 5886
            }
          },
          "visual_prompt_preview_candidate": "Seedance 2.0 review-only shot preview. 画面：这个也来问，那个也来寻，俱慌慌张张，莫知所措，叫苦连天的道： 实体：@唐僧 @孙大圣 @大圣。镜头：medium_close，shot_reverse_shot_ready_static，约6秒。 保持前后镜头连续；不生成媒体，不提交平台。"
        }
      ],
      "keys": [
        "camera_motion",
        "composition_and_staging",
        "continuity_constraints",
        "duration_seconds",
        "entity_mention_ledger_ids",
        "entity_mentions",
        "negative_constraints",
        "review_only_assertions",
        "review_status",
        "seedance_preview_packet_id",
        "shot_index",
        "source_screenplay_scene_packet_id",
        "source_selection_id",
        "source_storyboard_shot_packet_id",
        "source_trace_refs",
        "visual_prompt_preview_candidate"
      ],
      "status_counts": {
        "review_status=pending_operator_review_no_writeback": 20
      }
    },
    "entity_ledger": {
      "path": "outputs/dramart_seedance_adapter_preview_no_writeback_20260612_012535_fresh/DRAMART_SEEDANCE_ADAPTER_PREVIEW_entity_mention_ledger.jsonl",
      "row_count": 80,
      "parse_failures": 0,
      "samples": [
        {
          "adapter_only": true,
          "entity_display_name": "唐僧",
          "ledger_entry_id": "DSLEDGER_121A3CFBBF8FFC802E",
          "local_entity_key": "LOCAL_ENTITY_CBCA7EB0823512A8",
          "mention_origin": "deterministic_scene_or_dialogue_surface",
          "mention_token": "@唐僧",
          "not_accepted_overlay": true,
          "not_asset_binding": true,
          "not_canonical_entity_uid": true,
          "not_writeback_authority": true,
          "platform_scope": "dramart_ai",
          "preview_packet_id": "DRAMART_PREVIEW_920246007B133F7C5B",
          "review_only_assertions": {
            "adapter_layer_only": true,
            "canonical_or_row_writeback_authorized": false,
            "dramart_seedance_final_prompt_authorized": false,
            "final_prompt_export_authorized": false,
            "not_canonical_entity_uid": true,
            "not_final_prompt": true,
            "not_media_generation": true,
            "not_operator_evidence": true,
            "not_production_acceptance": true,
            "not_provider_execution": true,
            "not_provider_payload": true,
            "not_real_asset_binding": true,
            "not_writeback_authority": true,
            "outputs_index_mutation_authorized": false,
            "production_acceptance_authorized": false,
            "provider_execution_authorized": false,
            "review_only": true
          },
          "review_status": "pending_operator_review_no_writeback",
          "source_scene_packet_id": "PSCENE_88887CC8DDF80FE1ED7E",
          "source_selection_id": "PSEL_92EA78DCCF985E7FAF48",
          "source_storyboard_shot_packet_id": "",
          "source_surface_text": "唐僧"
        },
        {
          "adapter_only": true,
          "entity_display_name": "孙大圣",
          "ledger_entry_id": "DSLEDGER_9E03CFFF099037CF0F",
          "local_entity_key": "LOCAL_ENTITY_23FE32C46D930970",
          "mention_origin": "deterministic_scene_or_dialogue_surface",
          "mention_token": "@孙大圣",
          "not_accepted_overlay": true,
          "not_asset_binding": true,
          "not_canonical_entity_uid": true,
          "not_writeback_authority": true,
          "platform_scope": "dramart_ai",
          "preview_packet_id": "DRAMART_PREVIEW_920246007B133F7C5B",
          "review_only_assertions": {
            "adapter_layer_only": true,
            "canonical_or_row_writeback_authorized": false,
            "dramart_seedance_final_prompt_authorized": false,
            "final_prompt_export_authorized": false,
            "not_canonical_entity_uid": true,
            "not_final_prompt": true,
            "not_media_generation": true,
            "not_operator_evidence": true,
            "not_production_acceptance": true,
            "not_provider_execution": true,
            "not_provider_payload": true,
            "not_real_asset_binding": true,
            "not_writeback_authority": true,
            "outputs_index_mutation_authorized": false,
            "production_acceptance_authorized": false,
            "provider_execution_authorized": false,
            "review_only": true
          },
          "review_status": "pending_operator_review_no_writeback",
          "source_scene_packet_id": "PSCENE_88887CC8DDF80FE1ED7E",
          "source_selection_id": "PSEL_92EA78DCCF985E7FAF48",
          "source_storyboard_shot_packet_id": "",
          "source_surface_text": "孙大圣"
        }
      ],
      "keys": [
        "adapter_only",
        "entity_display_name",
        "ledger_entry_id",
        "local_entity_key",
        "mention_origin",
        "mention_token",
        "not_accepted_overlay",
        "not_asset_binding",
        "not_canonical_entity_uid",
        "not_writeback_authority",
        "platform_scope",
        "preview_packet_id",
        "review_only_assertions",
        "review_status",
        "source_scene_packet_id",
        "source_selection_id",
        "source_storyboard_shot_packet_id",
        "source_surface_text",
        "source_trace_refs",
        "validator_status"
      ],
      "status_counts": {
        "platform_scope=dramart_ai": 20,
        "platform_scope=seedance_2_0": 60,
        "review_status=pending_operator_review_no_writeback": 80,
        "validator_status=valid": 80
      }
    },
    "alignment_matrix": {
      "path": "outputs/dramart_seedance_adapter_preview_no_writeback_20260612_012535_fresh/DRAMART_SEEDANCE_ADAPTER_PREVIEW_cross_platform_prompt_alignment_matrix.jsonl",
      "row_count": 5,
      "parse_failures": 0,
      "samples": [
        {
          "alignment_row_id": "DSALIGN_920246007B133F7C5B",
          "alignment_status": "pass",
          "dramart_preview_packet_id": "DRAMART_PREVIEW_920246007B133F7C5B",
          "dramart_review_status": "pending_operator_review_no_writeback",
          "ledger_mention_ids": [
            "DSLEDGER_121A3CFBBF8FFC802E",
            "DSLEDGER_29927426932EFC99A5",
            "DSLEDGER_2CB8E495A164BB18F8",
            "DSLEDGER_3341340727222C70D5",
            "DSLEDGER_788FF4EF97BD96FF75",
            "DSLEDGER_7A92D1D098DC3151C3",
            "DSLEDGER_8FCBADF5E2BC3FEFED",
            "DSLEDGER_96952EBCF38BC1DEA3",
            "DSLEDGER_9E03CFFF099037CF0F",
            "DSLEDGER_BA393C0C17FD3FD0A3",
            "DSLEDGER_BFDE239A671B49A7B0",
            "DSLEDGER_C5D0E1E196A1EBE950",
            "DSLEDGER_D16A27CF23453056ED",
            "DSLEDGER_E0FAE5A2DA653E0509",
            "DSLEDGER_E89DE6D7CD7E0A37D6",
            "DSLEDGER_F2D2C7EDEAD4E25795"
          ],
          "resolved_mention_count": 16,
          "review_only_assertions": {
            "adapter_layer_only": true,
            "canonical_or_row_writeback_authorized": false,
            "dramart_seedance_final_prompt_authorized": false,
            "final_prompt_export_authorized": false,
            "not_canonical_entity_uid": true,
            "not_final_prompt": true,
            "not_media_generation": true,
            "not_operator_evidence": true,
            "not_production_acceptance": true,
            "not_provider_execution": true,
            "not_provider_payload": true,
            "not_real_asset_binding": true,
            "not_writeback_authority": true,
            "outputs_index_mutation_authorized": false,
            "production_acceptance_authorized": false,
            "provider_execution_authorized": false,
            "review_only": true
          },
          "review_status": "pending_operator_review_no_writeback",
          "seedance_preview_packet_ids": [
            "SEEDANCE_PREVIEW_E6B2693E5CD4673BFE",
            "SEEDANCE_PREVIEW_7609891113A8E9E2D2",
            "SEEDANCE_PREVIEW_47B682978FB97BD3F3",
            "SEEDANCE_PREVIEW_D6807B0284C1F11016"
          ],
          "seedance_review_status": "pending_operator_review_no_writeback",
          "source_scene_packet_id": "PSCENE_88887CC8DDF80FE1ED7E",
          "source_selection_id": "PSEL_92EA78DCCF985E7FAF48",
          "source_storyboard_shot_packet_ids": [
            "PSHOT_4AAF1EF45018EEE24971",
            "PSHOT_97596039E253E66AE8A3",
            "PSHOT_DB0498860CF57BA16E57",
            "PSHOT_564521ECE7044E5357D6"
          ],
          "source_trace_refs": {
            "mini_replay_ref": {
              "trace_replay_id": "TRACE_92EA78DCCF985E7FAF48",
              "trace_status": "mini_pipeline_trace_replay_pass_no_writeback"
            },
            "scene_beat_ref": {
              "beat_boundary_count": 4,
              "beat_boundary_ids": [
                "BEAT_BD227A59594EFE861D18",
                "BEAT_90858A7FB9E5440B9CAC",
                "BEAT_C83466BCA8376A70B5F2",
                "BEAT_614E57D195C89859CC77"
              ],
              "scene_card_id": "SCENE_F43AEDD923B4AEBB0C02",
              "scene_card_status": "scene_boundary_dry_run_candidate_no_writeback"
            },
            "semantic_candidate_ref": {
              "candidate_id": "SEM_CC22B5BC8BAACAE159E5",
              "candidate_status": "candidate_no_writeback_not_canonical",
              "entity_mention_count": 16,
              "event_scene_hint_count": 6,
              "relation_hint_count": 3
            },
            "source_selection_id": "PSEL_92EA78DCCF985E7FAF48",
            "source_text_ref": {
              "file_id": "INFILE_125DA103A66BF0AED108",
              "input_path": "input/西游记（原文版）.txt",
              "input_sha256": "0cae1c06a99bf6f119721bed64bec290b8c8d5a5e5bdf8dd7358bae80d3fda84",
              "ref_type": "local_input_text_ref",
              "source_line_end": 5939,
              "source_line_start": 5886
            }
          },
          "unresolved_mention_count": 0,
          "unsupported_risky_field_count": 5,
          "unsupported_risky_field_ids": [
            "DSRISK_B6DC58B0214604D5FD",
            "DSRISK_2C5961443E1131FC74",
            "DSRISK_93CCA4C016FCB95116",
            "DSRISK_796337ADDC8BED6DFF",
            "DSRISK_46B040DA9542657FAA"
          ]
        },
        {
          "alignment_row_id": "DSALIGN_F48AFBA6DE461D7B6D",
          "alignment_status": "pass",
          "dramart_preview_packet_id": "DRAMART_PREVIEW_F48AFBA6DE461D7B6D",
          "dramart_review_status": "pending_operator_review_no_writeback",
          "ledger_mention_ids": [
            "DSLEDGER_092547068A3A34A350",
            "DSLEDGER_1EEBF1E71F3BA8D7DE",
            "DSLEDGER_1F3A0DD90D065035F2",
            "DSLEDGER_286335699B0E8A4710",
            "DSLEDGER_4CC67B3AF4041040F3",
            "DSLEDGER_4DEF153D35EA9DB1E8",
            "DSLEDGER_5F4C702764A859B31E",
            "DSLEDGER_96E10BBC31437513C3",
            "DSLEDGER_B13A4A3E3E03F27434",
            "DSLEDGER_B3A7E9550F84A08B4A",
            "DSLEDGER_C6ED937E5108354B61",
            "DSLEDGER_DD22EF993AF7B7E9B7",
            "DSLEDGER_E020CD7DBE800FAF3B",
            "DSLEDGER_E21D024299D25D8B20",
            "DSLEDGER_E8C9A9E34CBC4ACB47",
            "DSLEDGER_F48D9434655FDF8CFE"
          ],
          "resolved_mention_count": 16,
          "review_only_assertions": {
            "adapter_layer_only": true,
            "canonical_or_row_writeback_authorized": false,
            "dramart_seedance_final_prompt_authorized": false,
            "final_prompt_export_authorized": false,
            "not_canonical_entity_uid": true,
            "not_final_prompt": true,
            "not_media_generation": true,
            "not_operator_evidence": true,
            "not_production_acceptance": true,
            "not_provider_execution": true,
            "not_provider_payload": true,
            "not_real_asset_binding": true,
            "not_writeback_authority": true,
            "outputs_index_mutation_authorized": false,
            "production_acceptance_authorized": false,
            "provider_execution_authorized": false,
            "review_only": true
          },
          "review_status": "pending_operator_review_no_writeback",
          "seedance_preview_packet_ids": [
            "SEEDANCE_PREVIEW_4F4D840B1C2CAC6370",
            "SEEDANCE_PREVIEW_5CA5A6BA4AD5EB692F",
            "SEEDANCE_PREVIEW_6364420F0FCA3B2E9C",
            "SEEDANCE_PREVIEW_1214E67F795EA0E91A"
          ],
          "seedance_review_status": "pending_operator_review_no_writeback",
          "source_scene_packet_id": "PSCENE_87AE651E3ACED2225B09",
          "source_selection_id": "PSEL_DB2F7BBB579862E63F3D",
          "source_storyboard_shot_packet_ids": [
            "PSHOT_23A0B6456C150392F951",
            "PSHOT_830570775ECD03151B87",
            "PSHOT_70079C03501192126C61",
            "PSHOT_F9804BCA930AEB4D1DE6"
          ],
          "source_trace_refs": {
            "mini_replay_ref": {
              "trace_replay_id": "TRACE_DB2F7BBB579862E63F3D",
              "trace_status": "mini_pipeline_trace_replay_pass_no_writeback"
            },
            "scene_beat_ref": {
              "beat_boundary_count": 4,
              "beat_boundary_ids": [
                "BEAT_CDEF4AFC5D5DE82352AF",
                "BEAT_950E8C820434BAA2F6FF",
                "BEAT_0F7C1B90FC8504BDAF8B",
                "BEAT_A6718BDF852E3520A3CE"
              ],
              "scene_card_id": "SCENE_11034729EA832FA21734",
              "scene_card_status": "scene_boundary_dry_run_candidate_no_writeback"
            },
            "semantic_candidate_ref": {
              "candidate_id": "SEM_074AA3584843BB075595",
              "candidate_status": "candidate_no_writeback_not_canonical",
              "entity_mention_count": 16,
              "event_scene_hint_count": 6,
              "relation_hint_count": 4
            },
            "source_selection_id": "PSEL_DB2F7BBB579862E63F3D",
            "source_text_ref": {
              "file_id": "INFILE_4B08573D7E744BAA8F56",
              "input_path": "input/红楼梦（原文版）.txt",
              "input_sha256": "72df08dce82c0be4622d16060725b0287b1badbb3a979756336148212d6f1d07",
              "ref_type": "local_input_text_ref",
              "source_line_end": 26737,
              "source_line_start": 26535
            }
          },
          "unresolved_mention_count": 0,
          "unsupported_risky_field_count": 5,
          "unsupported_risky_field_ids": [
            "DSRISK_5AE576EAA2AA551143",
            "DSRISK_4A3E83D395D7E89E74",
            "DSRISK_58DFEA08BC7ADCB941",
            "DSRISK_6E51E1C3048244DC6B",
            "DSRISK_3B3C0634CC527CABD8"
          ]
        }
      ],
      "keys": [
        "alignment_row_id",
        "alignment_status",
        "dramart_preview_packet_id",
        "dramart_review_status",
        "ledger_mention_ids",
        "resolved_mention_count",
        "review_only_assertions",
        "review_status",
        "seedance_preview_packet_ids",
        "seedance_review_status",
        "source_scene_packet_id",
        "source_selection_id",
        "source_storyboard_shot_packet_ids",
        "source_trace_refs",
        "unresolved_mention_count",
        "unsupported_risky_field_count",
        "unsupported_risky_field_ids"
      ],
      "status_counts": {
        "alignment_status=pass": 5,
        "review_status=pending_operator_review_no_writeback": 5
      }
    },
    "risk_report": {
      "path": "outputs/dramart_seedance_adapter_preview_no_writeback_20260612_012535_fresh/DRAMART_SEEDANCE_ADAPTER_PREVIEW_unsupported_or_risky_field_report.jsonl",
      "row_count": 25,
      "parse_failures": 0,
      "samples": [
        {
          "alignment_matrix_ref": "linked_by_alignment_matrix",
          "allowed_preview_use": "review_only_visibility_or_negative_constraint",
          "blocked_use": [
            "provider_execution",
            "final_prompt_export",
            "asset_binding",
            "canonical_writeback",
            "production_acceptance"
          ],
          "field_category": "no_forbidden_field_detected",
          "platform_scope": "dramart_ai",
          "review_only_assertions": {
            "adapter_layer_only": true,
            "canonical_or_row_writeback_authorized": false,
            "dramart_seedance_final_prompt_authorized": false,
            "final_prompt_export_authorized": false,
            "not_canonical_entity_uid": true,
            "not_final_prompt": true,
            "not_media_generation": true,
            "not_operator_evidence": true,
            "not_production_acceptance": true,
            "not_provider_execution": true,
            "not_provider_payload": true,
            "not_real_asset_binding": true,
            "not_writeback_authority": true,
            "outputs_index_mutation_authorized": false,
            "production_acceptance_authorized": false,
            "provider_execution_authorized": false,
            "review_only": true
          },
          "review_status": "pending_operator_review_no_writeback",
          "risk_reason": "scan_completed_no_hit",
          "source_field_path": "systematic_scan",
          "source_packet_id": "DRAMART_PREVIEW_920246007B133F7C5B",
          "unsupported_or_risky_field_id": "DSRISK_B6DC58B0214604D5FD"
        },
        {
          "alignment_matrix_ref": "linked_by_alignment_matrix",
          "allowed_preview_use": "review_only_visibility_or_negative_constraint",
          "blocked_use": [
            "provider_execution",
            "final_prompt_export",
            "asset_binding",
            "canonical_writeback",
            "production_acceptance"
          ],
          "field_category": "no_forbidden_field_detected",
          "platform_scope": "dramart_ai",
          "review_only_assertions": {
            "adapter_layer_only": true,
            "canonical_or_row_writeback_authorized": false,
            "dramart_seedance_final_prompt_authorized": false,
            "final_prompt_export_authorized": false,
            "not_canonical_entity_uid": true,
            "not_final_prompt": true,
            "not_media_generation": true,
            "not_operator_evidence": true,
            "not_production_acceptance": true,
            "not_provider_execution": true,
            "not_provider_payload": true,
            "not_real_asset_binding": true,
            "not_writeback_authority": true,
            "outputs_index_mutation_authorized": false,
            "production_acceptance_authorized": false,
            "provider_execution_authorized": false,
            "review_only": true
          },
          "review_status": "pending_operator_review_no_writeback",
          "risk_reason": "scan_completed_no_hit",
          "source_field_path": "systematic_scan",
          "source_packet_id": "DRAMART_PREVIEW_F48AFBA6DE461D7B6D",
          "unsupported_or_risky_field_id": "DSRISK_5AE576EAA2AA551143"
        }
      ],
      "keys": [
        "alignment_matrix_ref",
        "allowed_preview_use",
        "blocked_use",
        "field_category",
        "platform_scope",
        "review_only_assertions",
        "review_status",
        "risk_reason",
        "source_field_path",
        "source_packet_id",
        "unsupported_or_risky_field_id"
      ],
      "status_counts": {
        "platform_scope=dramart_ai": 5,
        "platform_scope=seedance_2_0": 20,
        "review_status=pending_operator_review_no_writeback": 25
      }
    }
  },
  "previous_round": {
    "dir": "outputs/dramart_seedance_final_prompt_contract_design_deepseek_round1_20260612_1549",
    "parsed": {
      "parse_status": "pass",
      "overall_verdict": "supports_contract_design",
      "confidence": "high",
      "recommended_next_marker": "dramart_seedance_final_prompt_draft_no_writeback",
      "boundary_assessment": {
        "contract_design_only": true,
        "final_prompt_text_generated": false,
        "final_prompt_export_authorized": false,
        "provider_payload_generation_authorized": false,
        "provider_execution_authorized": false,
        "media_or_asset_generation_authorized": false,
        "evidence_or_writeback_authorized": false,
        "route_or_readiness_or_production_authorized": false
      },
      "schema_assessment": {
        "dramart_scene_prompt_schema_sufficient": true,
        "seedance_shot_prompt_schema_sufficient": true,
        "entity_mention_ledger_sufficient": true,
        "alignment_schema_sufficient": true,
        "unsupported_downgrade_schema_sufficient": true,
        "quality_rubric_schema_sufficient": true,
        "review_packet_schema_sufficient": true,
        "validators_and_drift_checks_sufficient": true
      },
      "findings": [],
      "required_corrections": [],
      "remaining_high_or_blocker_count": 0,
      "call_status": "success",
      "round_id": "round1"
    }
  },
  "decision_under_review": {
    "contract_design_only": true,
    "recommended_next_marker": "dramart_seedance_final_prompt_draft_no_writeback",
    "future_final_prompt_draft_no_writeback_authorized": true,
    "future_final_prompt_quality_audit_no_writeback_required": true,
    "dramart_seedance_final_prompt_authorized": false,
    "final_prompt_export_authorized": false,
    "provider_payload_generation_authorized": false,
    "provider_execution_authorized": false,
    "media_generation_authorized": false,
    "asset_binding_authorized": false,
    "voice_profile_binding_authorized": false,
    "operator_evidence_intake_authorized": false,
    "canonical_or_row_writeback_authorized": false,
    "outputs_index_mutation_authorized": false,
    "now36_activation_authorized": false,
    "provider_readiness_authorized": false,
    "production_readiness_authorized": false,
    "production_acceptance_authorized": false
  },
  "input_fingerprint": "106ec4dc30c71d2a8fd251f3795546d3cb63bfb6a1b30c8d6e808808e4b31d4f"
}