{
  "schema_version": "data_health_v1",
  "trade_date": "20260610",
  "generated_at": "2026-06-10T18:48:58",
  "overall": "yellow",
  "windows_collect": {
    "sync_manifest": {
      "schema_version": "sector_wave_mac_import_windows_drop_v1",
      "trade_date": "20260610",
      "status": "ok",
      "created_at": "2026-06-10T18:31:13",
      "project_root": "/Users/tonyyu/sector_wave_agent",
      "drop_dir": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260610",
      "transfer_manifest": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260610/transfer_manifest_20260610.json",
      "imported_count": 8,
      "error_count": 0,
      "imported": [
        {
          "relative_path": "evidence/concept_sector_universe_probe_20260610.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260610/evidence/concept_sector_universe_probe_20260610.json",
          "dst": "/Users/tonyyu/sector_wave_agent/evidence/concept_sector_universe_probe_20260610.json",
          "sha256": "87c731e967ab363aa9421f85e5df99c89fd9b3a235efc69fd8973ceb97122acf",
          "size_bytes": 52191,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "evidence/evidence_pack_20260610.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260610/evidence/evidence_pack_20260610.json",
          "dst": "/Users/tonyyu/sector_wave_agent/evidence/evidence_pack_20260610.json",
          "sha256": "889ca61d99b734a81345c503365aae89c81c1eddc386a0bdd89bb999e80f469a",
          "size_bytes": 1791062,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "evidence/manifest_20260610.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260610/evidence/manifest_20260610.json",
          "dst": "/Users/tonyyu/sector_wave_agent/evidence/manifest_20260610.json",
          "sha256": "aa3ce15c4bc9317775548fcece0b86f28415bc313658fd044e5f6ca2a0dab2a2",
          "size_bytes": 1179,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "evidence/price_refs_20260610.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260610/evidence/price_refs_20260610.json",
          "dst": "/Users/tonyyu/sector_wave_agent/evidence/price_refs_20260610.json",
          "sha256": "00979a86e7c4a648e1495bca7f416b19342b3f9bdf3af9f0eb0dcbec43af09f9",
          "size_bytes": 1364468,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "evidence/technical_facts_compact_20260610.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260610/evidence/technical_facts_compact_20260610.json",
          "dst": "/Users/tonyyu/sector_wave_agent/evidence/technical_facts_compact_20260610.json",
          "sha256": "5dd7967a821806ab27bdb864448dc6c606575b5f9a54789b20887a671118170d",
          "size_bytes": 493747,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "runtime/20260610_runtime_manifest.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260610/runtime/20260610_runtime_manifest.json",
          "dst": "/Users/tonyyu/sector_wave_agent/runtime/20260610_runtime_manifest.json",
          "sha256": "239b9232eb72cd3e172a1bbfd2e4a0ecd51812bb6a518bb8b680205f0f6abe01",
          "size_bytes": 2733,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "runtime/20260610_sdk_health_probe.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260610/runtime/20260610_sdk_health_probe.json",
          "dst": "/Users/tonyyu/sector_wave_agent/runtime/20260610_sdk_health_probe.json",
          "sha256": "754839ae2ae606a21ea1483cd3d2423ba9df9e0a7c1b4b410167b24958d525fa",
          "size_bytes": 447,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "reports/outcome/20260609_plan_20260610_outcome_raw.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260610/reports/outcome/20260609_plan_20260610_outcome_raw.json",
          "dst": "/Users/tonyyu/sector_wave_agent/reports/outcome/20260609_plan_20260610_outcome_raw.json",
          "sha256": "71af42374319f1abfaf0a814d8405cb0e776e1dc55cdaedbef47f9edc7eee012",
          "size_bytes": 5199274,
          "action": "copied",
          "backup_path": null
        }
      ],
      "errors": []
    },
    "runtime_manifest": {
      "schema_version": "windows_daily_runtime_manifest_v1",
      "trade_date": "20260610",
      "updated_at": "2026-06-10T18:25:38",
      "entries": [
        {
          "role": "outcome_collector_resolve",
          "status": "resolved",
          "recorded_at": "2026-06-10T18:21:38",
          "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-10T18:21:39",
          "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-10T18:25:38",
          "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": "20260610",
      "checked_at": "2026-06-10T18:21:31",
      "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_20260610.json",
        "exists": true,
        "size_bytes": 1791062,
        "checksum": "889ca61d99b734a81345c503365aae89c81c1eddc386a0bdd89bb999e80f469a",
        "json_ok": true,
        "row_count": null
      },
      "price_refs": {
        "path": "/Users/tonyyu/sector_wave_agent/evidence/price_refs_20260610.json",
        "exists": true,
        "size_bytes": 1364468,
        "checksum": "00979a86e7c4a648e1495bca7f416b19342b3f9bdf3af9f0eb0dcbec43af09f9",
        "json_ok": true,
        "row_count": null
      },
      "technical_facts_compact": {
        "path": "/Users/tonyyu/sector_wave_agent/evidence/technical_facts_compact_20260610.json",
        "exists": true,
        "size_bytes": 493747,
        "checksum": "5dd7967a821806ab27bdb864448dc6c606575b5f9a54789b20887a671118170d",
        "json_ok": true,
        "row_count": null
      },
      "manifest": {
        "path": "/Users/tonyyu/sector_wave_agent/evidence/manifest_20260610.json",
        "exists": true,
        "size_bytes": 1179,
        "checksum": "aa3ce15c4bc9317775548fcece0b86f28415bc313658fd044e5f6ca2a0dab2a2",
        "json_ok": true,
        "row_count": null
      }
    },
    "anomalies": []
  },
  "transfer": {
    "checksum_ok": true,
    "manifest_path": "/Users/tonyyu/sector_wave_agent/reports/run_manifest/20260610_windows_sync_manifest.json"
  },
  "pipeline": {
    "acceptance": {
      "available": true,
      "overall_pass": true,
      "failed_count": 0,
      "warn_count": 0,
      "fatal": [],
      "trade_date": "20260610"
    },
    "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/20260610_agent_summary_v2.json",
    "exists": true,
    "schema_version": "v2",
    "active_plan_count": 0,
    "conditional_plan_count": 0,
    "observe_only_count": 0,
    "fields_complete": true,
    "missing_fields": []
  },
  "quality_status": {
    "schema_version": "quality_status_v1",
    "trade_date": "20260610",
    "created_at": "2026-06-10T18:31:53",
    "overall_grade": "B",
    "blocks_publish": false,
    "external_context": {
      "status": "unavailable",
      "path": "/Users/tonyyu/sector_wave_agent/external_context/external_context_20260610_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_20260610_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/20260610_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
  }
}