{
  "schema_version": "data_health_v1",
  "trade_date": "20260526",
  "generated_at": "2026-05-26T19:50:54",
  "overall": "yellow",
  "windows_collect": {
    "sync_manifest": {
      "schema_version": "sector_wave_mac_import_windows_drop_v1",
      "trade_date": "20260526",
      "status": "ok",
      "created_at": "2026-05-26T19:42:16",
      "project_root": "/Users/tonyyu/sector_wave_agent",
      "drop_dir": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260526",
      "transfer_manifest": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260526/transfer_manifest_20260526.json",
      "imported_count": 8,
      "error_count": 0,
      "imported": [
        {
          "relative_path": "evidence/concept_sector_universe_probe_20260526.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260526/evidence/concept_sector_universe_probe_20260526.json",
          "dst": "/Users/tonyyu/sector_wave_agent/evidence/concept_sector_universe_probe_20260526.json",
          "sha256": "1be4e25e806db2cfb6acaf12261396ed3903914f2ad37432f9d2adefa304d216",
          "size_bytes": 53202,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "evidence/evidence_pack_20260526.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260526/evidence/evidence_pack_20260526.json",
          "dst": "/Users/tonyyu/sector_wave_agent/evidence/evidence_pack_20260526.json",
          "sha256": "ac67b99852ee3d22055863ce5010e6a448b37dc2e70935564f665a80c2a931df",
          "size_bytes": 1931055,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "evidence/manifest_20260526.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260526/evidence/manifest_20260526.json",
          "dst": "/Users/tonyyu/sector_wave_agent/evidence/manifest_20260526.json",
          "sha256": "31039fc646927b20de18d7e3e0d39ed830181d64ca741801e4609d69c6e19ef6",
          "size_bytes": 1179,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "evidence/price_refs_20260526.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260526/evidence/price_refs_20260526.json",
          "dst": "/Users/tonyyu/sector_wave_agent/evidence/price_refs_20260526.json",
          "sha256": "14d3dfb57b4b6513700974ec7d7467f3e32f85973668209f8bb3713cb303f01d",
          "size_bytes": 1444856,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "evidence/technical_facts_compact_20260526.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260526/evidence/technical_facts_compact_20260526.json",
          "dst": "/Users/tonyyu/sector_wave_agent/evidence/technical_facts_compact_20260526.json",
          "sha256": "b000d283cf3e4641e5ce6c05b8b9f9986f76393e7ee4475ef9f0fe5a5fb4eabf",
          "size_bytes": 507037,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "runtime/20260526_runtime_manifest.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260526/runtime/20260526_runtime_manifest.json",
          "dst": "/Users/tonyyu/sector_wave_agent/runtime/20260526_runtime_manifest.json",
          "sha256": "705bf725d13f56ecced56c67d791c5d14cc623499a218a8182c79b1f0923891b",
          "size_bytes": 4710,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "runtime/20260526_sdk_health_probe.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260526/runtime/20260526_sdk_health_probe.json",
          "dst": "/Users/tonyyu/sector_wave_agent/runtime/20260526_sdk_health_probe.json",
          "sha256": "0929b6afa79225b909fd46b41a3af77d2748df0a762073b1e684de575985425d",
          "size_bytes": 447,
          "action": "copied",
          "backup_path": null
        },
        {
          "relative_path": "reports/outcome/20260525_plan_20260526_outcome_raw.json",
          "src": "/Users/tonyyu/sector_wave_agent/inbox/windows/20260526/reports/outcome/20260525_plan_20260526_outcome_raw.json",
          "dst": "/Users/tonyyu/sector_wave_agent/reports/outcome/20260525_plan_20260526_outcome_raw.json",
          "sha256": "c177f378fa586ac3653f5f2be4bc0e1c541c362eea3ed6cedd4b22697af7888e",
          "size_bytes": 5525017,
          "action": "copied",
          "backup_path": null
        }
      ],
      "errors": []
    },
    "runtime_manifest": {
      "schema_version": "windows_daily_runtime_manifest_v1",
      "trade_date": "20260526",
      "updated_at": "2026-05-26T19:31:15",
      "entries": [
        {
          "role": "outcome_collector_resolve",
          "status": "resolved",
          "recorded_at": "2026-05-26T19:25:10",
          "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-26T19:25:10",
          "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": "outcome_collector_resolve",
          "status": "resolved",
          "recorded_at": "2026-05-26T19:28:27",
          "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-26T19:28:28",
          "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-26T19:31:15",
          "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": "20260526",
      "checked_at": "2026-05-26T19:28:25",
      "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_20260526.json",
        "exists": true,
        "size_bytes": 1931055,
        "checksum": "ac67b99852ee3d22055863ce5010e6a448b37dc2e70935564f665a80c2a931df",
        "json_ok": true,
        "row_count": null
      },
      "price_refs": {
        "path": "/Users/tonyyu/sector_wave_agent/evidence/price_refs_20260526.json",
        "exists": true,
        "size_bytes": 1444856,
        "checksum": "14d3dfb57b4b6513700974ec7d7467f3e32f85973668209f8bb3713cb303f01d",
        "json_ok": true,
        "row_count": null
      },
      "technical_facts_compact": {
        "path": "/Users/tonyyu/sector_wave_agent/evidence/technical_facts_compact_20260526.json",
        "exists": true,
        "size_bytes": 507037,
        "checksum": "b000d283cf3e4641e5ce6c05b8b9f9986f76393e7ee4475ef9f0fe5a5fb4eabf",
        "json_ok": true,
        "row_count": null
      },
      "manifest": {
        "path": "/Users/tonyyu/sector_wave_agent/evidence/manifest_20260526.json",
        "exists": true,
        "size_bytes": 1179,
        "checksum": "31039fc646927b20de18d7e3e0d39ed830181d64ca741801e4609d69c6e19ef6",
        "json_ok": true,
        "row_count": null
      }
    },
    "anomalies": []
  },
  "transfer": {
    "checksum_ok": true,
    "manifest_path": "/Users/tonyyu/sector_wave_agent/reports/run_manifest/20260526_windows_sync_manifest.json"
  },
  "pipeline": {
    "acceptance": {
      "available": true,
      "overall_pass": true,
      "failed_count": 0,
      "warn_count": 0,
      "fatal": [],
      "trade_date": "20260526"
    },
    "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/20260526_agent_summary_v2.json",
    "exists": true,
    "schema_version": "v2",
    "active_plan_count": 0,
    "conditional_plan_count": 4,
    "observe_only_count": 26,
    "fields_complete": true,
    "missing_fields": []
  },
  "quality_status": {
    "schema_version": "quality_status_v1",
    "trade_date": "20260526",
    "created_at": "2026-05-26T19:48:34",
    "overall_grade": "B",
    "blocks_publish": false,
    "external_context": {
      "status": "partial",
      "path": "/Users/tonyyu/sector_wave_agent/external_context/external_context_20260526_strict_v1.json",
      "fallback_used": false,
      "model": null
    },
    "v2_shadow": {
      "status": "safe_stub",
      "path": "/Users/tonyyu/sector_wave_agent/external_context/external_context_20260526_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/20260526_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=safe_stub source=build_v2_shadow_safe_stub; Airtap/X=True kept=4 quality=accepted_same_day_social_signals; cross_verification_json_loaded=False",
    "fallback_used": false
  }
}