Skip to content

reorg B10: market-review 基准面板 L5 并入 provider seam - #11

Merged
HRLoveFun merged 1 commit into
mainfrom
b10-market-review-seam
Sep 11, 2026
Merged

HRLoveFun merged 1 commit into
mainfrom
b10-market-review-seam

Conversation

@HRLoveFun

Copy link
Copy Markdown
Owner

什么

业务线重组的最后一个延期批次 B10:把 services/market_review/fetch.py
L1/L2/L3 取数梯子(ADR 0011 里标记的 L5 —— seam 外的第二条采集路径)并入
provider seam。

改动

之前 之后
market_review_prices 专用表 + 独立的多 ticker yf.download close 梯子 基准符号(SPX / US10Y / Gold / CSI300 / …)和普通 ticker 一样存进 clean_bars
基准面板在 Market Review slice 上冷取数,readiness 不管 POST / 的 readiness plan 补上基准符号,daemon 线程预取整块面板
services/market_review/fetch.py 直接 import providers + store.repos 只调 DataService.get_close_panel,仅保留 5 分钟 L1 内存缓存
  • 新增 DataService.get_close_panel(symbols, start, end)read/_query.py):逐符号
    needs_backfill / 后台 ensure_range 自愈,缺失符号一次性 kick 后共享一个
    短 grace 窗口(不是每符号一个),再读 clean_bars 的 close。
  • 删除 market_review_prices 建表 + fetch_market_review_latest_dates /
    upsert_market_review_prices / fetch_market_review_panel
  • services/market/readiness.py::_augment_with_benchmarksdata_pipeline.orchestrate
    不能 import core,所以基准符号列表的展开放在 services 层。
  • scripts/build_pages_site.py 演示 fixture 改读 clean_bars

文档

architecture_review.md §2 的 L5 watch-list 行标记 resolved;plan §0/§4.1/§5.2/§6
台账 + §10;ADR 0011 Consequences 追加 landed 说明;CLAUDE.md / CODEBUDDY.md /
.github/copilot-instructions.md 指针更新为「B1–B10 landed,§10 仅剩无风险利率全局
设置 + ADR 0011 symbol 列两项」。

验证

  • pytest -m "not network" --ignore=tests/e2e → exit 0
  • pytest tests/e2e → exit 0
  • npx vitest run → 199 passed / 16 files
  • ruff check + ruff format --check → clean
  • scripts/doc_guard.py → clean
  • scripts/arch_metrics.py --check → ok (layer 0 / cycles 0 / god 0 / dead 0)
  • scripts/audit_tags.py → 16 / 16

新增测试:TestGetClosePaneltests/test_market_readiness.py
test_market_review.py 改为 stub get_close_paneltest_db_errors.py 断言
market_review_prices 不存在。

🤖 Generated with Claude Code

market_review_prices 表 + 独立取数梯子删除;基准符号(SPX/US10Y/Gold/…)
现在和普通 ticker 一样走 clean_bars,由新的 DataService.get_close_panel
读取(缺口经 ensure_range 自愈,缺失符号一次性 kick + 单个 grace 窗口共享等待)。

- data_pipeline/read/_query.py: 新增 get_close_panel(symbols, start, end)
- data_pipeline/read/facade.py: DataService.get_close_panel 暴露
- data_pipeline/store/{db,repos}.py: 删 market_review_prices 建表 +
  fetch_market_review_latest_dates / upsert_market_review_prices /
  fetch_market_review_panel,留 B10 NOTE
- services/market_review/fetch.py: 只保留 5 分钟 L1 内存缓存,取数改走 DataService
- services/market/readiness.py: _augment_with_benchmarks —— market_review 模块
  的 readiness plan 补上基准符号,POST / 预取整块面板
  (data_pipeline.orchestrate 不能 import core,所以扩展放在 services 层)
- scripts/build_pages_site.py: 演示 fixture 改读 clean_bars
- docs: architecture_review §2 L5 行 resolved;plan §0/§4.1/§5.2/§6 台账/§10;
  ADR 0011 Consequences;CLAUDE/CODEBUDDY/copilot 指针(§10 仅剩无风险利率 +
  symbol 列两项)

tests: TestGetClosePanel(读 clean_bars / 共享 grace 窗口 / 单坏符号不拖垮面板);
test_market_readiness.py(基准扩展仅对 market_review 触发、ticker 即基准时不重复、
prepare_readiness 会 kick);test_market_review.py 改为 stub get_close_panel;
test_db_errors.py 断言 market_review_prices 不存在。

验证:pytest -m "not network" --ignore=tests/e2e exit 0;pytest tests/e2e exit 0;
vitest 199/16;ruff check + format clean;doc_guard clean;arch_metrics --check ok
(layer 0 / cycles 0 / god 0 / dead 0);audit_tags 16/16。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@HRLoveFun
HRLoveFun merged commit a35801d into main Sep 11, 2026
3 checks passed
@HRLoveFun
HRLoveFun deleted the b10-market-review-seam branch September 11, 2026 01:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant