1
2026-07-19 228d838fdb7f7dde7edc4993fdbb9654c9c31df7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
{
  "schema_version": "1.0",
  "run_id": "RUN-ANA-WUJI-BASELINE-PILOT-20260607-001",
  "generated_at": "2026-06-08T00:21:00+08:00",
  "overall_status": "PASS_WITH_MINUTE_BOUNDARY",
  "stage_result": "SOURCE_DB_DIRECT_PASS_MINUTE_BOUNDARY_RECORDED",
  "pass_count": 17,
  "held_count": 0,
  "fail_count": 0,
  "checks": [
    {
      "check_id": "STATIC-RUN-CONFIG-001",
      "category": "run_config",
      "status": "PASS",
      "detail": "run_config parses and daily price source is a_share_daily_price."
    },
    {
      "check_id": "STATIC-MAPPING-001",
      "category": "baseline_mapping",
      "status": "PASS",
      "detail": "baseline_rule_mapping rows=32, duplicate_rule_ids=0."
    },
    {
      "check_id": "STATIC-MAPPING-002",
      "category": "baseline_mapping",
      "status": "PASS",
      "detail": "missing required mapping fields count=0."
    },
    {
      "check_id": "STATIC-MAPPING-003",
      "category": "baseline_mapping",
      "status": "PASS",
      "detail": "execution modes observed: code,code_plus_manual,ledger,manual,manual_plus_code; ledger is an approved execution_mode for buy/sell separation bookkeeping."
    },
    {
      "check_id": "STATIC-EXCLUDE-001",
      "category": "baseline_exclusions",
      "status": "PASS",
      "detail": "excluded rules rows=6; each row records exclude_reason and reentry_policy."
    },
    {
      "check_id": "SMOKE-T1-001",
      "category": "t1_and_calendar",
      "status": "PASS",
      "detail": "Synthetic T-day buy cannot sell same day; next eligible trading day is 2026-01-05."
    },
    {
      "check_id": "SMOKE-LEDGER-001",
      "category": "ledger_recalc",
      "status": "PASS",
      "detail": "Synthetic lot: buy 10.00, sell 11.00, weight 4%, lot_return 10%, account contribution 0.4%."
    },
    {
      "check_id": "ENV-MYSQL-CLI-001",
      "category": "source_db_access",
      "status": "PASS",
      "detail": "mysql CLI is still not required for this run because pymysql direct read-only connection succeeded."
    },
    {
      "check_id": "ENV-MYSQL-PY-001",
      "category": "source_db_access",
      "status": "PASS",
      "detail": "pymysql installed and direct read-only MySQL connection succeeded."
    },
    {
      "check_id": "ENV-MYSQL-SECRET-001",
      "category": "source_db_access",
      "status": "PASS",
      "detail": "Credential was read from the approved local database index document at runtime and was not recorded in project artifacts."
    },
    {
      "check_id": "DOC-SOURCE-SCHEMA-001",
      "category": "source_docs",
      "status": "PASS",
      "detail": "Global docs define MYSQL_TIANXIA_LOCAL, a_share_daily_price, a_share_minute_price, and ts_market_breadth_daily_cache schemas."
    },
    {
      "check_id": "SMOKE-CHART-001",
      "category": "chart_generation",
      "status": "PASS",
      "detail": "Generated two synthetic Chinese candlestick smoke images and chart_smoke_manifest.csv."
    },
    {
      "check_id": "DB-CONNECT-001",
      "category": "source_db_access",
      "status": "PASS",
      "detail": "Connected to MYSQL_TIANXIA_LOCAL tianxia via pymysql; server version 8.4.9."
    },
    {
      "check_id": "DB-SCHEMA-001",
      "category": "source_db_schema",
      "status": "PASS",
      "detail": "Required columns present for a_share_daily_price, a_share_minute_price, ts_market_breadth_daily_cache, and a_share_trading_calendar."
    },
    {
      "check_id": "DB-COVERAGE-DAILY-001",
      "category": "source_db_coverage",
      "status": "PASS",
      "detail": "a_share_daily_price covers 2023-01-03 to 2026-05-26 for requested 2023-2026 window; 4,333,482 rows across 819 trading days."
    },
    {
      "check_id": "DB-COVERAGE-MINUTE-001",
      "category": "source_db_coverage",
      "status": "PASS",
      "detail": "a_share_minute_price covers 2023-03-24 to 2026-04-20. Pilot sample selection must stay inside this minute replay boundary."
    },
    {
      "check_id": "DB-COVERAGE-BREADTH-001",
      "category": "source_db_coverage",
      "status": "PASS",
      "detail": "ts_market_breadth_daily_cache ALL_A_SHARE/ALL covers 2023-01-04 to 2026-04-24, 799 trading days, run_id ts_market_breadth_cache_20260529."
    }
  ],
  "blocked_next_steps": [],
  "required_next_steps": [
    "Generate real candidate pool using daily price and ALL_A_SHARE/ALL breadth, constrained by minute replay coverage 2023-03-24 to 2026-04-20.",
    "Select 5-10 representative pilot cases from the generated candidate pool with recorded selection reasons.",
    "Generate real case K-line image package and ledgers, then submit execution review before any return statistics are cited."
  ]
}