{
  "schema_version": "data_health_v1",
  "trade_date": "20260525",
  "generated_at": "2026-05-26T15:01:47",
  "overall": "yellow",
  "windows_collect": {
    "sync_manifest": {
      "schema_version": "sector_wave_mac_import_windows_drop_v1",
      "trade_date": "20260525",
      "status": "ok",
      "created_at": "2026-05-25T20:55:12",
      "project_root": "/Users/tonyyu/sector_wave_agent",
      "drop_dir": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260525",
      "transfer_manifest": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260525/transfer_manifest_20260525.json",
      "imported_count": 6,
      "error_count": 0,
      "imported": [
        {
          "relative_path": "evidence/concept_sector_universe_probe_20260525.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260525/evidence/concept_sector_universe_probe_20260525.json",
          "dst": "/Users/tonyyu/sector_wave_agent/evidence/concept_sector_universe_probe_20260525.json",
          "sha256": "9225e6fffcd7d9d57d6b1f25402bacd1ce15289fa80d4f638ef097157e2f31ef",
          "size_bytes": 64149,
          "action": "overwritten_with_backup",
          "backup_path": "/Users/tonyyu/sector_wave_agent/backups/windows_sync/20260525/20260525_205512/evidence/concept_sector_universe_probe_20260525.json"
        },
        {
          "relative_path": "evidence/evidence_pack_20260525.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260525/evidence/evidence_pack_20260525.json",
          "dst": "/Users/tonyyu/sector_wave_agent/evidence/evidence_pack_20260525.json",
          "sha256": "f3db68d8fbb96cce99924c7f9bcca4fd86dd1093a24d853e00ede6409967e98d",
          "size_bytes": 3406220,
          "action": "overwritten_with_backup",
          "backup_path": "/Users/tonyyu/sector_wave_agent/backups/windows_sync/20260525/20260525_205512/evidence/evidence_pack_20260525.json"
        },
        {
          "relative_path": "evidence/manifest_20260525.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260525/evidence/manifest_20260525.json",
          "dst": "/Users/tonyyu/sector_wave_agent/evidence/manifest_20260525.json",
          "sha256": "eda95797db3cc40b988ec82e2ca50acf29fe2f4fdb6a33952fd70a2a00b2339b",
          "size_bytes": 1185,
          "action": "overwritten_with_backup",
          "backup_path": "/Users/tonyyu/sector_wave_agent/backups/windows_sync/20260525/20260525_205512/evidence/manifest_20260525.json"
        },
        {
          "relative_path": "evidence/price_refs_20260525.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260525/evidence/price_refs_20260525.json",
          "dst": "/Users/tonyyu/sector_wave_agent/evidence/price_refs_20260525.json",
          "sha256": "56af48aea058fe57eda1ecf19c5ffb5262ec7bdf5d950c4ecd4da2bd2c056e90",
          "size_bytes": 2466588,
          "action": "overwritten_with_backup",
          "backup_path": "/Users/tonyyu/sector_wave_agent/backups/windows_sync/20260525/20260525_205512/evidence/price_refs_20260525.json"
        },
        {
          "relative_path": "evidence/technical_facts_compact_20260525.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260525/evidence/technical_facts_compact_20260525.json",
          "dst": "/Users/tonyyu/sector_wave_agent/evidence/technical_facts_compact_20260525.json",
          "sha256": "687db83f3d011c912ee5688a594e4a1c65608d22da8e800307cb13b7fa8ac23a",
          "size_bytes": 858378,
          "action": "overwritten_with_backup",
          "backup_path": "/Users/tonyyu/sector_wave_agent/backups/windows_sync/20260525/20260525_205512/evidence/technical_facts_compact_20260525.json"
        },
        {
          "relative_path": "reports/outcome/20260522_plan_20260525_outcome_raw.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260525/reports/outcome/20260522_plan_20260525_outcome_raw.json",
          "dst": "/Users/tonyyu/sector_wave_agent/reports/outcome/20260522_plan_20260525_outcome_raw.json",
          "sha256": "9218e42d29e7302050708024cc38bb30a689063044dd11ed260e47fa8c713a29",
          "size_bytes": 4882138,
          "action": "overwritten_with_backup",
          "backup_path": "/Users/tonyyu/sector_wave_agent/backups/windows_sync/20260525/20260525_205512/reports/outcome/20260522_plan_20260525_outcome_raw.json"
        }
      ],
      "errors": []
    },
    "runtime_manifest": null,
    "script_sha256": null,
    "sdk_probe": null,
    "files": {
      "evidence_pack": {
        "path": "/Users/tonyyu/sector_wave_agent/evidence/evidence_pack_20260525.json",
        "exists": true,
        "size_bytes": 3406220,
        "checksum": "f3db68d8fbb96cce99924c7f9bcca4fd86dd1093a24d853e00ede6409967e98d",
        "json_ok": true,
        "row_count": null
      },
      "price_refs": {
        "path": "/Users/tonyyu/sector_wave_agent/evidence/price_refs_20260525.json",
        "exists": true,
        "size_bytes": 2466588,
        "checksum": "56af48aea058fe57eda1ecf19c5ffb5262ec7bdf5d950c4ecd4da2bd2c056e90",
        "json_ok": true,
        "row_count": null
      },
      "technical_facts_compact": {
        "path": "/Users/tonyyu/sector_wave_agent/evidence/technical_facts_compact_20260525.json",
        "exists": true,
        "size_bytes": 858378,
        "checksum": "687db83f3d011c912ee5688a594e4a1c65608d22da8e800307cb13b7fa8ac23a",
        "json_ok": true,
        "row_count": null
      },
      "manifest": {
        "path": "/Users/tonyyu/sector_wave_agent/evidence/manifest_20260525.json",
        "exists": true,
        "size_bytes": 1185,
        "checksum": "eda95797db3cc40b988ec82e2ca50acf29fe2f4fdb6a33952fd70a2a00b2339b",
        "json_ok": true,
        "row_count": null
      }
    },
    "anomalies": [
      "runtime_manifest_missing",
      "sdk_probe_missing"
    ]
  },
  "transfer": {
    "checksum_ok": true,
    "manifest_path": "/Users/tonyyu/sector_wave_agent/reports/run_manifest/20260525_windows_sync_manifest.json"
  },
  "pipeline": {
    "acceptance": {
      "available": true,
      "overall_pass": true,
      "failed_count": 0,
      "warn_count": 0,
      "fatal": [],
      "trade_date": "20260525"
    },
    "delivery": {
      "available": true,
      "ready_for_feishu_push": true,
      "files_count": 8,
      "boundary": {
        "external_context_v2_shadow": "audit-only/shadow-only",
        "can_upgrade_strict_gate": false,
        "can_downgrade_strict_gate": false,
        "can_directly_modify_strict_gate": false
      },
      "status": "ready_for_feishu_push"
    },
    "ready_for_feishu_push": true,
    "agent_summary_exists": true
  },
  "agent_summary": {
    "path": "/Users/tonyyu/sector_wave_agent/reports/json/20260525_agent_summary_v2.json",
    "exists": true,
    "schema_version": "v2",
    "active_plan_count": 1,
    "conditional_plan_count": 5,
    "observe_only_count": 24,
    "fields_complete": true,
    "missing_fields": []
  },
  "quality_status": {
    "schema_version": "quality_status_v1",
    "trade_date": "20260525",
    "created_at": "2026-05-25T21:26:30",
    "overall_grade": "B",
    "blocks_publish": false,
    "external_context": {
      "status": "partial",
      "path": "/Users/tonyyu/sector_wave_agent/external_context/external_context_20260525_strict_v1.json",
      "fallback_used": false,
      "model": null
    },
    "v2_shadow": {
      "status": "minimal_fallback_stub",
      "path": "/Users/tonyyu/sector_wave_agent/external_context/external_context_20260525_v2_shadow.json",
      "is_stub": true,
      "stub_reason": null,
      "boundary_ok": true
    },
    "gm_sector_coverage": {
      "status": "ok",
      "path": "/Users/tonyyu/sector_wave_agent/reports/audit/20260525_gm_sector_coverage_audit.json",
      "anomalies": []
    },
    "data_integrity": {
      "evidence_pack_ok": true,
      "price_refs_ok": true,
      "technical_facts_ok": true,
      "manifest_ok": true
    },
    "notes": [
      "V2 Shadow 使用 safe stub"
    ]
  },
  "external_context": {
    "quality": "Gemini strict_v1=partial; External Context V2 Shadow=minimal_fallback_stub source=free_web_deepseek_normalized_missing_safe_stub; Airtap/X=True kept=2 quality=accepted_same_day_social_signals; cross_verification_json_loaded=False",
    "fallback_used": false
  }
}