文档:T-11 回写 + 全仓进度一致性(开发计划 DoD 全勾 + 执行记录 / 交接文档 v4.1 / TODO / MEMORY / AGENTS / 当日日志)

This commit is contained in:
2026-09-12 09:35:13 +08:00
parent b2d8a90ad2
commit b4a61dc306
5 changed files with 87 additions and 9 deletions
@@ -643,9 +643,14 @@
**依赖**:T-8(口径三处同调链)
**DoD**:
- [ ] convert 两流水场景:`sum_amount` 计一次(验收 11)
- [ ] 全转归零:`list_holdings` 不含 qty=0 行
- [ ] pytest 全量绿
- [x] convert 两流水场景:`sum_amount` 计一次(验收 11)—— `test_confirm_then_sum_amount_counts_once`(**走真实链路**:受理 → `confirm_one` 落两条同 gid 流水后,`sum_amount` = 转出端 40812.00 + 无组普通 100000 = 140812.00;`total_count` 仍 3 = 明细全量;并以 `sum_trades_on_date(T+1)` 复验跨口径一致)
- [x] 全转归零:`list_holdings` 不含 qty=0 行 —— `test_confirm_full_transfer_holding_zero_row_excluded`(**确认段场景**:先直查 SQL 证明归零行**仍在库里**(台账留痕,D 决策),再断言 `list_holdings` 只剩转入端且 qty 与 `res["in_qty"]` 逐字节一致,`query_holdings`(Tool 层)同口径;既有 `test_query_holdings_excludes_zero_qty`(口径级)与 `test_concentration_profile_filters_zero_qty`(集中度读取方)**保留不动**)
- [x] pytest 全量绿 —— **846 passed / 10 skipped**(基线 844 + 新增 2,零回归)
**✅ T-11 完成(core_tools 汇总去重 + 持仓过滤 · 确认段场景补用例 · 2026-09-12)**:
**生产代码零改动**(计划即判「风险低;仅补用例」)—— 口径三处同调(F-10:`rules.amount_view` ① RISK-002/005 ② `query_recent_trades.sum_amount` ③ `sum_trades_on_date` SQL 条件)与 `list_holdings` 的 SQL 层 `qty > 0` 过滤**均已就位**(v0.x T-11 产物 + F-9/F-10 实测),本轮增量 = **把既有「直接插 SQL 模拟流水」的口径用例升级为 T+1 真实链路场景**(R-回归 8「保留 + 补用例」/ R-回归 13「保留断言 + 补确认段场景」——T+1 模型下流水与持仓**只在确认段产生**,既有用例覆盖不了这一点)。**落地**:`tests/test_core_tools.py` +2(新增 `t1_env` fixture:`seed_suitability_matrix` + 最小受理/确认种子;`_quiet_th()` 全阈值推高让引擎静默,避免依赖 settings 与 conftest autouse 隔离)。
**执行期裁定 2 条(留痕)**:① **转出端流水 `amount` = 费前转出金额**(40812.00 = 30000×1.3604,与 PRD §5.3.2 示例 68020.00 同语义;赎回费 204.06 单列 `redeem_fee` 字段)—— 初版锚点误按「费后 40607.94」断言被真跑抓出,已在用例注释钉死口径;② `t1_env` 必须调 `_ddl.seed_suitability_matrix`(C×R 矩阵是 `check_suitability` 的 L0 权威,裸 `create_sqlite_engine()` 缺矩阵 → 受理全量 forbidden)—— 与 conftest `sqlite_engine` fixture 同源(自检第 13 问)。
**验证**:`pytest tests/test_core_tools.py` 5/5 → 全量 **846 passed / 10 skipped**(844+2 零回归);**突变 2 组防假绿**:① 去掉 `list_holdings` 的 `qty > 0` → **精准 3 红**(新确认段用例 + 既有归零行用例 + 集中度跨口径一致性断言);② `query_recent_trades` 绕开 `amount_view` 直加全量 → **精准 3 红**(新确认段用例 + 既有不翻倍用例 + 跨口径一致性断言)—— 均已还原,`git status` 仅测试文件改动、`grep MUTATION` 无残留;真库 `verify_convert_tools.py` 复跑 **14/14、退出码 0、零残留**(零回归佐证)。
**风险**:低;仅补用例
**回滚点**:无代码改动风险