Add live.py lifecycle and event candidates; assemble confirmed vs live in engine; Summary partition; execution_signal source=confirmed only. Keep strategies untouched; do not lower Confirmed thresholds for Live. Co-authored-by: Cursor <cursoragent@cursor.com>
56 lines
3.1 KiB
Markdown
56 lines
3.1 KiB
Markdown
# TRACEABILITY
|
||
|
||
## ECR-001
|
||
|
||
| ECR | Requirement | Spec | Code | Test |
|
||
|-----|-------------|------|------|------|
|
||
| ECR-001 | 引擎包化 + shim | ENG-001 / ADR-001 | `chanlun/` + root shims | import smoke + golden |
|
||
| ECR-001 | TF_DF 门面拆分 | ENG-001 | `chanlun/pipeline/` | golden pipeline |
|
||
| ECR-001 | Web 分层 | ENG-001 | `web/services` `web/api` | analyze contract |
|
||
| ECR-001 | 前端模块化 | ENG-001 | `web/static/js/app/` | manual / smoke |
|
||
| ECR-001 | 策略零改动 | PROFILE | no edits under strategies/ | git diff empty |
|
||
|
||
## IDEA-002(L1)
|
||
|
||
| Id | Requirement | Spec | Code | Test |
|
||
|----|-------------|------|------|------|
|
||
| IDEA-002 | 主站自动刷新内存泄漏 | IDEA-002 | `chart_tv.js` dispose;`ui.js` 增量刷新;去掉重复 sync | `docs/TEST_REPORT/IDEA-002.md` |
|
||
| IDEA-002 | 首屏不重复 analyze | IDEA-002 | `ui.js` 单次 `updateChart` | Network 人工 |
|
||
| IDEA-002 | ChanMACD 不重复全量分析 | IDEA-002 | `kline.py` / `timeframe.py` / `runtime.py` 复用 | golden 建议回归 |
|
||
| IDEA-002 | chan_tv 指标/中枢/布局/WS | IDEA-002 | `chan_tv.html` `datafeed.js` `chan_*.js` `config.py` | 人工 |
|
||
|
||
## ECR-002
|
||
|
||
| ECR | Requirement | Spec | Code | Test |
|
||
|-----|-------------|------|------|------|
|
||
| ECR-002 | 拆分 `runtime.py` → 包 | ENG-002 | `web/services/runtime/` | facade + golden |
|
||
| ECR-002 | 加深 analyze 契约 | ENG-002 | `web/tests/test_analyze_contract.py` | mock HTTP + 键快照 |
|
||
| ECR-002 | TF_DF 全量 init 冒烟 | ENG-002 | — | `tests/test_tf_df_init.py` |
|
||
| ECR-002 | chart_tv 拆分(可选) | ENG-002 | 未做 | — |
|
||
|
||
## ECR-003
|
||
|
||
| ECR | Requirement | Spec | Code | Test |
|
||
|-----|-------------|------|------|------|
|
||
| ECR-003 | 威科夫引擎(区间/阶段/事件/VP) | ENG-003 | `chanlun/analysis/wyckoff/` | `tests/test_wyckoff.py` |
|
||
| ECR-003 | analyze 按需 `include_wyckoff` | ENG-003 | `web/api/analyze.py` | `test_analyze_http_wyckoff_opt_in` |
|
||
| ECR-003 | 主站 Lightweight 叠层 | PRODUCT-003 | `index.html` `chart_tv.js` `chart_view.js` | 人工 + 开关接线 |
|
||
| ECR-003 | 契约可选键文档 | ENG-003 | `analyze_contract_keys.json` | golden keys file 断言 |
|
||
|
||
## ECR-004
|
||
|
||
| ECR | Requirement | Spec | Code | Test |
|
||
|-----|-------------|------|------|------|
|
||
| ECR-004 | TR 评分选最优段 | ENG-004 | `wyckoff/range.py` | `test_wyckoff` / `test_range_scoring_skips_pretrend` |
|
||
| ECR-004 | VP/填充少 series | ENG-004 | `chart_tv.js` Top-8 + 填充 3;bins≤24 | 人工 + ENG |
|
||
| ECR-004 | 阶段最小长度 + elements_only 门闩 | ENG-004 | `events.py` + `analyze.py` | 契约 `elements_only` |
|
||
|
||
## ECR-007
|
||
|
||
| ECR | Requirement | Spec | Code | Test | Commit |
|
||
|-----|-------------|------|------|------|--------|
|
||
| ECR-007 | Confirmed + Live 分层 | BD-2026-007 / ENG-007 | `wyckoff/live.py` + `engine.py` | `test_live_*` / `test_confirmed_upgrade_*` | (填) |
|
||
| ECR-007 | execution 仅 confirmed | BD-2026-007 | `execution_signal_from_wyckoff` | live-only → None | (填) |
|
||
| ECR-007 | Summary Confirmed/Live 分区 | PRODUCT | `ui.js` | 人工 + 契约键 | (填) |
|
||
| ECR-007 | LOOP-RUN-005 | — | — | Gate + Artifact | (填) |
|