{
  "version": "reserve_downstream_catchup.v1",
  "generated_at": "2026-04-09T04:52:03.135030Z",
  "run_dir": "/wwwb/aitools/writer/outputs/hongloumeng_acceptance_smoke_20260331_v1",
  "output_dir": "/wwwb/aitools/writer/outputs/hongloumeng_acceptance_smoke_20260331_v1/reserve_downstream_catchup",
  "summary": {
    "run_dir": "/wwwb/aitools/writer/outputs/hongloumeng_acceptance_smoke_20260331_v1",
    "generated_at": "2026-04-09T04:52:03.134982Z",
    "action_count": 1,
    "replay_promoted": true,
    "rebuild_performed": false,
    "artifact_gap_closed": true,
    "product_quality_status_before": "fail",
    "product_quality_status_after": "pass",
    "product_quality_fail_count_before": 2,
    "product_quality_fail_count_after": 0,
    "product_quality_warn_count_before": 1,
    "product_quality_warn_count_after": 0,
    "quality_gate_status_before": "pass",
    "quality_gate_status_after": "pass"
  },
  "before": {
    "artifact_presence": {
      "03d_screenplay.json": true,
      "03e_dramart_package.json": true,
      "04_scripts.json": true,
      "04b_style_bible.json": true,
      "05_storyboard.json": true,
      "05b_storyboard_guard.json": true,
      "05c_dramart_storyboard.json": true,
      "05d_delivery_repair_contract.json": true
    },
    "quality_gate": {
      "status": "pass",
      "broad_status": "pass",
      "top_issues": []
    },
    "product_quality": {
      "status": "fail",
      "fail_count": 2,
      "warn_count": 1,
      "top_issues": [
        {
          "id": "prompt_guard.text_quality_status",
          "stage": "prompt_guard",
          "status": "fail",
          "message": "prompt_guard 必须保持 text_quality 为 pass",
          "actual": "fail",
          "expected": "pass"
        },
        {
          "id": "prompt_guard.tri_layer_status",
          "stage": "prompt_guard",
          "status": "warn",
          "message": "prompt_guard 必须保持 tri_layer 为 pass",
          "actual": "warning",
          "expected": "pass"
        },
        {
          "id": "prompt_guard.dramart_delivery_status",
          "stage": "prompt_guard",
          "status": "fail",
          "message": "prompt_guard 必须保持 dramart_delivery 为 pass",
          "actual": "fail",
          "expected": "pass"
        }
      ]
    }
  },
  "actions": [
    {
      "kind": "delivery_repair_replay",
      "replay_report_path": "/wwwb/aitools/writer/outputs/hongloumeng_acceptance_smoke_20260331_v1/repair_replay/delivery_repair_replay_report.json",
      "replay_summary": {
        "run_dir": "/wwwb/aitools/writer/outputs/hongloumeng_acceptance_smoke_20260331_v1",
        "output_dir": "/wwwb/aitools/writer/outputs/hongloumeng_acceptance_smoke_20260331_v1/repair_replay",
        "generated_at": "2026-04-09T04:52:02.368968Z",
        "replayed_stage_count": 1,
        "replayed_stages": [
          "storyboard_prompt"
        ],
        "requested_owner_stages": [
          "screenplay",
          "storyboard_prompt",
          "storyboard_ready"
        ],
        "requested_priority_tiers": [],
        "requested_action_ids": [],
        "requested_shot_ids": [],
        "available_owner_stages": [
          "storyboard_prompt"
        ],
        "repair_action_count": 12,
        "screenplay_block_count": 17,
        "storyboard_count": 64,
        "storyboard_ready_status": "pass",
        "prompt_guard_revalidated": true,
        "prompt_guard_issue_count": 0,
        "prompt_guard_delivery_status": "pass",
        "delivery_fix_queue_size": 0
      },
      "improved": true,
      "promoted": true,
      "writes": [
        {
          "path": "/wwwb/aitools/writer/outputs/hongloumeng_acceptance_smoke_20260331_v1/05_storyboard.json",
          "backup_path": "/wwwb/aitools/writer/outputs/hongloumeng_acceptance_smoke_20260331_v1/reserve_downstream_catchup/backups/05_storyboard.json",
          "artifact_name": "05_storyboard.json"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/hongloumeng_acceptance_smoke_20260331_v1/05_storyboard.json",
          "backup_path": "/wwwb/aitools/writer/outputs/hongloumeng_acceptance_smoke_20260331_v1/reserve_downstream_catchup/backups/05_storyboard.json",
          "artifact_name": "05_storyboard.json"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/hongloumeng_acceptance_smoke_20260331_v1/05c_dramart_storyboard.json",
          "backup_path": "/wwwb/aitools/writer/outputs/hongloumeng_acceptance_smoke_20260331_v1/reserve_downstream_catchup/backups/05c_dramart_storyboard.json",
          "artifact_name": "05c_dramart_storyboard.json"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/hongloumeng_acceptance_smoke_20260331_v1/05b_storyboard_guard.json",
          "backup_path": "/wwwb/aitools/writer/outputs/hongloumeng_acceptance_smoke_20260331_v1/reserve_downstream_catchup/backups/05b_storyboard_guard.json",
          "artifact_name": "05b_storyboard_guard.json"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/hongloumeng_acceptance_smoke_20260331_v1/05d_delivery_repair_contract.json",
          "backup_path": "/wwwb/aitools/writer/outputs/hongloumeng_acceptance_smoke_20260331_v1/reserve_downstream_catchup/backups/05d_delivery_repair_contract.json",
          "artifact_name": "05d_delivery_repair_contract.json"
        }
      ],
      "promotion_summary": {
        "prompt_guard_status": "pass",
        "prompt_guard_issue_count": 0,
        "delivery_fix_queue_size": 0,
        "dramart_storyboard_status": "pass"
      }
    }
  ],
  "after": {
    "artifact_presence": {
      "03d_screenplay.json": true,
      "03e_dramart_package.json": true,
      "04_scripts.json": true,
      "04b_style_bible.json": true,
      "05_storyboard.json": true,
      "05b_storyboard_guard.json": true,
      "05c_dramart_storyboard.json": true,
      "05d_delivery_repair_contract.json": true
    },
    "quality_gate": {
      "status": "pass",
      "broad_status": "pass",
      "top_issues": []
    },
    "product_quality": {
      "status": "pass",
      "fail_count": 0,
      "warn_count": 0,
      "top_issues": []
    }
  }
}