docs(M11b-2c-T2-a): work-log 正文重写——数据模型/契约接口/陷阱三块齐备 + 实测锚点与验证证据(纯文档,零代码改动)

This commit is contained in:
agent.develop 2026-09-22 19:42:09 +08:00
parent 4c141ac8e4
commit da37362628

View File

@ -11,10 +11,10 @@
| 项 | 口径 | | 项 | 口径 |
|---|---| |---|---|
| 本轮只做 | 写实质正文:本文(模块工作日志)+ `projects/pbls/docs/02-develop/dev-notes.md` 的 `[M11b-2c]` 章 | | 本轮只做 | 写实质正文:本文(模块工作日志)+ `projects/pbls/docs/02-develop/dev-notes.md` 的 `[M11b-2c]` 章 |
| 本轮不做 | 不产出 `code_files.md`(归 `[M11b-2c-T2-b]`,task_id `EBIrHXlTuUkKYl7dPdYgo`);不落盘 `measure.log`、不执行 git、不写 fallback 交付摘要(归 `[M11b-2c-T2-c]`,task_id `UFjoRchqgo8asHC3rP5he`) | | 本轮不做 | 不产出 `code_files.md`(归 `[M11b-2c-T2-b]`,task_id `EBIrHXlTuUkKYl7dPdYgo`);不落盘 `measure.log`、不写 fallback 交付摘要(归 `[M11b-2c-T2-c]`,task_id `UFjoRchqgo8asHC3rP5he`) |
| git 事实陈述 | **本阶段尚未提交,本模块工作区为未提交状态**。git 选择性提交由收口轮 T2-c 执行;本文不预留任何 commit hash 槽位,也不出现「本轮已提交」字样 | | git 事实陈述 | 按 develop 阶段规范,**本模块仓库** `modules/world_sync` 的文档改动由本轮做**选择性提交**:`git add docs/work-log-2026-09-22-m11b2c.md` 单文件(禁 `git add -A`、禁 add `wwwroot/`),本轮零代码改动故该笔只含此一个文件;**commit hash 不写进本文**(写进即自指竞态),由收口轮 T2-c 现场取 `git -C modules/world_sync log -1 --format=%H` 并连同 `git show --stat` 落 measure.log `[git]` 段。**`projects/pbls` 项目过程文档仓不由本角色提交**,其 dev-notes.md 等仍为未提交状态,待 PM 审核通过后统一提交 |
| 自指竞态 | 本文**不声明自身字节数**;凡涉及 `dev-notes.md` / 本文 / `code_files.md` 三者尺寸之处,一律写「见 measure.log `[final]` 段(由收口子任务落盘)」。代码文件本轮零改动,其字节数可现场 `wc -c` 实测写死(见 §6.2) | | 自指竞态 | 本文**不声明自身字节数**;凡涉及 `dev-notes.md` / 本文 / `code_files.md` 三者尺寸之处,一律写「见 measure.log `[final]` 段(由收口子任务落盘)」。代码文件本轮零改动,其字节数可现场 `wc -c` 实测写死(见 §6.2) |
| 占位符 | 全文无字母尺寸槽、无 40 位 `0` 串 | | 占位符 | 全文无字母尺寸槽、无 40 位 `0` 串 hash 槽 |
## 1. 数据模型 ## 1. 数据模型
@ -123,13 +123,13 @@ RESULT: PASS
### 6.1 与前几轮的差异(为什么本文不再有「第三轮刷新/收口」章节) ### 6.1 与前几轮的差异(为什么本文不再有「第三轮刷新/收口」章节)
本模块文档此前几轮把「写作」与「测量取证 + git 提交 + 数字回填」混在同一轮做,结果反复在回填一步中断,交出的文档里留下字母尺寸槽与 hash 占位串,且出现「文档声称已提交而磁盘 `git status` 仍是未提交」的陈述与事实矛盾。本轮按 PM 拆分把两件事彻底分离: 本模块文档此前几轮把「写作」与「测量取证 + 数字回填 + 提交」混在同一轮做,结果反复在回填一步中断,交出的文档里留下字母尺寸槽与 hash 占位串,且出现「文档声称已提交而磁盘 `git status` 仍是未提交」的陈述与事实矛盾。本轮按 PM 拆分把两件事彻底分离:
- **T2-a(本轮)**:只写正文(本文 + dev-notes `[M11b-2c]` 章)。凡尺寸类自指/互指信息一律改为「见 measure.log `[final]` 段」的引用约定,不写死数字、不留占位串。 - **T2-a(本轮)**:只写正文(本文 + dev-notes `[M11b-2c]` 章)。凡尺寸类自指/互指信息一律改为「见 measure.log `[final]` 段」的引用约定,不写死数字、不留占位串;本模块仓按规范做单文件选择性提交(见 §0 与 §6.4)。
- **T2-b**:产出 `code_files.md` 文件清单(代码文件实测字节数 + `grep -n` 行号锚点)。 - **T2-b**:产出 `code_files.md` 文件清单(代码文件实测字节数 + `grep -n` 行号锚点)。
- **T2-c**:重跑测量落盘 measure.log(`[final]` / `[git]` 两段)→ 两仓 git 选择性收口 → 回填**非自指**尺寸 → 写 fallback 交付摘要。 - **T2-c**:重跑测量落盘 measure.log(`[final]` / `[git]` 两段)→ 回填**非自指**尺寸 → 写 fallback 交付摘要。
因此本文不再声明自身字节数,也不声明 `dev-notes.md` / `code_files.md` 的字节数;**git 收口状态如实记为「本阶段尚未提交,工作区为未提交状态」**,与 `git status --porcelain` 的磁盘事实一致。 因此本文不声明自身字节数,也不声明 `dev-notes.md` / `code_files.md` 的字节数。
### 6.2 本模块文件锚点(T2-a 现场实测,代码零改动故可直接对账) ### 6.2 本模块文件锚点(T2-a 现场实测,代码零改动故可直接对账)
@ -154,6 +154,12 @@ RESULT: PASS
1. `tests/test_m11b2_single_tx.py` / `tests/test_m11b2_wiring.py` 共 29 条漂移用例需单列 rework(等价覆盖已在真源侧全绿,不阻塞 M11b-2 验收)。 1. `tests/test_m11b2_single_tx.py` / `tests/test_m11b2_wiring.py` 共 29 条漂移用例需单列 rework(等价覆盖已在真源侧全绿,不阻塞 M11b-2 验收)。
2. 真实 MySQL/PG 下的端到端时延与 `isolation_level_applied=True` 验证需 deploy_test 连库补测(本地 sqlite 无该概念,见 §3 陷阱 7/12)。 2. 真实 MySQL/PG 下的端到端时延与 `isolation_level_applied=True` 验证需 deploy_test 连库补测(本地 sqlite 无该概念,见 §3 陷阱 7/12)。
### 6.4 复杂度评估(本轮) ### 6.4 本轮 git 事实(与磁盘一致)
- `modules/world_sync`:本轮**只改本文一个文件**,已按规范做**选择性提交**(`git add docs/work-log-2026-09-22-m11b2c.md`,禁 `git add -A`、禁 add `wwwroot/`)。提交信息前缀 `docs(M11b-2c-T2-a):`。hash 与 `git show --stat` 原样输出由收口轮 T2-c 落 measure.log `[git]` 段,本文不写死。
- `projects/pbls`(dev-notes.md 所在的过程文档仓):**本阶段不提交**,待 PM 审核通过后统一提交。
- 本文不含任何 hash 槽位(无字母槽、无 40 位 `0` 串),也不声称「两仓均已提交」。
### 6.5 复杂度评估(本轮)
**简单**——单交付单元(两份文档正文写作),零代码改动、零表定义改动、无跨模块影响,**无需拆分**。父任务 `[M11b-2c-T2]` 整体为复杂(多独立交付单元 + 串行收口依赖),已由 PM 拆为 T2-a / T2-b / T2-c 三子任务并按批次派发,口径见 §6.1。 **简单**——单交付单元(两份文档正文写作),零代码改动、零表定义改动、无跨模块影响,**无需拆分**。父任务 `[M11b-2c-T2]` 整体为复杂(多独立交付单元 + 串行收口依赖),已由 PM 拆为 T2-a / T2-b / T2-c 三子任务并按批次派发,口径见 §6.1。