{
  "run_id": "20260322T190615747984Z",
  "generated_at": "2026-03-22T20:47:23.444655Z",
  "stages": [
    {
      "ts_start": "2026-03-22T19:06:16.891428Z",
      "ts_end": "2026-03-22T19:06:17.859751Z",
      "duration_sec": 0.968,
      "stage": "chunks",
      "status": "ok",
      "run_id": "20260322T190615747984Z",
      "agent": "Ingestion & Chunking Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/input/道祖是克苏鲁.txt",
          "kind": "novel_text"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/01_chunks.json",
          "kind": "chunks"
        }
      ],
      "metrics": {
        "chunks": 30,
        "max_chars": 1800,
        "limit_chunks": 30,
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-22T19:06:17.880524Z",
      "ts_end": "2026-03-22T19:06:18.048408Z",
      "duration_sec": 0.168,
      "stage": "ontology",
      "status": "ok",
      "run_id": "20260322T190615747984Z",
      "agent": "Ontology & Taxonomy Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/01_chunks.json",
          "kind": "chunks"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/01b_ontology_samples.json",
          "kind": "ontology_samples"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/01c_ontology_candidates.json",
          "kind": "ontology_candidates"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/01d_ontology.json",
          "kind": "ontology_doc"
        }
      ],
      "metrics": {
        "samples": 30,
        "candidate_entity_types": 7,
        "candidate_relation_types": 8,
        "taxonomy_entity_types": 13,
        "taxonomy_relations": 8,
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-22T19:06:18.074939Z",
      "ts_end": "2026-03-22T19:30:45.230172Z",
      "duration_sec": 1467.155,
      "stage": "kg",
      "status": "ok",
      "run_id": "20260322T190615747984Z",
      "agent": "Knowledge Graph Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/01_chunks.json",
          "kind": "chunks"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/01d_ontology.json",
          "kind": "ontology_doc"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/02_kg.json",
          "kind": "kg_summary"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/02_kg_store.json",
          "kind": "kg_store"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/02_kg_observations.jsonl",
          "kind": "kg_observations"
        }
      ],
      "metrics": {
        "entities": 115,
        "relations": 165,
        "observations": 641,
        "ambiguous_entity_forks": 18,
        "chunks": 30,
        "ontology_loaded": true,
        "high_density_chunks": 12,
        "supplement_chunks": 10,
        "max_entity_limit": 14,
        "max_relation_limit": 14,
        "kg_observation_rows": 641,
        "kg_observation_rows_dropped": 0,
        "kg_entity_redirect_applied": 0,
        "kg_relation_redirect_applied": 12,
        "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": 2,
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-22T19:30:45.261334Z",
      "ts_end": "2026-03-22T19:30:45.420405Z",
      "duration_sec": 0.159,
      "stage": "type_consolidation",
      "status": "ok",
      "run_id": "20260322T190615747984Z",
      "agent": "Ontology & Taxonomy Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/02_kg_store.json",
          "kind": "kg_store"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/01d_ontology.json",
          "kind": "ontology_doc"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/02b_type_candidates.json",
          "kind": "type_candidates"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/02c_type_consolidation.json",
          "kind": "type_consolidation"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/02d_kg_store_consolidated.json",
          "kind": "kg_store_consolidated"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/02d_kg_consolidated.json",
          "kind": "kg_summary_consolidated"
        }
      ],
      "metrics": {
        "candidates": 88,
        "apply_type_count": 12,
        "apply_subtype_count": 21,
        "review_type_count": 8,
        "review_subtype_count": 33,
        "other_before": 13,
        "other_after": 1,
        "ontology_loaded": true,
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-22T19:30:45.454051Z",
      "ts_end": "2026-03-22T19:37:34.364285Z",
      "duration_sec": 408.91,
      "stage": "scenes",
      "status": "ok",
      "run_id": "20260322T190615747984Z",
      "agent": "Scene Segmentation Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/01_chunks.json",
          "kind": "chunks"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/02d_kg_store_consolidated.json",
          "kind": "kg_store_consolidated"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/03_scenes.json",
          "kind": "scenes"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/logs/stage_artifacts/scenes/20260322T190615747984Z__03_scenes.json",
          "kind": "scenes_snapshot"
        }
      ],
      "metrics": {
        "scenes": 90,
        "chunks": 30,
        "continued_scenes": 0,
        "scene_with_characters": 87,
        "scene_with_locations": 53,
        "kg_context_loaded": true,
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-22T19:37:34.395151Z",
      "ts_end": "2026-03-22T19:37:34.438338Z",
      "duration_sec": 0.043,
      "stage": "chronology",
      "status": "ok",
      "run_id": "20260322T190615747984Z",
      "agent": "Chronology & Narrative Time Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/03_scenes.json",
          "kind": "scenes"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/02d_kg_store_consolidated.json",
          "kind": "kg_store_consolidated"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/03b_chronology.json",
          "kind": "chronology"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/logs/stage_artifacts/chronology/20260322T190615747984Z__03b_chronology.json",
          "kind": "chronology_snapshot"
        }
      ],
      "metrics": {
        "scenes": 90,
        "chronology_groups": 73,
        "chronology_edges": 110,
        "chronology_conflicts": 0,
        "low_confidence_scenes": 1,
        "explicit_anchors": 51,
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-22T19:37:34.463381Z",
      "ts_end": "2026-03-22T20:07:31.615909Z",
      "duration_sec": 1797.153,
      "stage": "script",
      "status": "ok",
      "run_id": "20260322T190615747984Z",
      "agent": "Script & Shot Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/03_scenes.json",
          "kind": "scenes"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/03b_chronology.json",
          "kind": "chronology"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/02d_kg_consolidated.json",
          "kind": "kg_summary_consolidated"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/04_scripts.json",
          "kind": "scripts"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/logs/stage_artifacts/script/20260322T190615747984Z__04_scripts.json",
          "kind": "scripts_snapshot"
        }
      ],
      "metrics": {
        "scripts": 90,
        "shots": 325,
        "dialogue_lines": 296,
        "narration_shots": 146,
        "chronology_bound_scripts": 90,
        "chronology_non_mainline_scripts": 31,
        "chronology_reordered_scripts": 79,
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-22T20:07:31.658008Z",
      "ts_end": "2026-03-22T20:47:13.570040Z",
      "duration_sec": 2381.912,
      "stage": "storyboard",
      "status": "ok",
      "run_id": "20260322T190615747984Z",
      "agent": "Storyboard & Prompt Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/04_scripts.json",
          "kind": "scripts"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/03_scenes.json",
          "kind": "scenes"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/03b_chronology.json",
          "kind": "chronology"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/02d_kg_consolidated.json",
          "kind": "kg_summary_consolidated"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/05_storyboard.json",
          "kind": "storyboard"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/logs/stage_artifacts/storyboard/20260322T190615747984Z__05_storyboard.json",
          "kind": "storyboards_snapshot"
        }
      ],
      "metrics": {
        "storyboards": 325,
        "duration_seconds": 1603.5,
        "non_mainline_storyboards": 119,
        "visual_noted_storyboards": 325,
        "top_shot_roles": {
          "character": 90,
          "opening": 90,
          "dialogue_or_action": 82,
          "closing": 63
        },
        "top_characters": {
          "李凡": 315,
          "望舒": 119,
          "茯苓": 103,
          "老道": 50,
          "修士": 36,
          "外门弟子": 36,
          "山主": 32,
          "玄天剑意": 28
        },
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-22T20:47:13.652986Z",
      "ts_end": "2026-03-22T20:47:23.271580Z",
      "duration_sec": 9.619,
      "stage": "timeline",
      "status": "ok",
      "run_id": "20260322T190615747984Z",
      "agent": "Edit Timeline & Post-Plan Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/05_storyboard.json",
          "kind": "storyboard"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/04_scripts.json",
          "kind": "scripts"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/06_timeline.json",
          "kind": "timeline"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_timeline_coldstart_20260323_v1/logs/stage_artifacts/timeline/20260322T190615747984Z__06_timeline.json",
          "kind": "timeline_snapshot"
        }
      ],
      "metrics": {
        "segments": 325,
        "captions": 543,
        "tracks": 6,
        "duration_seconds": 1603.5,
        "non_mainline_segments": 119,
        "voiceover_segments": 264,
        "resumed": false
      }
    }
  ],
  "llm_calls": {
    "total": 251,
    "ok": 251,
    "error": 0
  },
  "run_errors": 0
}