Files
Chan/docs/CODE_REVIEW/ECR-001.md
T
jackyu66gitandCursor 6b0f3b5837 release: 发布系统版本 v1.0.0(ECR-001)
落盘 CODE_REVIEW Approve 与 RELEASE_REPORT,标记首个正式 release。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 18:53:04 +08:00

3.3 KiB
Raw Blame History

CODE_REVIEW — ECR-001

Role: REVIEWER
Date: 2026-08-05
Commit: 74dec4e (refactor: 缠论引擎包化与 Web 分层(ECR-001)
Decision: Approve

Evidence loaded

  • docs/ECR/ECR-001-chan-web-restructure.md
  • docs/ENGINEERING_SPEC/ECR-001-restructure.md
  • docs/IMPLEMENTATION_REPORT/ECR-001.md
  • docs/TEST_REPORT/ECR-001.md
  • docs/HANDOFF/ECR-001-engineer-to-reviewer.md
  • Diff e2e45bc..74dec4e;本地复跑测试

Acceptance ↔ Evidence

Acceptance Verdict Evidence
from ChanLun import ChanLun / ChanEnum 仍可用 PASS 复跑 shim+package 同一对象;test_compat_shim_still_works
Golden bi/seg/zs/bsp 与基线一致 PASS python tests/generate_golden.py --check → GOLDEN OKpytest 含 golden
/api/analyze 关键字段兼容 PASS analyze_contract_keys.json + 路由注册冒烟(未做实盘拉行情 E2E,见 Findings
web/app.py 瘦身 factory PASS web/app.py 32 行;create_app + blueprints
index.html 无大体量 inline 业务 JS PASS ~1482 行;业务在 static/js/app/*
ESS docs / TEST / IMPL / CHANGELOG PASS docs/ 齐全
config/ 无内容变更 PASS git diff e2e45bc..HEAD -- config
strategies/ 无内容变更 AMENDED 见下「范围修订」

范围修订(Human 后续指示)

原 ECR Forbidden 写「不改 strategies/」。实现后期 Human 要求「一次性做完」导入迁移:strategies 仅改 import / sys.path26 files, +75/75),无策略交易逻辑变更
审阅结论:视为 L3 结构收尾的允许增补,不构成交易语义 L2;建议 ECR Acceptance 改为「strategies 仅允许 import/path 迁移,禁止改买卖逻辑」。
不据此 Request changes。

复跑结果(Reviewer

shim+package OK
GOLDEN OK {klu:400, klc:208, bi:14, seg:2, zs:0, bsp:3}
pytest tests/test_golden_pipeline.py web/tests/test_analyze_contract.py → 6 passed

Findings

Non-blocking(记入债务,需新 ECR 再动)

  1. web/services/runtime.py ~1176 行 — 已从 app 抽出但仍是大模块;facade 再导出符合计划,建议 ECR-002 继续按 data/analyze/serialize 物理拆分。
  2. web/static/js/app/chart_tv.js ~4664 行initTradingView 单体;行为冻结下可接受。
  3. /api/analyze 契约测试偏浅 — 仅关键字段清单 + 路由存在;无固定 fixture 的端到端 JSON 快照(需 mock 行情)。
  4. TEST_REPORT 写「5 passed」 — 现为 6(含 shim 兼容测);Release 前可改正文(L0 docs)。
  5. L1TF_DF.get_zs_list 恢复 — 合理兼容修复;golden 走 analyze 路径未覆盖 TF_DF(df,...) 全量 __init__,建议后续加一条 init 冒烟(非阻断)。

No blockers

未发现违反「算法语义冻结 / API 可增不可删 / 无 Vite-React / config 未改」的证据。

Decision

Approve

  • ECR-001 可进入 Release(本变更无交易 EXP 门禁)。
  • 非阻断项进入 backlog / 未来 ECR,不阻塞 tag。

Next owner

release_manager — 写 RELEASE_REPORT、打 tag(需 Human 确认发布动作)。

Traceability

Item Updated
Acceptance mapping 本文件
STATE.owner → release_manager
ECR Status → Done (Reviewed)