# AI_ICT 实盘辅助分析决策助手上线必做清单 2026-05-18 v1 ## 0. 硬性主线约束 本上线清单只允许服务 `docs/ICT交易全书_出版终校版.md` 和 `docs/AI_ICT_硬性主线约束_必须遵循ICT交易全书_2026-05-21_v1.md` 定义的主线。 上线必做项必须帮助交易员更快完成: ```text Range / Draw / Location -> Liquidity / Sweep / Path -> Displacement / MSS / FVG / Retest / Session -> backtest evidence -> plan -> intraday focus or no-trade -> journal feedback ``` 不能服务该链路的能力,不得作为上线必做项,也不得进入交易员首屏。 ## 目标边界 上线目标是: ```text 实盘决策辅助分析,不下单,不交易,不给可直接执行的买卖指令。 ``` 本轮上线不做以下事项: - 不启用 `LIVE_TRADING_ENABLED`。 - 不要求 OKX trade permission。 - 不跑 submit / cancel / fills 的交易权限 smoke。 - 不把 cockpit 输出当成实盘买卖指令。 - 不改变 `execution_allowed`、`real_live_ready`、risk governor、trust bucket、operator confirmation protocol。 ## 当前实测状态 截至 2026-05-18,本地 no-proxy 远端检查显示: - `/health` 可用,数据库已配置。 - 标准 `run_remote_ops_smoke.py` 通过,`unattended_harness` 通过。 - 远端只读行情 / broker read-only proxy 已恢复,`market_truth_ready`、`broker_state_ready`、`runtime_ready` 均通过。 - `/trading/launch-readiness` 已返回 `live_analysis_assistant_ready=true`。 - 当前仍保持 `decision_support_ready=false`、`execution_assist_ready=false`、`real_live_ready=false`。 - 当前 `product_operating_mode=restricted_decision_support`,但仅可作为只读实盘分析与证据整理工作台使用。 - `/trading/shadow-paper-validation` 当前为 `collecting_paper_samples`,下一 gate 是 `paper_ticket_sample_gate`。 - R2 历史 shadow coverage 已达标,但 paper/execution 证据未满:`paper_ticket_count=0`、`paper_execution_count=0`,这不作为只读上线 blocker。 - 最新候选仍可能为 `blocked` / `executable=false`;系统必须继续把输出呈现为观察与复盘证据,而不是买卖指令。 - `/trader-mode` 已成为盘中默认速读入口;状态文案使用 `Review Now` / `Observe Only` / `Do Not Use`,避免 green/red 造成买卖信号误读。 ## 上线必须实现清单 ### P0-1 恢复只读实盘数据链路 必须恢复行情和只读状态的稳定读取,否则不能叫“实盘辅助分析”。 交付: - 恢复远端 `MARKET_TRUTH_PROXY_URL=http://192.168.3.73:10808`,或把远端 `.env` 更新到可达的只读代理。 - 重新跑 `POST /trading/runtime/run-once`。 - 确认 market truth 不再 stale,market stream / REST fallback 至少有一个新鲜。 - 确认 broker read-only 失败时不会误导 operator;如果本阶段不依赖账户状态,则降级为 account-context unavailable,而不是阻断行情分析。 验收: - no-proxy `/health` 200。 - `run_remote_ops_smoke.py` passed。 - `/trading/launch-readiness` 不再因为 proxy refused 进入 `product_operating_mode=blocked`。 - cockpit 明确显示行情 freshness、数据来源和最后更新时间。 ### P0-2 增加“只读实盘分析上线口径” 当前 `decision_support_ready=false` 是严格信任门,不能为了快速上线强行改 true。需要新增或明确一个更窄的上线口径: ```text live_analysis_assistant_ready ``` 它只代表“可用于看盘、证据整理、风险提示和复盘”,不代表“可指导下单”。 交付: - 在 launch readiness 中区分: - `live_analysis_assistant_ready` - `restricted_decision_support_ready` - `decision_support_ready` - `execution_assist_ready` - `real_live_ready` - `live_analysis_assistant_ready=true` 的条件只包括: - API/runtime 可用。 - 行情数据新鲜或明确降级。 - review packet / decision packet 可生成。 - 边界提示可见。 - 执行能力仍关闭。 - broker account read-only 如果不可用,应作为“账户上下文不可用”提示,而不是阻断纯行情分析上线。 验收: - `decision_support_ready` 仍可保持 false。 - `execution_assist_ready=false`。 - `real_live_ready=false`。 - 但 cockpit 可以显示“只读实盘分析可用”。 ### P0-3 做强制边界提示和去交易化 UI 上线前必须让 operator 一眼知道:这是分析助手,不是交易系统。 交付: - cockpit 顶部固定显示: - `只读实盘分析` - `不下单` - `不构成买卖指令` - `当前执行关闭` - review packet / decision packet 输出必须包含边界字段。 - UI 中所有真实交易相关按钮保持禁用或隐藏: - submit - cancel - semi-auto submit - live execute - `Build Shadow Paper` 仅作为样本采集入口,不在上线主路径突出展示。 验收: - 任意首屏都不能让 operator 误以为系统可以下单。 - 静态检查确认 UI 文案存在。 - API 返回边界 summary。 ### P0-4 上线健康页 / Cockpit 一屏可用 快速上线最怕“能跑但不知道能不能信”。必须有一个一屏健康状态。 交付: - 在 cockpit 或独立 readiness 面板展示: - API health。 - runtime health。 - market freshness。 - broker/account context availability。 - latest decision packet timestamp。 - latest review packet timestamp。 - current candidate count。 - current blocker。 - allowed actions。 - blocked actions。 - 一屏给出当前建议: - `可以用于看盘分析` - `仅可观察` - `等待行情恢复` - `等待真实 executable candidate` 验收: - operator 不需要看日志就能知道系统是否可用于当下盘面分析。 - 如果数据 stale,页面明确显示 stale,而不是继续输出像实时一样的结论。 ### P0-5 最小运营闭环 上线当天必须能留下证据,不能只是看页面。 交付: - 每日自动/手动记录一条 shadow observation。 - operator 能记录 agreement / disagreement / note。 - 每日生成一个简短的 read-only session summary。 - 每周 review entry 可以保存,即便还没有 paper ticket。 验收: - `shadow_paper_observations` 当天有记录。 - operator feedback 能写入。 - weekly review 至少有一条入口或草稿。 - 不要求 paper ticket 样本满,因为当前没有真实 executable candidate。 ### P0-6 上线 smoke 脚本 上线必须有一个固定命令判断“今天能不能用”。 交付: - 新增或整理一个 read-only launch smoke: - `/health` - `/trading/runtime-status` - `/trading/launch-readiness` - `/trading/review-packet` - `/trading/shadow-paper-validation` - `/trading/candidates` - static app 文案检查 - smoke 输出明确: - `ready_for_readonly_live_analysis` - `blocked_reason` - `warnings` - `must_not_trade=true` 验收: - 单条命令能给出上线判定。 - 不依赖 OKX trade permission。 - 不触发任何 submit / cancel / live execution。 ## 2026-05-18 闭环结果 - [x] P0-1 只读实盘数据链路已恢复:远端 no-proxy `/health` 200,标准 `run_remote_ops_smoke.py` passed,`unattended_harness` passed。 - [x] P0-2 已新增 `live_analysis_assistant_ready` 与 `live_analysis_assistant_summary`;broker/account context 不可用时会降级为提示,不阻断纯行情分析上线。 - [x] P0-3 已在 API 与 cockpit 增加强制边界:`Read-only Live Analysis`、`No order submission`、`Not a buy/sell instruction`、`Execution remains disabled`、`must_not_trade=true`。 - [x] P0-4 已提供 `readonly_live_health_summary`:API health、runtime health、market freshness、broker/account context、latest decision/review packet timestamp、candidate count、current blocker、allowed/blocked actions。 - [x] P0-5 已形成最小运营闭环:runtime 已持续记录 shadow observation;operator feedback 写入入口存在;weekly review 入口可用;只读 session summary / weekly review draft 已作为允许动作暴露。 - [x] P0-6 已新增 `scripts/run_readonly_live_analysis_smoke.py`;远端 smoke passed,输出 `ready_for_readonly_live_analysis=true`、`must_not_trade=true`、`trade_permission_required=false`、`submit_cancel_or_live_execution_called=false`。 - [x] Trader Mode P0 补齐已闭环:独立 `/trader-mode` 首屏、强新鲜度时间戳/stale freeze、一键 Agree/Disagree/No Trade/Need More Evidence/Write Quick Note、状态变化提醒、R2 evidence gap surface 均已部署并通过 smoke。 验证证据: - `python -m unittest discover tests/unit`:775 tests OK。 - `node --check src/web/app.js`:passed。 - `node --check src/web/trader_mode.js`:passed。 - `python scripts/run_script_static_checks.py`:passed。 - `python scripts/deploy_with_password.py --host 192.168.3.90 --user root --port 22`:deploy complete,deploy smoke complete。 - `python scripts/run_remote_ops_smoke.py --base-url http://192.168.3.90:8000 --attempts 2 --timeout-seconds 30`:passed。 - `python scripts/run_readonly_live_analysis_smoke.py --base-url http://192.168.3.90:8000 --attempts 2 --timeout-seconds 30 --output-json`:passed,覆盖 `trader_mode_payload`、`/trader-mode`、`/static/trader_mode.js`。 - 远端字段 smoke:`status_label=Review Now`、`data_confidence=fresh`、`freshness_status=fresh`、`primary_question_trade_action=not_a_buy_sell_instruction`、`execution_allowed=false`、`real_live_ready=false`、`r2_status=collecting_evidence`。 闭环结论: ```text 系统可作为只读实盘辅助分析工作台上线试运行。 ``` 仍然不能宣布: ```text 系统可指导实盘交易或执行交易。 ``` ## 2026-05-18 P1 Trader Mode 盘中可用性闭环 - [x] 交易员偏好模板:`/trader-mode` 支持本地 profile 模板,包含 instrument、timeframe、session filter 和 setup filter;默认提供 BTC London、BTC NY、ETH London、All Intraday,并记住上次选择。 - [x] 盘中快捷键:`R` 复核/刷新 focus,`N` 记录 No Trade,`A`/`D` 记录 Agree/Disagree,`Space` 暂停或恢复自动刷新;快捷键不在输入框内触发。 - [x] 唯一 focus 的人话解释:Trader Mode 摘要新增 `focus_quality_explanation` 和 `plain_language_reasons`,把结构、等待确认、不能贸然行动压缩成交易员能直接读的一句话。 - [x] 失败/阻塞恢复动作:`Do Not Use` 或 stale 状态下返回 `recovery_actions`,明确是 runtime、market feed、review packet 还是通用 readiness 恢复,并给出对应 smoke/恢复命令。 - [x] 真实盘中 UI 验证:P1 验收必须使用浏览器截图覆盖 13/14 寸等效宽屏、窄屏和暗色环境,确认自动刷新/长文案下不跳版、不溢出、不遮挡。 P1 不改变以下边界: ```text execution_allowed=false real_live_ready=false decision_support_ready 仍由 R2/R3/R4/R5 证据门决定 不启用下单,不启用交易权限,不把 Review Now 显示为买卖信号 ``` 本轮本地闭环证据: - focused unit/static tests、script static checks、`node --check`、`git diff --check`、完整 `tests/unit` 775 项已通过。 - 本地 `scripts/run_readonly_live_analysis_smoke.py --base-url http://127.0.0.1:8125` 通过,且 `must_not_trade=true`、`submit_cancel_or_live_execution_called=false`。 - 浏览器截图已覆盖暗色 13 寸等效宽屏、14 寸等效宽屏、390px 窄屏:`output/playwright/trader-mode-p1-13in-1366x768.png`、`output/playwright/trader-mode-p1-14in-1440x900.png`、`output/playwright/trader-mode-p1-narrow-390x844.png`。 远端闭环状态: - [x] live 远端部署/smoke 已闭环:使用 `yuqei` SSH + sudo 将旧 root 部署目录中的完整只读 `.env` 安全迁移到 `/home/yuqei/project/ai-exchange/.env`,未把任何密钥写入仓库或文档。 - [x] `python scripts/deploy_with_password.py --host 192.168.3.90 --user yuqei --port 22 --remote-path /home/yuqei/project/ai-exchange --remote-archive /home/yuqei/ai-ict-deploy.tgz`:deploy complete,deploy smoke complete。 - [x] `python scripts/run_remote_ops_smoke.py --base-url http://192.168.3.90:8000 --attempts 2 --timeout-seconds 30`:passed,`unattended_harness` passed。 - [x] `python scripts/run_readonly_live_analysis_smoke.py --base-url http://192.168.3.90:8000 --attempts 2 --timeout-seconds 30 --output-json`:passed,输出 `ready_for_readonly_live_analysis=true`、`must_not_trade=true`、`trade_permission_required=false`、`submit_cancel_or_live_execution_called=false`。 ## 2026-05-18 P2 Trader Mode 后续增强闭环 本轮只做当前具备条件的增强,不引入未接入的 TradingView MCP/CDP 实时控制依赖,不启用交易权限。 - [x] 图表/外部上下文实时桥 starter:Trader Mode 新增 `chart_context_bridge`,以内部 `/candles` 精确蜡烛作为主证据,外部 chart provider 作为 reference-only;若未来接入 TradingView MCP/CDP,只需把外部实时桥状态从 `not_connected` 升级为 `connected`。 - [x] 多品种速读队列:`/trader-mode` 首屏新增 Fast Queue,默认 BTC/ETH/SOL,按 `Review Now` / `Observe Only` / `Do Not Use` 排序,队列状态仍是只读观察,不是买卖信号。 - [x] 盘后自动复盘草稿:Trader Mode 新增 `post_market_review_draft` 和 After-Close Draft 面板,自动汇总盘中 observation、Agree/Disagree/No Trade 样本、weekly review carry-forward,并可一键保存为 operator note。 - [x] 上线值班面板:Trader Mode 新增 `ops_duty_panel` 和 Duty Panel,汇总数据 freshness、runtime、maintenance、unattended harness、最近错误和今日是否适合打开使用。 P2 本地验证证据: - focused unit/static tests、script static checks、`node --check` 已通过。 - 本地 `scripts/run_readonly_live_analysis_smoke.py --base-url http://127.0.0.1:8125` 已覆盖新增 `ops_duty_maintenance`、`ops_duty_unattended_harness`、`chart_bridge_candles`,并保持 `must_not_trade=true`、`submit_cancel_or_live_execution_called=false`。 - 浏览器截图已覆盖暗色宽屏与 390px 窄屏:`output/playwright/trader-mode-p2-13in-1366x768.png`、`output/playwright/trader-mode-p2-narrow-390x844.png`。 P2 远端验证证据: - `python scripts/deploy_with_password.py --host 192.168.3.90 --user yuqei --port 22 --remote-path /home/yuqei/project/ai-exchange --remote-archive /home/yuqei/ai-ict-deploy.tgz`:deploy complete,deploy smoke complete。 - `python scripts/run_remote_ops_smoke.py --base-url http://192.168.3.90:8000 --attempts 2 --timeout-seconds 30`:passed,`unattended_harness` passed。 - `python scripts/run_readonly_live_analysis_smoke.py --base-url http://192.168.3.90:8000 --attempts 2 --timeout-seconds 30 --output-json`:passed,覆盖 `trader_mode_payload`、`ops_duty_maintenance`、`ops_duty_unattended_harness`、`chart_bridge_candles`、`/trader-mode`、`/static/trader_mode.js`。 - 远端 live readiness 当前为 `live_analysis_assistant_ready=true`、`product_operating_mode=restricted_decision_support`、`market_stream=market_stream_connected`、`market_data_gap=market_data_gap_clear`、`readonly_account_context_status=available`、`real_live_ready=false`。 P2 仍不改变以下边界: ```text execution_allowed=false real_live_ready=false decision_support_ready 仍由真实 R2/R3/R4/R5 证据门决定 图表桥和多品种队列只提升证据读取效率,不给出下单指令 ``` ## 暂不作为上线 blocker 以下项目重要,但不应阻塞“只读实盘辅助分析”快速上线: - `decision_support_ready=true` 的完整 trust promotion。 - R2 paper ticket / paper execution 样本达到 5 条。 - R3 submit / query / cancel / fills sandbox smoke。 - R4 极小实盘试点。 - R5 四周稳定化运行制度。 - 外部 webhook / WeCom / email 通道完整启用。 这些属于从“只读实盘分析可用”升级到“可信辅助决策”或“执行准备”的后续阶段。 ## 立即开发顺序 1. P0-1:恢复/重配只读代理和行情 freshness。 2. P0-2:新增 `live_analysis_assistant_ready`,避免用严格 `decision_support_ready` 阻塞只读上线。 3. P0-3:去交易化 UI 和强制边界提示。 4. P0-4:cockpit 一屏上线健康状态。 5. P0-6:read-only launch smoke。 6. P0-5:每日 observation / note / weekly review 最小运营闭环。 完成以上后,可以宣布: ```text 系统可作为只读实盘辅助分析工作台上线试运行。 ``` 仍然不能宣布: ```text 系统可指导实盘交易或执行交易。 ```