{
  "version": "1.0",
  "generated_at": "2026-03-22T05:49:38.617508Z",
  "candidate": {
    "summary": {
      "run_dir": "daozu_kg_large_20260322_residualfix",
      "run_id": "20260322T045649833344Z",
      "created_at": "2026-03-22T04:56:49.857015Z",
      "out_dir": "outputs/daozu_kg_large_20260322_residualfix",
      "input_path": "/wwwb/aitools/writer/input/道祖是克苏鲁.txt",
      "input_sha256": "5c05796b90b9a1956f3fe767cd8288965db478acac5dbed44f64419f0fea185d",
      "provider": "deepseek",
      "video_provider": "doubao",
      "enable_video": false,
      "style_preset": "cinematic, detailed, consistent character design, coherent lighting",
      "limits": {
        "max_chars": 1800,
        "limit_chunks": 30,
        "limit_scenes": null,
        "limit_shots": null
      },
      "status": "ok",
      "errors": 0,
      "counts": {
        "chunks": 30,
        "ontology_samples": 30,
        "ontology_candidate_entity_types": 7,
        "ontology_candidate_relation_types": 8,
        "ontology_entity_taxonomy": 13,
        "ontology_relation_taxonomy": 8,
        "observations": 637,
        "entities": 123,
        "relations": 168,
        "type_candidates": 93,
        "type_apply_type_count": 6,
        "type_apply_subtype_count": 28,
        "type_other_before": 6,
        "type_other_after": 0,
        "scenes": 0,
        "scripts": 0,
        "shots": 0,
        "storyboards": 0,
        "segments": 0,
        "captions": 0,
        "video_tasks": 0,
        "video_results": 0
      },
      "paths": {
        "project": "project.json",
        "manifest": "run_manifest.json",
        "chunks": "01_chunks.json",
        "ontology_samples": "01b_ontology_samples.json",
        "ontology_candidates": "01c_ontology_candidates.json",
        "ontology_doc": "01d_ontology.json",
        "kg": "02_kg.json",
        "kg_store": "02_kg_store.json",
        "kg_observations": "02_kg_observations.jsonl",
        "type_candidates": "02b_type_candidates.json",
        "type_consolidation": "02c_type_consolidation.json",
        "kg_consolidated": "02d_kg_consolidated.json",
        "kg_store_consolidated": "02d_kg_store_consolidated.json",
        "scenes": "03_scenes.json",
        "scripts": "04_scripts.json",
        "storyboard": "05_storyboard.json",
        "timeline": "06_timeline.json",
        "video_tasks": "07_video_tasks.json",
        "video_results": "07_video_results.json",
        "events": "logs/run_events.jsonl",
        "errors": "logs/run_errors.jsonl",
        "stage_timings": "logs/stage_timings.jsonl",
        "llm_calls": "logs/llm_calls.jsonl",
        "report_html": "logs/run_report.html",
        "report_md": "logs/run_report.md",
        "metrics": "logs/run_metrics.json"
      },
      "updated_at": "2026-03-22T05:49:38.604595Z",
      "run_uid": "20260322T045649833344Z",
      "run_key": "20260322T045649833344Z",
      "trace_scope": "live",
      "is_current_live": true,
      "archive_rel": "",
      "web_paths": {
        "run_root": "",
        "logs_dir": "/novel2video/runs/daozu_kg_large_20260322_residualfix/logs/",
        "llm_dir": "/novel2video/runs/daozu_kg_large_20260322_residualfix/logs/llm/",
        "manifest": "/novel2video/runs/daozu_kg_large_20260322_residualfix/run_manifest.json",
        "project": "/novel2video/runs/daozu_kg_large_20260322_residualfix/project.json",
        "report_html": "/novel2video/runs/daozu_kg_large_20260322_residualfix/logs/run_report.html",
        "report_md": "/novel2video/runs/daozu_kg_large_20260322_residualfix/logs/run_report.md",
        "metrics": "/novel2video/runs/daozu_kg_large_20260322_residualfix/logs/run_metrics.json",
        "events": "/novel2video/runs/daozu_kg_large_20260322_residualfix/logs/run_events.jsonl",
        "errors": "/novel2video/runs/daozu_kg_large_20260322_residualfix/logs/run_errors.jsonl",
        "stage_timings": "/novel2video/runs/daozu_kg_large_20260322_residualfix/logs/stage_timings.jsonl",
        "llm_calls": "/novel2video/runs/daozu_kg_large_20260322_residualfix/logs/llm_calls.jsonl"
      }
    },
    "counts": {
      "chunks": 30,
      "ontology_samples": 30,
      "ontology_candidate_entity_types": 7,
      "ontology_candidate_relation_types": 8,
      "ontology_entity_taxonomy": 13,
      "ontology_relation_taxonomy": 8,
      "observations": 637,
      "entities": 123,
      "relations": 168,
      "type_candidates": 93,
      "type_apply_type_count": 6,
      "type_apply_subtype_count": 28,
      "type_other_before": 6,
      "type_other_after": 0,
      "scenes": 0,
      "scripts": 0,
      "shots": 0,
      "storyboards": 0,
      "segments": 0,
      "captions": 0,
      "video_tasks": 0,
      "video_results": 0,
      "llm_calls": 38,
      "run_errors": 0
    },
    "stage_metrics": {
      "chunks": {
        "status": "ok",
        "duration_sec": 0.89,
        "metrics": {
          "chunks": 30,
          "max_chars": 1800,
          "limit_chunks": 30,
          "resumed": false
        }
      },
      "ontology": {
        "status": "ok",
        "duration_sec": 0.113,
        "metrics": {
          "samples": 30,
          "candidate_entity_types": 7,
          "candidate_relation_types": 8,
          "taxonomy_entity_types": 13,
          "taxonomy_relations": 8,
          "resumed": false
        }
      },
      "kg": {
        "status": "ok",
        "duration_sec": 1776.583,
        "metrics": {
          "entities": 123,
          "relations": 168,
          "observations": 637,
          "ambiguous_entity_forks": 20,
          "chunks": 30,
          "ontology_loaded": true,
          "high_density_chunks": 12,
          "supplement_chunks": 8,
          "max_entity_limit": 14,
          "max_relation_limit": 14,
          "kg_observation_rows": 637,
          "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
        }
      },
      "type_consolidation": {
        "status": "ok",
        "duration_sec": 0.161,
        "metrics": {
          "candidates": 93,
          "apply_type_count": 6,
          "apply_subtype_count": 28,
          "review_type_count": 13,
          "review_subtype_count": 34,
          "other_before": 6,
          "other_after": 0,
          "ontology_loaded": true,
          "resumed": false
        }
      }
    },
    "quality_metrics": {
      "chunks": {
        "chunk_count": 30,
        "avg_chunk_chars": 1737.133,
        "max_chunk_chars": 1800,
        "avg_fill_ratio": 0.965074,
        "oversize_chunks": 0
      },
      "ontology": {
        "sample_count": 30,
        "sample_coverage_ratio": 1.0,
        "candidate_entity_types": 7,
        "candidate_relation_types": 8,
        "taxonomy_entity_types": 13,
        "taxonomy_relations": 8
      },
      "kg": {
        "entity_count": 123,
        "relation_count": 168,
        "observation_count": 637,
        "entity_per_chunk": 4.1,
        "relation_per_chunk": 5.6,
        "observation_per_chunk": 21.233333,
        "ambiguous_entity_forks": 20,
        "supplement_ratio": 0.666667,
        "ontology_loaded": true
      },
      "type_consolidation": {
        "candidate_count": 93,
        "auto_apply_total": 34,
        "review_total": 47,
        "other_before": 6,
        "other_after": 0,
        "other_reduction": 6,
        "other_reduction_ratio": 1.0,
        "ontology_loaded": true
      }
    }
  },
  "baseline": {
    "summary": {
      "run_dir": "daozu_kg_large_20260322_relationfix",
      "run_id": "20260322T034230712687Z",
      "created_at": "2026-03-22T03:42:30.736589Z",
      "out_dir": "outputs/daozu_kg_large_20260322_relationfix",
      "input_path": "/wwwb/aitools/writer/input/道祖是克苏鲁.txt",
      "input_sha256": "5c05796b90b9a1956f3fe767cd8288965db478acac5dbed44f64419f0fea185d",
      "provider": "deepseek",
      "video_provider": "doubao",
      "enable_video": false,
      "style_preset": "cinematic, detailed, consistent character design, coherent lighting",
      "limits": {
        "max_chars": 1800,
        "limit_chunks": 30,
        "limit_scenes": null,
        "limit_shots": null
      },
      "status": "ok",
      "errors": 0,
      "counts": {
        "chunks": 30,
        "ontology_samples": 30,
        "ontology_candidate_entity_types": 7,
        "ontology_candidate_relation_types": 8,
        "ontology_entity_taxonomy": 13,
        "ontology_relation_taxonomy": 8,
        "observations": 614,
        "entities": 125,
        "relations": 150,
        "type_candidates": 93,
        "type_apply_type_count": 10,
        "type_apply_subtype_count": 27,
        "type_other_before": 11,
        "type_other_after": 1,
        "scenes": 0,
        "scripts": 0,
        "shots": 0,
        "storyboards": 0,
        "segments": 0,
        "captions": 0,
        "video_tasks": 0,
        "video_results": 0
      },
      "paths": {
        "project": "project.json",
        "manifest": "run_manifest.json",
        "chunks": "01_chunks.json",
        "ontology_samples": "01b_ontology_samples.json",
        "ontology_candidates": "01c_ontology_candidates.json",
        "ontology_doc": "01d_ontology.json",
        "kg": "02_kg.json",
        "kg_store": "02_kg_store.json",
        "kg_observations": "02_kg_observations.jsonl",
        "type_candidates": "02b_type_candidates.json",
        "type_consolidation": "02c_type_consolidation.json",
        "kg_consolidated": "02d_kg_consolidated.json",
        "kg_store_consolidated": "02d_kg_store_consolidated.json",
        "scenes": "03_scenes.json",
        "scripts": "04_scripts.json",
        "storyboard": "05_storyboard.json",
        "timeline": "06_timeline.json",
        "video_tasks": "07_video_tasks.json",
        "video_results": "07_video_results.json",
        "events": "logs/run_events.jsonl",
        "errors": "logs/run_errors.jsonl",
        "stage_timings": "logs/stage_timings.jsonl",
        "llm_calls": "logs/llm_calls.jsonl",
        "report_html": "logs/run_report.html",
        "report_md": "logs/run_report.md",
        "metrics": "logs/run_metrics.json"
      },
      "updated_at": "2026-03-22T05:49:38.615567Z",
      "run_uid": "20260322T034230712687Z",
      "run_key": "20260322T034230712687Z",
      "trace_scope": "live",
      "is_current_live": true,
      "archive_rel": "",
      "web_paths": {
        "run_root": "",
        "logs_dir": "/novel2video/runs/daozu_kg_large_20260322_relationfix/logs/",
        "llm_dir": "/novel2video/runs/daozu_kg_large_20260322_relationfix/logs/llm/",
        "manifest": "/novel2video/runs/daozu_kg_large_20260322_relationfix/run_manifest.json",
        "project": "/novel2video/runs/daozu_kg_large_20260322_relationfix/project.json",
        "report_html": "/novel2video/runs/daozu_kg_large_20260322_relationfix/logs/run_report.html",
        "report_md": "/novel2video/runs/daozu_kg_large_20260322_relationfix/logs/run_report.md",
        "metrics": "/novel2video/runs/daozu_kg_large_20260322_relationfix/logs/run_metrics.json",
        "events": "/novel2video/runs/daozu_kg_large_20260322_relationfix/logs/run_events.jsonl",
        "errors": "/novel2video/runs/daozu_kg_large_20260322_relationfix/logs/run_errors.jsonl",
        "stage_timings": "/novel2video/runs/daozu_kg_large_20260322_relationfix/logs/stage_timings.jsonl",
        "llm_calls": "/novel2video/runs/daozu_kg_large_20260322_relationfix/logs/llm_calls.jsonl"
      }
    },
    "counts": {
      "chunks": 30,
      "ontology_samples": 30,
      "ontology_candidate_entity_types": 7,
      "ontology_candidate_relation_types": 8,
      "ontology_entity_taxonomy": 13,
      "ontology_relation_taxonomy": 8,
      "observations": 614,
      "entities": 125,
      "relations": 150,
      "type_candidates": 93,
      "type_apply_type_count": 10,
      "type_apply_subtype_count": 27,
      "type_other_before": 11,
      "type_other_after": 1,
      "scenes": 0,
      "scripts": 0,
      "shots": 0,
      "storyboards": 0,
      "segments": 0,
      "captions": 0,
      "video_tasks": 0,
      "video_results": 0,
      "llm_calls": 39,
      "run_errors": 0
    },
    "stage_metrics": {
      "chunks": {
        "status": "ok",
        "duration_sec": 0.876,
        "metrics": {
          "chunks": 30,
          "max_chars": 1800,
          "limit_chunks": 30,
          "resumed": false
        }
      },
      "ontology": {
        "status": "ok",
        "duration_sec": 0.124,
        "metrics": {
          "samples": 30,
          "candidate_entity_types": 7,
          "candidate_relation_types": 8,
          "taxonomy_entity_types": 13,
          "taxonomy_relations": 8,
          "resumed": false
        }
      },
      "kg": {
        "status": "ok",
        "duration_sec": 1498.857,
        "metrics": {
          "entities": 125,
          "relations": 150,
          "observations": 614,
          "ambiguous_entity_forks": 17,
          "chunks": 30,
          "ontology_loaded": true,
          "high_density_chunks": 12,
          "supplement_chunks": 9,
          "max_entity_limit": 14,
          "max_relation_limit": 14,
          "kg_observation_rows": 614,
          "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
        }
      }
    },
    "quality_metrics": {
      "chunks": {
        "chunk_count": 30,
        "avg_chunk_chars": 1737.133,
        "max_chunk_chars": 1800,
        "avg_fill_ratio": 0.965074,
        "oversize_chunks": 0
      },
      "ontology": {
        "sample_count": 30,
        "sample_coverage_ratio": 1.0,
        "candidate_entity_types": 7,
        "candidate_relation_types": 8,
        "taxonomy_entity_types": 13,
        "taxonomy_relations": 8
      },
      "kg": {
        "entity_count": 125,
        "relation_count": 150,
        "observation_count": 614,
        "entity_per_chunk": 4.166667,
        "relation_per_chunk": 5.0,
        "observation_per_chunk": 20.466667,
        "ambiguous_entity_forks": 17,
        "supplement_ratio": 0.75,
        "ontology_loaded": true
      },
      "type_consolidation": {
        "candidate_count": 93,
        "auto_apply_total": 37,
        "review_total": 0,
        "other_before": 11,
        "other_after": 1,
        "other_reduction": 10,
        "other_reduction_ratio": 0.909091,
        "ontology_loaded": false
      }
    }
  },
  "candidate_validation": {
    "artifact_paths": {
      "chunks": "outputs/daozu_kg_large_20260322_residualfix/01_chunks.json",
      "ontology_samples": "outputs/daozu_kg_large_20260322_residualfix/01b_ontology_samples.json",
      "ontology_candidates": "outputs/daozu_kg_large_20260322_residualfix/01c_ontology_candidates.json",
      "ontology_doc": "outputs/daozu_kg_large_20260322_residualfix/01d_ontology.json",
      "kg_store": "outputs/daozu_kg_large_20260322_residualfix/02_kg_store.json",
      "kg_summary": "outputs/daozu_kg_large_20260322_residualfix/02_kg.json",
      "type_candidates": "outputs/daozu_kg_large_20260322_residualfix/02b_type_candidates.json",
      "type_consolidation": "outputs/daozu_kg_large_20260322_residualfix/02c_type_consolidation.json"
    },
    "missing": [],
    "errors": {
      "chunks": [],
      "ontology_samples": [],
      "ontology_candidates": [],
      "ontology_doc": [],
      "kg_store": [],
      "kg_summary": [],
      "type_candidates": [],
      "type_consolidation": []
    },
    "is_valid": true
  },
  "baseline_validation": {
    "artifact_paths": {
      "chunks": "outputs/daozu_kg_large_20260322_relationfix/01_chunks.json",
      "ontology_samples": "outputs/daozu_kg_large_20260322_relationfix/01b_ontology_samples.json",
      "ontology_candidates": "outputs/daozu_kg_large_20260322_relationfix/01c_ontology_candidates.json",
      "ontology_doc": "outputs/daozu_kg_large_20260322_relationfix/01d_ontology.json",
      "kg_store": "outputs/daozu_kg_large_20260322_relationfix/02_kg_store.json",
      "kg_summary": "outputs/daozu_kg_large_20260322_relationfix/02_kg.json",
      "type_candidates": "outputs/daozu_kg_large_20260322_relationfix/02b_type_candidates.json",
      "type_consolidation": "outputs/daozu_kg_large_20260322_relationfix/02c_type_consolidation.json"
    },
    "missing": [],
    "errors": {
      "chunks": [],
      "ontology_samples": [],
      "ontology_candidates": [],
      "ontology_doc": [],
      "kg_store": [],
      "kg_summary": [],
      "type_candidates": [],
      "type_consolidation": []
    },
    "is_valid": true
  },
  "diff": {
    "chunks": {
      "baseline": 30,
      "candidate": 30,
      "delta": 0,
      "pct": 0.0
    },
    "ontology_samples": {
      "baseline": 30,
      "candidate": 30,
      "delta": 0,
      "pct": 0.0
    },
    "ontology_candidate_entity_types": {
      "baseline": 7,
      "candidate": 7,
      "delta": 0,
      "pct": 0.0
    },
    "ontology_candidate_relation_types": {
      "baseline": 8,
      "candidate": 8,
      "delta": 0,
      "pct": 0.0
    },
    "ontology_entity_taxonomy": {
      "baseline": 13,
      "candidate": 13,
      "delta": 0,
      "pct": 0.0
    },
    "ontology_relation_taxonomy": {
      "baseline": 8,
      "candidate": 8,
      "delta": 0,
      "pct": 0.0
    },
    "entities": {
      "baseline": 125,
      "candidate": 123,
      "delta": -2,
      "pct": -1.6
    },
    "relations": {
      "baseline": 150,
      "candidate": 168,
      "delta": 18,
      "pct": 12.0
    },
    "observations": {
      "baseline": 614,
      "candidate": 637,
      "delta": 23,
      "pct": 3.746
    },
    "type_candidates": {
      "baseline": 93,
      "candidate": 93,
      "delta": 0,
      "pct": 0.0
    },
    "type_apply_type_count": {
      "baseline": 10,
      "candidate": 6,
      "delta": -4,
      "pct": -40.0
    },
    "type_apply_subtype_count": {
      "baseline": 27,
      "candidate": 28,
      "delta": 1,
      "pct": 3.704
    },
    "type_other_before": {
      "baseline": 11,
      "candidate": 6,
      "delta": -5,
      "pct": -45.455
    },
    "type_other_after": {
      "baseline": 1,
      "candidate": 0,
      "delta": -1,
      "pct": -100.0
    },
    "llm_calls": {
      "baseline": 39,
      "candidate": 38,
      "delta": -1,
      "pct": -2.564
    },
    "run_errors": {
      "baseline": 0,
      "candidate": 0,
      "delta": 0,
      "pct": null
    }
  },
  "quality_overview": [
    {
      "stage": "chunks",
      "title": "Chunks",
      "baseline_status": "ok",
      "candidate_status": "ok",
      "baseline_duration_sec": 0.876,
      "candidate_duration_sec": 0.89,
      "metrics": [
        {
          "key": "chunk_count",
          "label": "Chunk 数",
          "kind": "int",
          "baseline": 30,
          "candidate": 30,
          "delta": 0.0,
          "pct": 0.0
        },
        {
          "key": "avg_chunk_chars",
          "label": "平均 Chunk 字数",
          "kind": "float1",
          "baseline": 1737.133,
          "candidate": 1737.133,
          "delta": 0.0,
          "pct": 0.0
        },
        {
          "key": "max_chunk_chars",
          "label": "最大 Chunk 字数",
          "kind": "int",
          "baseline": 1800,
          "candidate": 1800,
          "delta": 0.0,
          "pct": 0.0
        },
        {
          "key": "avg_fill_ratio",
          "label": "平均填充率",
          "kind": "pct1",
          "baseline": 0.965074,
          "candidate": 0.965074,
          "delta": 0.0,
          "pct": 0.0
        },
        {
          "key": "oversize_chunks",
          "label": "超长 Chunk 数",
          "kind": "int",
          "baseline": 0,
          "candidate": 0,
          "delta": 0.0,
          "pct": null
        }
      ]
    },
    {
      "stage": "ontology",
      "title": "Ontology",
      "baseline_status": "ok",
      "candidate_status": "ok",
      "baseline_duration_sec": 0.124,
      "candidate_duration_sec": 0.113,
      "metrics": [
        {
          "key": "sample_count",
          "label": "抽样数",
          "kind": "int",
          "baseline": 30,
          "candidate": 30,
          "delta": 0.0,
          "pct": 0.0
        },
        {
          "key": "sample_coverage_ratio",
          "label": "抽样覆盖率",
          "kind": "pct1",
          "baseline": 1.0,
          "candidate": 1.0,
          "delta": 0.0,
          "pct": 0.0
        },
        {
          "key": "candidate_entity_types",
          "label": "候选实体类型数",
          "kind": "int",
          "baseline": 7,
          "candidate": 7,
          "delta": 0.0,
          "pct": 0.0
        },
        {
          "key": "candidate_relation_types",
          "label": "候选关系类型数",
          "kind": "int",
          "baseline": 8,
          "candidate": 8,
          "delta": 0.0,
          "pct": 0.0
        },
        {
          "key": "taxonomy_entity_types",
          "label": "实体 Taxonomy 大小",
          "kind": "int",
          "baseline": 13,
          "candidate": 13,
          "delta": 0.0,
          "pct": 0.0
        },
        {
          "key": "taxonomy_relations",
          "label": "关系 Taxonomy 大小",
          "kind": "int",
          "baseline": 8,
          "candidate": 8,
          "delta": 0.0,
          "pct": 0.0
        }
      ]
    },
    {
      "stage": "kg",
      "title": "KG",
      "baseline_status": "ok",
      "candidate_status": "ok",
      "baseline_duration_sec": 1498.857,
      "candidate_duration_sec": 1776.583,
      "metrics": [
        {
          "key": "entity_count",
          "label": "实体数",
          "kind": "int",
          "baseline": 125,
          "candidate": 123,
          "delta": -2.0,
          "pct": -1.6
        },
        {
          "key": "relation_count",
          "label": "关系数",
          "kind": "int",
          "baseline": 150,
          "candidate": 168,
          "delta": 18.0,
          "pct": 12.0
        },
        {
          "key": "observation_count",
          "label": "Observation 数",
          "kind": "int",
          "baseline": 614,
          "candidate": 637,
          "delta": 23.0,
          "pct": 3.746
        },
        {
          "key": "entity_per_chunk",
          "label": "每 Chunk 实体数",
          "kind": "float2",
          "baseline": 4.166667,
          "candidate": 4.1,
          "delta": -0.066667,
          "pct": -1.6
        },
        {
          "key": "relation_per_chunk",
          "label": "每 Chunk 关系数",
          "kind": "float2",
          "baseline": 5.0,
          "candidate": 5.6,
          "delta": 0.6,
          "pct": 12.0
        },
        {
          "key": "observation_per_chunk",
          "label": "每 Chunk Observation 数",
          "kind": "float2",
          "baseline": 20.466667,
          "candidate": 21.233333,
          "delta": 0.766666,
          "pct": 3.746
        },
        {
          "key": "ambiguous_entity_forks",
          "label": "歧义分叉数",
          "kind": "int",
          "baseline": 17,
          "candidate": 20,
          "delta": 3.0,
          "pct": 17.647
        },
        {
          "key": "supplement_ratio",
          "label": "补抽占比",
          "kind": "pct1",
          "baseline": 0.75,
          "candidate": 0.666667,
          "delta": -0.083333,
          "pct": -11.111
        },
        {
          "key": "ontology_loaded",
          "label": "已加载 Ontology",
          "kind": "bool",
          "baseline": true,
          "candidate": true,
          "delta": null,
          "pct": null,
          "changed": false
        }
      ]
    },
    {
      "stage": "type_consolidation",
      "title": "Type Consolidation",
      "baseline_status": "",
      "candidate_status": "ok",
      "baseline_duration_sec": 0.0,
      "candidate_duration_sec": 0.161,
      "metrics": [
        {
          "key": "candidate_count",
          "label": "候选实体数",
          "kind": "int",
          "baseline": 93,
          "candidate": 93,
          "delta": 0.0,
          "pct": 0.0
        },
        {
          "key": "auto_apply_total",
          "label": "自动应用总数",
          "kind": "int",
          "baseline": 37,
          "candidate": 34,
          "delta": -3.0,
          "pct": -8.108
        },
        {
          "key": "review_total",
          "label": "待复核总数",
          "kind": "int",
          "baseline": 0,
          "candidate": 47,
          "delta": 47.0,
          "pct": null
        },
        {
          "key": "other_before",
          "label": "收敛前 Other",
          "kind": "int",
          "baseline": 11,
          "candidate": 6,
          "delta": -5.0,
          "pct": -45.455
        },
        {
          "key": "other_after",
          "label": "收敛后 Other",
          "kind": "int",
          "baseline": 1,
          "candidate": 0,
          "delta": -1.0,
          "pct": -100.0
        },
        {
          "key": "other_reduction",
          "label": "Other 减少数",
          "kind": "int",
          "baseline": 10,
          "candidate": 6,
          "delta": -4.0,
          "pct": -40.0
        },
        {
          "key": "other_reduction_ratio",
          "label": "Other 压缩率",
          "kind": "pct1",
          "baseline": 0.909091,
          "candidate": 1.0,
          "delta": 0.090909,
          "pct": 10.0
        },
        {
          "key": "ontology_loaded",
          "label": "已加载 Ontology",
          "kind": "bool",
          "baseline": false,
          "candidate": true,
          "delta": null,
          "pct": null,
          "changed": true
        }
      ]
    }
  ],
  "golden_manifest": {},
  "status": "ok"
}