{
  "schema_version": "data_health_v1",
  "trade_date": "20260527",
  "generated_at": "2026-05-27T19:03:02",
  "overall": "yellow",
  "windows_collect": {
    "sync_manifest": {
      "schema_version": "sector_wave_mac_import_windows_drop_v1",
      "trade_date": "20260527",
      "status": "ok",
      "created_at": "2026-05-27T18:57:11",
      "project_root": "/Users/tonyyu/sector_wave_agent",
      "drop_dir": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260527",
      "transfer_manifest": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260527/transfer_manifest_20260527.json",
      "imported_count": 8,
      "error_count": 0,
      "imported": [
        {
          "relative_path": "evidence/concept_sector_universe_probe_20260527.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260527/evidence/concept_sector_universe_probe_20260527.json",
          "dst": "/Users/tonyyu/sector_wave_agent/evidence/concept_sector_universe_probe_20260527.json",
          "sha256": "a1be8ca36aa9083f7921b7bdb51601a706915b7147d067785ee3780dbd2e36f3",
          "size_bytes": 47865,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "evidence/evidence_pack_20260527.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260527/evidence/evidence_pack_20260527.json",
          "dst": "/Users/tonyyu/sector_wave_agent/evidence/evidence_pack_20260527.json",
          "sha256": "766d72417acc66ff32dfb852afa7e14e9d3b7ba5b3773b7308cf43a05971bdd5",
          "size_bytes": 1702302,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "evidence/manifest_20260527.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260527/evidence/manifest_20260527.json",
          "dst": "/Users/tonyyu/sector_wave_agent/evidence/manifest_20260527.json",
          "sha256": "f2103b80a08fc03309bf046ca4718f8a21ccb9a9fd80633001392d6dc4298f8f",
          "size_bytes": 1179,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "evidence/price_refs_20260527.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260527/evidence/price_refs_20260527.json",
          "dst": "/Users/tonyyu/sector_wave_agent/evidence/price_refs_20260527.json",
          "sha256": "06f5bcf6c23608a5c4d492483e481e28a5fc4cc8abf539d09b7ff054b6d9057a",
          "size_bytes": 1363247,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "evidence/technical_facts_compact_20260527.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260527/evidence/technical_facts_compact_20260527.json",
          "dst": "/Users/tonyyu/sector_wave_agent/evidence/technical_facts_compact_20260527.json",
          "sha256": "eb92413ac6f4824c41d5e1b3b88abf95b165cccd86a4062223e5a4a82fb720e5",
          "size_bytes": 484868,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "runtime/20260527_runtime_manifest.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260527/runtime/20260527_runtime_manifest.json",
          "dst": "/Users/tonyyu/sector_wave_agent/runtime/20260527_runtime_manifest.json",
          "sha256": "a16c00b12a1876f7c620444f5b641b1f4358de2abd3e77d532170efab0383295",
          "size_bytes": 2733,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "runtime/20260527_sdk_health_probe.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260527/runtime/20260527_sdk_health_probe.json",
          "dst": "/Users/tonyyu/sector_wave_agent/runtime/20260527_sdk_health_probe.json",
          "sha256": "06526797441787d465a20a0db02b1c444b4724f067fd8b4bd080125974f8d729",
          "size_bytes": 447,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "reports/outcome/20260526_plan_20260527_outcome_raw.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260527/reports/outcome/20260526_plan_20260527_outcome_raw.json",
          "dst": "/Users/tonyyu/sector_wave_agent/reports/outcome/20260526_plan_20260527_outcome_raw.json",
          "sha256": "5099560726469bb5cdf89dcb07829ed1df6328350f9110465d51fc126041ed53",
          "size_bytes": 6116261,
          "action": "copied",
          "backup_path": null
        }
      ],
      "errors": []
    },
    "runtime_manifest": {
      "schema_version": "windows_daily_runtime_manifest_v1",
      "trade_date": "20260527",
      "updated_at": "2026-05-27T18:55:01",
      "entries": [
        {
          "role": "outcome_collector_resolve",
          "status": "resolved",
          "recorded_at": "2026-05-27T18:51:50",
          "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-05-27T18:51:51",
          "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-05-27T18:55:01",
          "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": "20260527",
      "checked_at": "2026-05-27T18:51:48",
      "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_20260527.json",
        "exists": true,
        "size_bytes": 1702302,
        "checksum": "766d72417acc66ff32dfb852afa7e14e9d3b7ba5b3773b7308cf43a05971bdd5",
        "json_ok": true,
        "row_count": null
      },
      "price_refs": {
        "path": "/Users/tonyyu/sector_wave_agent/evidence/price_refs_20260527.json",
        "exists": true,
        "size_bytes": 1363247,
        "checksum": "06f5bcf6c23608a5c4d492483e481e28a5fc4cc8abf539d09b7ff054b6d9057a",
        "json_ok": true,
        "row_count": null
      },
      "technical_facts_compact": {
        "path": "/Users/tonyyu/sector_wave_agent/evidence/technical_facts_compact_20260527.json",
        "exists": true,
        "size_bytes": 484868,
        "checksum": "eb92413ac6f4824c41d5e1b3b88abf95b165cccd86a4062223e5a4a82fb720e5",
        "json_ok": true,
        "row_count": null
      },
      "manifest": {
        "path": "/Users/tonyyu/sector_wave_agent/evidence/manifest_20260527.json",
        "exists": true,
        "size_bytes": 1179,
        "checksum": "f2103b80a08fc03309bf046ca4718f8a21ccb9a9fd80633001392d6dc4298f8f",
        "json_ok": true,
        "row_count": null
      }
    },
    "anomalies": []
  },
  "transfer": {
    "checksum_ok": true,
    "manifest_path": "/Users/tonyyu/sector_wave_agent/reports/run_manifest/20260527_windows_sync_manifest.json"
  },
  "pipeline": {
    "acceptance": {
      "available": true,
      "overall_pass": true,
      "failed_count": 0,
      "warn_count": 0,
      "fatal": [],
      "trade_date": "20260527"
    },
    "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/20260527_agent_summary_v2.json",
    "exists": true,
    "schema_version": "v2",
    "active_plan_count": 0,
    "conditional_plan_count": 0,
    "observe_only_count": 25,
    "fields_complete": true,
    "missing_fields": []
  },
  "quality_status": {
    "schema_version": "quality_status_v1",
    "trade_date": "20260527",
    "created_at": "2026-05-27T19:02:52",
    "overall_grade": "B",
    "blocks_publish": false,
    "external_context": {
      "status": "unavailable",
      "path": "/Users/tonyyu/sector_wave_agent/external_context/external_context_20260527_strict_v1.json",
      "fallback_used": true,
      "model": null
    },
    "v2_shadow": {
      "status": "safe_stub",
      "path": "/Users/tonyyu/sector_wave_agent/external_context/external_context_20260527_v2_shadow.json",
      "is_stub": true,
      "stub_reason": "shadow_real_data_not_generated_before_hermes_input",
      "boundary_ok": true
    },
    "gm_sector_coverage": {
      "status": "ok",
      "path": "/Users/tonyyu/sector_wave_agent/reports/audit/20260527_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": "Gemini strict_v1=unavailable; External Context V2 Shadow=safe_stub source=build_v2_shadow_safe_stub; Airtap/X=None kept=None quality=None; cross_verification_json_loaded=False",
    "fallback_used": true
  }
}