{
  "schema_version": "data_health_v1",
  "trade_date": "20260603",
  "generated_at": "2026-06-03T20:22:03",
  "overall": "yellow",
  "windows_collect": {
    "sync_manifest": {
      "schema_version": "sector_wave_mac_import_windows_drop_v1",
      "trade_date": "20260603",
      "status": "ok",
      "created_at": "2026-06-03T19:18:32",
      "project_root": "/Users/tonyyu/sector_wave_agent",
      "drop_dir": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260603",
      "transfer_manifest": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260603/transfer_manifest_20260603.json",
      "imported_count": 8,
      "error_count": 0,
      "imported": [
        {
          "relative_path": "evidence/concept_sector_universe_probe_20260603.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260603/evidence/concept_sector_universe_probe_20260603.json",
          "dst": "/Users/tonyyu/sector_wave_agent/evidence/concept_sector_universe_probe_20260603.json",
          "sha256": "097c0e52e2a6fdae518ef41a30aca7730b37cb8adfb85ef49873dbc3f84d2431",
          "size_bytes": 54968,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "evidence/evidence_pack_20260603.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260603/evidence/evidence_pack_20260603.json",
          "dst": "/Users/tonyyu/sector_wave_agent/evidence/evidence_pack_20260603.json",
          "sha256": "d4ada93a61ec46c053f69457def46b270654d8d5cecaaa1e5935f61dabf20ab0",
          "size_bytes": 2384903,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "evidence/manifest_20260603.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260603/evidence/manifest_20260603.json",
          "dst": "/Users/tonyyu/sector_wave_agent/evidence/manifest_20260603.json",
          "sha256": "3bb3549cafb90b3712cbaf73ab85c0951741bdc4469a090e7ecb179b184f9d81",
          "size_bytes": 1184,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "evidence/price_refs_20260603.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260603/evidence/price_refs_20260603.json",
          "dst": "/Users/tonyyu/sector_wave_agent/evidence/price_refs_20260603.json",
          "sha256": "484cef5446754156318b77974020d57417258aabd5a7c6129115a8d05567b490",
          "size_bytes": 1738266,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "evidence/technical_facts_compact_20260603.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260603/evidence/technical_facts_compact_20260603.json",
          "dst": "/Users/tonyyu/sector_wave_agent/evidence/technical_facts_compact_20260603.json",
          "sha256": "4461bb0a243d9f16c2c7cbe386304574895f6cf8a0c824cdeec5dc5f617cfd71",
          "size_bytes": 604037,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "runtime/20260603_runtime_manifest.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260603/runtime/20260603_runtime_manifest.json",
          "dst": "/Users/tonyyu/sector_wave_agent/runtime/20260603_runtime_manifest.json",
          "sha256": "c5649bd6caea80961d9901a245cedba64880baef3c39c9d43a29810a3c09c773",
          "size_bytes": 2733,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "runtime/20260603_sdk_health_probe.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260603/runtime/20260603_sdk_health_probe.json",
          "dst": "/Users/tonyyu/sector_wave_agent/runtime/20260603_sdk_health_probe.json",
          "sha256": "260476e22d71e9c56c2129a8284382d1c27ec0e38c7970581986ab09aa5c1087",
          "size_bytes": 447,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "reports/outcome/20260602_plan_20260603_outcome_raw.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260603/reports/outcome/20260602_plan_20260603_outcome_raw.json",
          "dst": "/Users/tonyyu/sector_wave_agent/reports/outcome/20260602_plan_20260603_outcome_raw.json",
          "sha256": "c9ff292f5bae8c467d58331cd2b727a8921f8d5fecdb735fbb9ba9dbb2ebda2c",
          "size_bytes": 5138911,
          "action": "copied",
          "backup_path": null
        }
      ],
      "errors": []
    },
    "runtime_manifest": {
      "schema_version": "windows_daily_runtime_manifest_v1",
      "trade_date": "20260603",
      "updated_at": "2026-06-03T19:17:45",
      "entries": [
        {
          "role": "outcome_collector_resolve",
          "status": "resolved",
          "recorded_at": "2026-06-03T19:15:00",
          "duration_sec": null,
          "selected_script": {
            "path": "collect_trade_plan_outcome_data_current.py",
            "exists": true,
            "size_bytes": 2737,
            "sha256": "ecd8f658ef58af64b878a0cacbf9ebfa1a6c9db35e01a6277979bd561988da21"
          },
          "selected_config": {
            "path": "config_trade_plan_outcome_current.json",
            "exists": true,
            "size_bytes": 425,
            "sha256": "b35b4b02a5db541a14ce2c304d28d8b302e955ce8d28185c99f8ede0ebd4406c"
          },
          "alias": {
            "script": "collect_trade_plan_outcome_data_current.py",
            "config": "config_trade_plan_outcome_current.json"
          },
          "fallback": {
            "script": "collect_trade_plan_outcome_data_20260430_v2.py",
            "config": "config_trade_plan_outcome_20260430_v2.json"
          }
        },
        {
          "role": "evidence_builder_resolve",
          "status": "resolved",
          "recorded_at": "2026-06-03T19:15:00",
          "duration_sec": null,
          "selected_script": {
            "path": "concept_sector_wave_evidence_builder_current.py",
            "exists": true,
            "size_bytes": 2765,
            "sha256": "d9ca6fa4d58fc79403e5e86db1f7c9c383d0c87cfe2a6e5b490a6491e4c9eeca"
          },
          "selected_config": {
            "path": "config_concept_sector_wave_current.json",
            "exists": true,
            "size_bytes": 475,
            "sha256": "262497a13ddb0fb5dd6bb31bf96b17ea025a1e7acd2e6527390c4cffc0015f06"
          },
          "alias": {
            "script": "concept_sector_wave_evidence_builder_current.py",
            "config": "config_concept_sector_wave_current.json"
          },
          "fallback": {
            "script": "concept_sector_wave_evidence_builder_v1_4_2_3_patch2a_eligibility_tighten.py",
            "config": "config_concept_sector_wave_v1_4_2_3_patch2a_eligibility_tighten.json"
          }
        },
        {
          "role": "windows_to_mac_sync_prepare",
          "status": "ready",
          "recorded_at": "2026-06-03T19:17:45",
          "duration_sec": null,
          "selected_script": {
            "path": "D:\\sector_wave_agent\\tools\\windows_push_sector_wave_to_mac.ps1",
            "exists": true,
            "size_bytes": 6707,
            "sha256": "7f6362817c361e0affcec94de087a6103a07dd13efc91cbe7c1fc4e8406c19a2"
          },
          "selected_config": null,
          "alias": {
            "script": "",
            "config": ""
          },
          "fallback": {
            "script": "",
            "config": ""
          }
        }
      ]
    },
    "script_sha256": "d9ca6fa4d58fc79403e5e86db1f7c9c383d0c87cfe2a6e5b490a6491e4c9eeca",
    "outcome_script_sha256": "ecd8f658ef58af64b878a0cacbf9ebfa1a6c9db35e01a6277979bd561988da21",
    "alias_resolution": {
      "outcome_collector_resolve": {
        "alias_script": "collect_trade_plan_outcome_data_current.py",
        "selected_script": "collect_trade_plan_outcome_data_current.py",
        "selected_exists": true,
        "selected_sha256": "ecd8f658ef58af64b878a0cacbf9ebfa1a6c9db35e01a6277979bd561988da21"
      },
      "evidence_builder_resolve": {
        "alias_script": "concept_sector_wave_evidence_builder_current.py",
        "selected_script": "concept_sector_wave_evidence_builder_current.py",
        "selected_exists": true,
        "selected_sha256": "d9ca6fa4d58fc79403e5e86db1f7c9c383d0c87cfe2a6e5b490a6491e4c9eeca"
      },
      "windows_to_mac_sync_prepare": {
        "alias_script": "",
        "selected_script": "D:\\sector_wave_agent\\tools\\windows_push_sector_wave_to_mac.ps1",
        "selected_exists": true,
        "selected_sha256": "7f6362817c361e0affcec94de087a6103a07dd13efc91cbe7c1fc4e8406c19a2"
      }
    },
    "sdk_probe": {
      "schema_version": "windows_gm_sdk_health_v1",
      "trade_date": "20260603",
      "checked_at": "2026-06-03T19:14:57",
      "gm_import_ok": true,
      "gm_version": "<module 'gm.__version__' from 'C:\\\\Users\\\\xiaomei\\\\AppData\\\\Local\\\\Programs\\\\Python\\\\Python313\\\\Lib\\\\site-packages\\\\gm\\\\__version__.py'>",
      "gm_token_present": true,
      "probe_symbol": "SHSE.000001",
      "probe_ok": true,
      "error": null,
      "probe_rows": 1
    },
    "files": {
      "evidence_pack": {
        "path": "/Users/tonyyu/sector_wave_agent/evidence/evidence_pack_20260603.json",
        "exists": true,
        "size_bytes": 2384903,
        "checksum": "d4ada93a61ec46c053f69457def46b270654d8d5cecaaa1e5935f61dabf20ab0",
        "json_ok": true,
        "row_count": null
      },
      "price_refs": {
        "path": "/Users/tonyyu/sector_wave_agent/evidence/price_refs_20260603.json",
        "exists": true,
        "size_bytes": 1738266,
        "checksum": "484cef5446754156318b77974020d57417258aabd5a7c6129115a8d05567b490",
        "json_ok": true,
        "row_count": null
      },
      "technical_facts_compact": {
        "path": "/Users/tonyyu/sector_wave_agent/evidence/technical_facts_compact_20260603.json",
        "exists": true,
        "size_bytes": 604037,
        "checksum": "4461bb0a243d9f16c2c7cbe386304574895f6cf8a0c824cdeec5dc5f617cfd71",
        "json_ok": true,
        "row_count": null
      },
      "manifest": {
        "path": "/Users/tonyyu/sector_wave_agent/evidence/manifest_20260603.json",
        "exists": true,
        "size_bytes": 1184,
        "checksum": "3bb3549cafb90b3712cbaf73ab85c0951741bdc4469a090e7ecb179b184f9d81",
        "json_ok": true,
        "row_count": null
      }
    },
    "anomalies": []
  },
  "transfer": {
    "checksum_ok": true,
    "manifest_path": "/Users/tonyyu/sector_wave_agent/reports/run_manifest/20260603_windows_sync_manifest.json"
  },
  "pipeline": {
    "acceptance": {
      "available": true,
      "overall_pass": true,
      "failed_count": 0,
      "warn_count": 0,
      "fatal": [],
      "trade_date": "20260603"
    },
    "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/20260603_agent_summary_v2.json",
    "exists": true,
    "schema_version": "v2",
    "active_plan_count": 0,
    "conditional_plan_count": 0,
    "observe_only_count": 30,
    "fields_complete": true,
    "missing_fields": []
  },
  "quality_status": {
    "schema_version": "quality_status_v1",
    "trade_date": "20260603",
    "created_at": "2026-06-03T19:59:45",
    "overall_grade": "B",
    "blocks_publish": false,
    "external_context": {
      "status": "unavailable",
      "path": "/Users/tonyyu/sector_wave_agent/external_context/external_context_20260603_strict_v1.json",
      "fallback_used": true,
      "model": null,
      "search_success": false,
      "search_quality": "unavailable",
      "search_scope": "compact_theme_and_representative_stocks",
      "raw_findings_count": 0,
      "normalized_event_count": 0,
      "limitations": [
        "search_notes_unavailable"
      ],
      "covered_themes": []
    },
    "v2_shadow": {
      "status": "safe_stub",
      "path": "/Users/tonyyu/sector_wave_agent/external_context/external_context_20260603_v2_shadow.json",
      "is_stub": true,
      "stub_reason": "shadow_real_data_not_generated_before_hermes_input",
      "boundary_ok": true,
      "source": "build_v2_shadow_safe_stub",
      "coverage": {},
      "risk_findings": [
        {
          "risk": "项目 Gemini Search/grounding 资讯层连续不稳定",
          "severity": "warning",
          "detail": "Gemini provider connectivity 与项目 Gemini Search/grounding external_context strict_v1 稳定性需要分开表述；本 V2 Shadow 不得替代 Strict Gate。",
          "action": "require_confirmation"
        }
      ]
    },
    "gm_sector_coverage": {
      "status": "ok",
      "path": "/Users/tonyyu/sector_wave_agent/reports/audit/20260603_gm_sector_coverage_audit.json",
      "anomalies": []
    },
    "data_integrity": {
      "evidence_pack_ok": true,
      "price_refs_ok": true,
      "technical_facts_ok": true,
      "manifest_ok": true
    },
    "notes": [
      "strict_v1 外部资讯为 fallback/review 状态",
      "V2 Shadow 使用 safe stub"
    ]
  },
  "external_context": {
    "quality": "unavailable",
    "fallback_used": true
  }
}