{
  "run_id": "20260323T085506686956Z",
  "generated_at": "2026-03-23T11:13:24.388731Z",
  "stages": [
    {
      "ts_start": "2026-03-23T08:55:07.800957Z",
      "ts_end": "2026-03-23T08:55:07.852149Z",
      "duration_sec": 0.051,
      "stage": "chunks",
      "status": "ok",
      "run_id": "20260323T085506686956Z",
      "agent": "Ingestion & Chunking Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/_derived_inputs/道祖是克苏鲁_前十章_utf8.txt",
          "kind": "novel_text"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/01_chunks.json",
          "kind": "chunks"
        }
      ],
      "metrics": {
        "chunks": 27,
        "max_chars": 1800,
        "limit_chunks": null,
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-23T08:55:07.871616Z",
      "ts_end": "2026-03-23T08:55:08.011741Z",
      "duration_sec": 0.14,
      "stage": "ontology",
      "status": "ok",
      "run_id": "20260323T085506686956Z",
      "agent": "Ontology & Taxonomy Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/01_chunks.json",
          "kind": "chunks"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/01b_ontology_samples.json",
          "kind": "ontology_samples"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/01c_ontology_candidates.json",
          "kind": "ontology_candidates"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/01d_ontology.json",
          "kind": "ontology_doc"
        }
      ],
      "metrics": {
        "samples": 27,
        "candidate_entity_types": 7,
        "candidate_relation_types": 8,
        "taxonomy_entity_types": 13,
        "taxonomy_relations": 8,
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-23T08:55:08.033431Z",
      "ts_end": "2026-03-23T09:27:31.804343Z",
      "duration_sec": 1943.771,
      "stage": "kg",
      "status": "ok",
      "run_id": "20260323T085506686956Z",
      "agent": "Knowledge Graph Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/01_chunks.json",
          "kind": "chunks"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/01d_ontology.json",
          "kind": "ontology_doc"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/02_kg.json",
          "kind": "kg_summary"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/02_kg_store.json",
          "kind": "kg_store"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/02_kg_observations.jsonl",
          "kind": "kg_observations"
        }
      ],
      "metrics": {
        "entities": 122,
        "relations": 157,
        "observations": 571,
        "ambiguous_entity_forks": 17,
        "chunks": 27,
        "ontology_loaded": true,
        "high_density_chunks": 11,
        "supplement_chunks": 9,
        "max_entity_limit": 14,
        "max_relation_limit": 14,
        "kg_observation_rows": 571,
        "kg_observation_rows_dropped": 0,
        "kg_entity_redirect_applied": 0,
        "kg_relation_redirect_applied": 0,
        "stub_cleanup_dropped_entities": 0,
        "stub_cleanup_dropped_relations": 0,
        "stub_cleanup_merged_duplicate_entities": 0,
        "stub_cleanup_merged_same_name_entities": 0,
        "stub_cleanup_merged_duplicate_relations": 0,
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-23T09:27:31.834763Z",
      "ts_end": "2026-03-23T09:27:31.991337Z",
      "duration_sec": 0.157,
      "stage": "type_consolidation",
      "status": "ok",
      "run_id": "20260323T085506686956Z",
      "agent": "Ontology & Taxonomy Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/02_kg_store.json",
          "kind": "kg_store"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/01d_ontology.json",
          "kind": "ontology_doc"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/02b_type_candidates.json",
          "kind": "type_candidates"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/02c_type_consolidation.json",
          "kind": "type_consolidation"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/02d_kg_store_consolidated.json",
          "kind": "kg_store_consolidated"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/02d_kg_consolidated.json",
          "kind": "kg_summary_consolidated"
        }
      ],
      "metrics": {
        "candidates": 91,
        "apply_type_count": 12,
        "apply_subtype_count": 25,
        "review_type_count": 12,
        "review_subtype_count": 26,
        "other_before": 15,
        "other_after": 3,
        "ontology_loaded": true,
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-23T09:27:32.025389Z",
      "ts_end": "2026-03-23T09:36:49.092078Z",
      "duration_sec": 557.067,
      "stage": "scenes",
      "status": "ok",
      "run_id": "20260323T085506686956Z",
      "agent": "Scene Segmentation Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/01_chunks.json",
          "kind": "chunks"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/02d_kg_store_consolidated.json",
          "kind": "kg_store_consolidated"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/03_scenes.json",
          "kind": "scenes"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/logs/stage_artifacts/scenes/20260323T085506686956Z__03_scenes.json",
          "kind": "scenes_snapshot"
        }
      ],
      "metrics": {
        "scenes": 79,
        "chunks": 27,
        "continued_scenes": 0,
        "scene_with_characters": 76,
        "scene_with_locations": 42,
        "kg_context_loaded": true,
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-23T09:36:49.125725Z",
      "ts_end": "2026-03-23T09:36:49.165210Z",
      "duration_sec": 0.039,
      "stage": "chronology",
      "status": "ok",
      "run_id": "20260323T085506686956Z",
      "agent": "Chronology & Narrative Time Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/03_scenes.json",
          "kind": "scenes"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/02d_kg_store_consolidated.json",
          "kind": "kg_store_consolidated"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/03b_chronology.json",
          "kind": "chronology"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/logs/stage_artifacts/chronology/20260323T085506686956Z__03b_chronology.json",
          "kind": "chronology_snapshot"
        }
      ],
      "metrics": {
        "scenes": 79,
        "chronology_groups": 65,
        "chronology_edges": 96,
        "chronology_conflicts": 0,
        "low_confidence_scenes": 1,
        "explicit_anchors": 44,
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-23T09:36:49.190387Z",
      "ts_end": "2026-03-23T10:16:47.187654Z",
      "duration_sec": 2397.997,
      "stage": "script",
      "status": "ok",
      "run_id": "20260323T085506686956Z",
      "agent": "Script & Shot Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/03_scenes.json",
          "kind": "scenes"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/03b_chronology.json",
          "kind": "chronology"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/02d_kg_consolidated.json",
          "kind": "kg_summary_consolidated"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/04_scripts.json",
          "kind": "scripts"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/logs/stage_artifacts/script/20260323T085506686956Z__04_scripts.json",
          "kind": "scripts_snapshot"
        }
      ],
      "metrics": {
        "scripts": 79,
        "shots": 285,
        "dialogue_lines": 248,
        "narration_shots": 137,
        "chronology_bound_scripts": 79,
        "chronology_non_mainline_scripts": 26,
        "chronology_reordered_scripts": 68,
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-23T10:16:47.226839Z",
      "ts_end": "2026-03-23T11:13:05.998662Z",
      "duration_sec": 3378.772,
      "stage": "storyboard",
      "status": "ok",
      "run_id": "20260323T085506686956Z",
      "agent": "Storyboard & Prompt Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/04_scripts.json",
          "kind": "scripts"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/03_scenes.json",
          "kind": "scenes"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/03b_chronology.json",
          "kind": "chronology"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/02d_kg_consolidated.json",
          "kind": "kg_summary_consolidated"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/05_storyboard.json",
          "kind": "storyboard"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/logs/stage_artifacts/storyboard/20260323T085506686956Z__05_storyboard.json",
          "kind": "storyboards_snapshot"
        }
      ],
      "metrics": {
        "storyboards": 285,
        "duration_seconds": 1403.9,
        "non_mainline_storyboards": 102,
        "visual_noted_storyboards": 285,
        "top_shot_roles": {
          "character": 79,
          "opening": 79,
          "dialogue_or_action": 70,
          "closing": 57
        },
        "top_characters": {
          "李凡": 273,
          "望舒": 94,
          "茯苓": 93,
          "老道": 59,
          "玄天剑意": 52,
          "修士": 36,
          "山主": 32,
          "王爷": 20
        },
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-23T11:13:06.081615Z",
      "ts_end": "2026-03-23T11:13:24.091401Z",
      "duration_sec": 18.01,
      "stage": "timeline",
      "status": "ok",
      "run_id": "20260323T085506686956Z",
      "agent": "Edit Timeline & Post-Plan Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/05_storyboard.json",
          "kind": "storyboard"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/04_scripts.json",
          "kind": "scripts"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/06_timeline.json",
          "kind": "timeline"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/logs/stage_artifacts/timeline/20260323T085506686956Z__06_timeline.json",
          "kind": "timeline_snapshot"
        }
      ],
      "metrics": {
        "segments": 285,
        "captions": 477,
        "tracks": 6,
        "duration_seconds": 1403.9,
        "non_mainline_segments": 102,
        "voiceover_segments": 229,
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-23T11:13:24.144617Z",
      "ts_end": "2026-03-23T11:13:24.295481Z",
      "duration_sec": 0.151,
      "stage": "video",
      "status": "ok",
      "run_id": "20260323T085506686956Z",
      "agent": "Video Generation Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/05_storyboard.json",
          "kind": "storyboard"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/06_timeline.json",
          "kind": "timeline"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/04_scripts.json",
          "kind": "scripts"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/07_video_tasks.json",
          "kind": "video_tasks"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/logs/stage_artifacts/video/20260323T085506686956Z__07_video_tasks.json",
          "kind": "video_tasks_snapshot"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/07_video_results.json",
          "kind": "video_results"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_top10_fullrun_20260323_v1/logs/stage_artifacts/video/20260323T085506686956Z__07_video_results.json",
          "kind": "video_results_snapshot"
        }
      ],
      "metrics": {
        "tasks": 285,
        "results": 285,
        "video_tasks": 285,
        "video_results": 285,
        "enable_video": false,
        "pending_tasks": 285,
        "skipped_tasks": 0,
        "total_duration_seconds": 1403.9,
        "submitted_count": 0,
        "succeeded_count": 0,
        "failed_count": 0
      }
    }
  ],
  "llm_calls": {
    "total": 222,
    "ok": 222,
    "error": 0
  },
  "run_errors": 0
}