{
  "schema_version": "data_health_v1",
  "trade_date": "20260529",
  "generated_at": "2026-05-29T19:22:22",
  "overall": "yellow",
  "windows_collect": {
    "sync_manifest": {
      "schema_version": "sector_wave_mac_import_windows_drop_v1",
      "trade_date": "20260529",
      "status": "ok",
      "created_at": "2026-05-29T19:14:30",
      "project_root": "/Users/tonyyu/sector_wave_agent",
      "drop_dir": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260529",
      "transfer_manifest": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260529/transfer_manifest_20260529.json",
      "imported_count": 8,
      "error_count": 0,
      "imported": [
        {
          "relative_path": "evidence/concept_sector_universe_probe_20260529.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260529/evidence/concept_sector_universe_probe_20260529.json",
          "dst": "/Users/tonyyu/sector_wave_agent/evidence/concept_sector_universe_probe_20260529.json",
          "sha256": "3d776be2f946ae5aaa568c23be047b0e8bc0930369e56d3e66b504414aa5b8ab",
          "size_bytes": 50786,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "evidence/evidence_pack_20260529.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260529/evidence/evidence_pack_20260529.json",
          "dst": "/Users/tonyyu/sector_wave_agent/evidence/evidence_pack_20260529.json",
          "sha256": "27bfcf6b6f9735ea72fc634573ce297d30aa5551cbca39aafc4fdf609441f0f4",
          "size_bytes": 2199557,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "evidence/manifest_20260529.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260529/evidence/manifest_20260529.json",
          "dst": "/Users/tonyyu/sector_wave_agent/evidence/manifest_20260529.json",
          "sha256": "f3b3977c7d5e1cb2ea7dafadb031a2844277bb35aa05cc1465cbb3f8a457cc90",
          "size_bytes": 1178,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "evidence/price_refs_20260529.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260529/evidence/price_refs_20260529.json",
          "dst": "/Users/tonyyu/sector_wave_agent/evidence/price_refs_20260529.json",
          "sha256": "deda533e087658b16483e25d6d718e773672b3a7c91df8f1107e94d71e4c74a8",
          "size_bytes": 1754248,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "evidence/technical_facts_compact_20260529.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260529/evidence/technical_facts_compact_20260529.json",
          "dst": "/Users/tonyyu/sector_wave_agent/evidence/technical_facts_compact_20260529.json",
          "sha256": "72546d159d5d9541fb090255b13ac694f50947505332327fcff212908341f956",
          "size_bytes": 623180,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "runtime/20260529_runtime_manifest.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260529/runtime/20260529_runtime_manifest.json",
          "dst": "/Users/tonyyu/sector_wave_agent/runtime/20260529_runtime_manifest.json",
          "sha256": "55eade0a88d744b0d9661160ee2e51c62f1c202683139e274bf38337bceae1df",
          "size_bytes": 2733,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "runtime/20260529_sdk_health_probe.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260529/runtime/20260529_sdk_health_probe.json",
          "dst": "/Users/tonyyu/sector_wave_agent/runtime/20260529_sdk_health_probe.json",
          "sha256": "9624e0ce9883934648083a2a3d2541884b13f29454ed021552d13b199320935b",
          "size_bytes": 447,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "reports/outcome/20260528_plan_20260529_outcome_raw.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260529/reports/outcome/20260528_plan_20260529_outcome_raw.json",
          "dst": "/Users/tonyyu/sector_wave_agent/reports/outcome/20260528_plan_20260529_outcome_raw.json",
          "sha256": "0860f1d68f8befb467903dd74ae2f47c920018f4c6413baef71e0f2ef46a59b9",
          "size_bytes": 4939589,
          "action": "copied",
          "backup_path": null
        }
      ],
      "errors": []
    },
    "runtime_manifest": {
      "schema_version": "windows_daily_runtime_manifest_v1",
      "trade_date": "20260529",
      "updated_at": "2026-05-29T19:13:36",
      "entries": [
        {
          "role": "outcome_collector_resolve",
          "status": "resolved",
          "recorded_at": "2026-05-29T19:10:26",
          "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-29T19:10:26",
          "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-29T19:13:36",
          "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": "20260529",
      "checked_at": "2026-05-29T19:10:16",
      "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_20260529.json",
        "exists": true,
        "size_bytes": 2199557,
        "checksum": "27bfcf6b6f9735ea72fc634573ce297d30aa5551cbca39aafc4fdf609441f0f4",
        "json_ok": true,
        "row_count": null
      },
      "price_refs": {
        "path": "/Users/tonyyu/sector_wave_agent/evidence/price_refs_20260529.json",
        "exists": true,
        "size_bytes": 1754248,
        "checksum": "deda533e087658b16483e25d6d718e773672b3a7c91df8f1107e94d71e4c74a8",
        "json_ok": true,
        "row_count": null
      },
      "technical_facts_compact": {
        "path": "/Users/tonyyu/sector_wave_agent/evidence/technical_facts_compact_20260529.json",
        "exists": true,
        "size_bytes": 623180,
        "checksum": "72546d159d5d9541fb090255b13ac694f50947505332327fcff212908341f956",
        "json_ok": true,
        "row_count": null
      },
      "manifest": {
        "path": "/Users/tonyyu/sector_wave_agent/evidence/manifest_20260529.json",
        "exists": true,
        "size_bytes": 1178,
        "checksum": "f3b3977c7d5e1cb2ea7dafadb031a2844277bb35aa05cc1465cbb3f8a457cc90",
        "json_ok": true,
        "row_count": null
      }
    },
    "anomalies": []
  },
  "transfer": {
    "checksum_ok": true,
    "manifest_path": "/Users/tonyyu/sector_wave_agent/reports/run_manifest/20260529_windows_sync_manifest.json"
  },
  "pipeline": {
    "acceptance": {
      "available": true,
      "overall_pass": true,
      "failed_count": 0,
      "warn_count": 0,
      "fatal": [],
      "trade_date": "20260529"
    },
    "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/20260529_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": "20260529",
    "created_at": "2026-05-29T19:22:17",
    "overall_grade": "B",
    "blocks_publish": false,
    "external_context": {
      "status": "unavailable",
      "path": "/Users/tonyyu/sector_wave_agent/external_context/external_context_20260529_strict_v1.json",
      "fallback_used": true,
      "model": null
    },
    "v2_shadow": {
      "status": "safe_stub",
      "path": "/Users/tonyyu/sector_wave_agent/external_context/external_context_20260529_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/20260529_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
  }
}