{
  "run_id": "20260325T032155842752Z",
  "generated_at": "2026-03-25T04:09:49.090356Z",
  "stages": [
    {
      "ts_start": "2026-03-25T03:21:57.239824Z",
      "ts_end": "2026-03-25T03:21:58.116363Z",
      "duration_sec": 0.877,
      "stage": "chunks",
      "status": "ok",
      "run_id": "20260325T032155842752Z",
      "agent": "Ingestion & Chunking Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/input/道祖是克苏鲁.txt",
          "kind": "novel_text"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/01_chunks.json",
          "kind": "chunks"
        }
      ],
      "metrics": {
        "chunks": 6,
        "max_chars": 1800,
        "limit_chunks": 6,
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-25T03:21:58.132986Z",
      "ts_end": "2026-03-25T03:21:58.220930Z",
      "duration_sec": 0.088,
      "stage": "ontology",
      "status": "ok",
      "run_id": "20260325T032155842752Z",
      "agent": "Ontology & Taxonomy Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/01_chunks.json",
          "kind": "chunks"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/01b_ontology_samples.json",
          "kind": "ontology_samples"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/01c_ontology_candidates.json",
          "kind": "ontology_candidates"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/01d_ontology.json",
          "kind": "ontology_doc"
        }
      ],
      "metrics": {
        "samples": 6,
        "candidate_entity_types": 3,
        "candidate_relation_types": 6,
        "taxonomy_entity_types": 13,
        "taxonomy_relations": 6,
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-25T03:21:58.239579Z",
      "ts_end": "2026-03-25T03:28:57.617883Z",
      "duration_sec": 419.378,
      "stage": "kg",
      "status": "ok",
      "run_id": "20260325T032155842752Z",
      "agent": "Knowledge Graph Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/01_chunks.json",
          "kind": "chunks"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/01d_ontology.json",
          "kind": "ontology_doc"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/02_kg.json",
          "kind": "kg_summary"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/02_kg_store.json",
          "kind": "kg_store"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/02_kg_observations.jsonl",
          "kind": "kg_observations"
        }
      ],
      "metrics": {
        "entities": 37,
        "relations": 37,
        "observations": 121,
        "ambiguous_entity_forks": 1,
        "chunks": 6,
        "ontology_loaded": true,
        "high_density_chunks": 3,
        "supplement_chunks": 1,
        "max_entity_limit": 14,
        "max_relation_limit": 14,
        "kg_observation_rows": 121,
        "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-25T03:28:57.638757Z",
      "ts_end": "2026-03-25T03:28:57.698008Z",
      "duration_sec": 0.059,
      "stage": "type_consolidation",
      "status": "ok",
      "run_id": "20260325T032155842752Z",
      "agent": "Ontology & Taxonomy Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/02_kg_store.json",
          "kind": "kg_store"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/01d_ontology.json",
          "kind": "ontology_doc"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/02b_type_candidates.json",
          "kind": "type_candidates"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/02c_type_consolidation.json",
          "kind": "type_consolidation"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/02d_kg_store_consolidated.json",
          "kind": "kg_store_consolidated"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/02d_kg_consolidated.json",
          "kind": "kg_summary_consolidated"
        }
      ],
      "metrics": {
        "candidates": 30,
        "apply_type_count": 2,
        "apply_subtype_count": 11,
        "review_type_count": 2,
        "review_subtype_count": 10,
        "other_before": 2,
        "other_after": 0,
        "ontology_loaded": true,
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-25T03:28:57.720312Z",
      "ts_end": "2026-03-25T03:28:57.745212Z",
      "duration_sec": 0.025,
      "stage": "entity_registry",
      "status": "ok",
      "run_id": "20260325T032155842752Z",
      "agent": "Entity Registry & Asset Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/02d_kg_store_consolidated.json",
          "kind": "kg_store_consolidated"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/02d_kg_consolidated.json",
          "kind": "kg_summary_consolidated"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/02e_entity_registry.json",
          "kind": "entity_registry"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/02f_entity_visual_cards.json",
          "kind": "entity_visual_cards"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/02g_entity_voice_cards.json",
          "kind": "entity_voice_cards"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/02h_entity_assets.json",
          "kind": "entity_assets"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/logs/stage_artifacts/entity_registry/20260325T032155842752Z__02e_entity_registry.json",
          "kind": "entity_registry_snapshot"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/logs/stage_artifacts/entity_registry/20260325T032155842752Z__02f_entity_visual_cards.json",
          "kind": "entity_visual_cards_snapshot"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/logs/stage_artifacts/entity_registry/20260325T032155842752Z__02g_entity_voice_cards.json",
          "kind": "entity_voice_cards_snapshot"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/logs/stage_artifacts/entity_registry/20260325T032155842752Z__02h_entity_assets.json",
          "kind": "entity_assets_snapshot"
        }
      ],
      "metrics": {
        "entity_registry_entities": 37,
        "entity_visual_cards": 37,
        "entity_voice_cards": 12,
        "entity_asset_bindings": 37,
        "locked_count": 0,
        "needs_review_count": 0,
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-25T03:28:57.767580Z",
      "ts_end": "2026-03-25T03:31:21.243275Z",
      "duration_sec": 143.476,
      "stage": "scenes",
      "status": "ok",
      "run_id": "20260325T032155842752Z",
      "agent": "Scene Segmentation Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/01_chunks.json",
          "kind": "chunks"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/02d_kg_store_consolidated.json",
          "kind": "kg_store_consolidated"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/03_scenes.json",
          "kind": "scenes"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/logs/stage_artifacts/scenes/20260325T032155842752Z__03_scenes.json",
          "kind": "scenes_snapshot"
        }
      ],
      "metrics": {
        "scenes": 24,
        "chunks": 6,
        "continued_scenes": 0,
        "scene_with_characters": 23,
        "scene_with_locations": 13,
        "kg_context_loaded": true,
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-25T03:31:21.264446Z",
      "ts_end": "2026-03-25T03:31:21.276664Z",
      "duration_sec": 0.012,
      "stage": "chronology",
      "status": "ok",
      "run_id": "20260325T032155842752Z",
      "agent": "Chronology & Narrative Time Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/03_scenes.json",
          "kind": "scenes"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/02d_kg_store_consolidated.json",
          "kind": "kg_store_consolidated"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/03b_chronology.json",
          "kind": "chronology"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/logs/stage_artifacts/chronology/20260325T032155842752Z__03b_chronology.json",
          "kind": "chronology_snapshot"
        }
      ],
      "metrics": {
        "scenes": 24,
        "chronology_groups": 19,
        "chronology_edges": 29,
        "chronology_conflicts": 0,
        "low_confidence_scenes": 1,
        "explicit_anchors": 11,
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-25T03:31:21.295811Z",
      "ts_end": "2026-03-25T03:43:44.922017Z",
      "duration_sec": 743.626,
      "stage": "script",
      "status": "ok",
      "run_id": "20260325T032155842752Z",
      "agent": "Script & Shot Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/03_scenes.json",
          "kind": "scenes"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/03b_chronology.json",
          "kind": "chronology"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/02d_kg_consolidated.json",
          "kind": "kg_summary_consolidated"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/04_scripts.json",
          "kind": "scripts"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/logs/stage_artifacts/script/20260325T032155842752Z__04_scripts.json",
          "kind": "scripts_snapshot"
        }
      ],
      "metrics": {
        "scripts": 24,
        "shots": 86,
        "dialogue_lines": 56,
        "narration_shots": 39,
        "chronology_bound_scripts": 24,
        "chronology_non_mainline_scripts": 9,
        "chronology_reordered_scripts": 13,
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-25T03:43:44.944931Z",
      "ts_end": "2026-03-25T03:43:44.946719Z",
      "duration_sec": 0.002,
      "stage": "style_bible",
      "status": "ok",
      "run_id": "20260325T032155842752Z",
      "agent": "Style Bible & Prompt QA Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/02e_entity_registry.json",
          "kind": "entity_registry"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/02f_entity_visual_cards.json",
          "kind": "entity_visual_cards"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/02h_entity_assets.json",
          "kind": "entity_assets"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/04_scripts.json",
          "kind": "scripts"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/04b_style_bible.json",
          "kind": "style_bible"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/logs/stage_artifacts/style_bible/20260325T032155842752Z__04b_style_bible.json",
          "kind": "style_bible_snapshot"
        }
      ],
      "metrics": {
        "fixed_positive_term_count": 9,
        "fixed_negative_term_count": 10,
        "provider_profile_count": 2,
        "manual_override_slot_count": 6,
        "reference_ready_entity_count": 0,
        "script_scene_count": 24,
        "script_shot_count": 86,
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-25T03:43:44.963994Z",
      "ts_end": "2026-03-25T04:09:48.982539Z",
      "duration_sec": 1564.019,
      "stage": "storyboard",
      "status": "ok",
      "run_id": "20260325T032155842752Z",
      "agent": "Storyboard & Prompt Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/04_scripts.json",
          "kind": "scripts"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/03_scenes.json",
          "kind": "scenes"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/03b_chronology.json",
          "kind": "chronology"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/02e_entity_registry.json",
          "kind": "entity_registry"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/02f_entity_visual_cards.json",
          "kind": "entity_visual_cards"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/02h_entity_assets.json",
          "kind": "entity_assets"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/04b_style_bible.json",
          "kind": "style_bible"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/05_storyboard.json",
          "kind": "storyboard"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/logs/stage_artifacts/storyboard/20260325T032155842752Z__05_storyboard.json",
          "kind": "storyboards_snapshot"
        }
      ],
      "metrics": {
        "storyboards": 86,
        "duration_seconds": 412.1,
        "non_mainline_storyboards": 36,
        "visual_noted_storyboards": 86,
        "style_locked_storyboards": 86,
        "dynamic_content_storyboards": 86,
        "bound_entity_uids": 28,
        "bound_visual_card_ids": 28,
        "bound_asset_binding_ids": 28,
        "top_shot_roles": {
          "character": 24,
          "opening": 24,
          "dialogue_or_action": 23,
          "closing": 15
        },
        "top_characters": {
          "李凡": 83,
          "老道": 43,
          "山主": 28,
          "修士": 8,
          "侍婢": 4,
          "童子": 4
        },
        "resumed": false
      }
    },
    {
      "ts_start": "2026-03-25T04:09:49.036432Z",
      "ts_end": "2026-03-25T04:09:49.050998Z",
      "duration_sec": 0.015,
      "stage": "prompt_guard",
      "status": "ok",
      "run_id": "20260325T032155842752Z",
      "agent": "Style Bible & Prompt QA Agent",
      "inputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/05_storyboard.json",
          "kind": "storyboard"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/04b_style_bible.json",
          "kind": "style_bible"
        }
      ],
      "outputs": [
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/05b_storyboard_guard.json",
          "kind": "prompt_guard"
        },
        {
          "path": "/wwwb/aitools/writer/outputs/daozu_prompt_guard_stylefix_coldstart2_20260325/logs/stage_artifacts/prompt_guard/20260325T032155842752Z__05b_storyboard_guard.json",
          "kind": "prompt_guard_snapshot"
        }
      ],
      "metrics": {
        "shot_count": 86,
        "pass_shot_count": 85,
        "warning_shot_count": 1,
        "fail_shot_count": 0,
        "issue_count": 1,
        "error_issue_count": 0,
        "warning_issue_count": 1,
        "english_issue_count": 0,
        "style_pollution_issue_count": 0,
        "missing_block_issue_count": 0,
        "length_drift_issue_count": 1,
        "resumed": false
      }
    }
  ],
  "llm_calls": {
    "total": 61,
    "ok": 61,
    "error": 0
  },
  "run_errors": 0
}