阶段2B前置澄清完成报告 v0.3.0
审计时间: 2026-09-12T16:05:00+08:00 | 状态: FINAL
执行摘要
| 任务 | 状态 | 关键结论 |
|---|---|---|
| 任务1:澄清数字矛盾 | ✅ 完成 | 真实活跃71条,未注册13条(非49条) |
| 任务2:P0告警最小方案 | ✅ 完成 | run_with_alert.py + SQLite + TG |
| 任务3:版本确认 | ✅ 完成 | 2A已打tag v0.1.0-20260908 |
| 任务4:2B框架调整 | ✅ 完成 | 影子10-15交易日,事件先落8种 |
一、数字矛盾澄清
错误根源
上一轮使用"名称完全匹配"算法,导致大量已注册任务被误判为"未注册"。
正确数字(以hermes cron status为基准)
Cron总数: 75
├─ 内置插件: 4 (qianzhan, memory-compact, 心跳watchdog, 心跳自愈)
└─ 真实活跃: 71
已注册YAML: 56
未注册: 13
重复别名: 2 (自动备份工作日/周末, 盘中监控AM/PM)
验证: 71 + 4 = 75 ✓
13 ≤ 13 (差异数) ✓
13条未注册任务清单
| # | 任务名 | 最近运行 | 优先级 |
|---|---|---|---|
| 1 | 📊 每周周报(周日21:00) | N/A | P3 |
| 2 | 📊 每日综合摘要(09:00) | 09-11 | P2 |
| 3 | 通达信标签同步(盘前) | 09-11 | P2 |
| 4 | 运行板块信号监控脚本 | 09-11 | P2 |
| 5 | T+3/T+5/T+10 P&L回填 | 09-11 | P2 |
| 6 | 因子IC衰减监控(20:00) | 09-11 | P1 |
| 7 | 盘中日K预缓存 | 09-11 | P2 |
| 8 | 盘后快照填充 | 09-11 | P2 |
| 9 | Z-score信号追踪(15:30) | 09-11 | P1 |
| 10 | 系统健康监控(0/6/12/18) | 09-12 | P1 |
| 11 | P5每日观察检查+TG推送 | 09-11 | P2 |
| 12 | ☀️ 盘前推送v2(08:20) | 09-11 | P1 |
| 13 | 分状态IC报告(20:30) | 09-11 | P1 |
二、P0告警最小闭环设计
架构
Cron调度 → run_with_alert.py → SQLite run_log → TG告警
↓
task_health表
(统计失败次数)
核心组件
-
包装脚本:
wrapper/run_with_alert.py
- 捕获exit_code/stdout/stderr
- 记录SQLite run_log
- 判断失败并触发告警 -
状态存储:
data/system_state.db
- run_log表:每次执行记录
- task_health表:任务健康度统计
- alert_history表:告警历史(去重) -
告警规则:
| 级别 | 触发条件 | 渠道 | 静默期 |
|------|---------|------|--------|
| P0 | 核心任务失败1次 | TG+日志 | 5分钟 |
| P1 | 核心任务失败2次 | TG+日志 | 30分钟 |
| P2 | 非核心失败3次 | 日志 | 24小时 |
| P3 | 任何失败 | 日志 | 7天 |
核心任务列表(P0)
- eval_pias_daily
- war_room_selector
- night_scan
- morning_eval
- pre_market_orders
- risk_radar_data
- ic_monitor
- zscore_tracker
实施步骤(5天)
Day 1: SQLite schema + run_with_alert.py
Day 2: 集成到8个核心任务
Day 3: TG告警测试
Day 4: 影子运行(仅记录,不发送)
Day 5: 生产切换(启用P0/P1告警)
三、版本确认
2A文档Tag状态
| Tag | 日期 | 内容 |
|---|---|---|
| v0.1.0-20260908 | 09-08 | 初始系统提交 |
| v0.1.1-20260911 | 09-11 | 评估中心修复+新脚本 |
建议下一步Tag
# 冻结2A+2B前置设计
git tag -a v0.2.0-final -m "阶段2A+2B前置设计完成"
四、2B框架调整
调整点
| 原设计 | 调整后 | 原因 |
|---|---|---|
| 影子运行7天 | 10-15个交易日 | 覆盖完整情绪周期 |
| 16种事件类型 | 先落8种核心 | MVP优先 |
| 实现顺序 | P0告警→状态存储→事件总线→DAG | 价值驱动 |
8种核心事件
- data.failed
- signal.generate
- risk.circuit_break
- eval.complete
- confirm.pending
- confirm.approved
- health.check
- system.shutdown
五、检查清单
实现前
- [ ] 用户确认13条未注册任务清单
- [ ] 用户确认P0告警最小方案
- [ ] 用户确认2B框架调整
实现中
- [ ] Day 1: SQLite + run_with_alert.py
- [ ] Day 2: 集成8个核心任务
- [ ] Day 3: TG告警测试
- [ ] Day 4: 影子运行
- [ ] Day 5: 生产切换
实现后
- [ ] 告警覆盖率100%
- [ ] 告警准确率>95%
- [ ] 告警延迟<1分钟
- [ ] 用户验收签字
六、风险清单
| 风险 | 概率 | 影响 | 缓解 |
|---|---|---|---|
| TG API限流 | 中 | 中 | 静默期+聚合 |
| SQLite写入竞争 | 低 | 高 | WAL模式+写锁 |
| 误报过多 | 中 | 中 | 分级告警+静默 |
| 包装脚本引入bug | 低 | 高 | 单元测试+影子运行 |
报告生成时间: 2026-09-12T16:05:00+08:00
版本: v0.3.0
状态: 待审批