# 7-29 [done] Batch I AI tool final-content / ACP tail 收口 checklist v1

> 创建时间：2026-05-21
>
> 当前状态：`DONE`
>
> 上位入口：`design/01-tree-first-graph-kernel/process/1-8-mvp-post-process-execution-order-v1.md`
>
> 阶段：Batch I / 1-8 Batch E AI 与资源工具收口

## 1. 目标

本批次只处理 `1-8` Batch E 中已经有明确代码痕迹、但文档状态仍在 `process/` 的 AI 工具尾项：

1. 复核 `7-27`：`mnote.doc.markdown_edit` 在线写回是否已经以最终 markdown 为真源，是否可归档。
2. 复核 `7-15`：ACP runtime 统一层 Step 15-17 的真实剩余缺口，拆成下一批可执行小任务。
3. 复核 `7-12`：Manifest / review surface / state event 中哪些已由当前 Hermes tools / ACP runtime 覆盖，哪些仍冻结或待拆。

本批次不实现 Phase C Review Mode，不扩新 AI 产品面，不恢复旧 HTTP proxy 为主路径，不把 `mnote.doc.markdown_edit` 升回 local-first 普通正文默认主路径。

## 2. 已有本地证据

- `cargo test --manifest-path rust/Cargo.toml -p mnote-web markdown_edit -- --test-threads=1`：16 passed。
- `cargo test --manifest-path rust/Cargo.toml -p mnote-web hermes_tools_manifest_describes_markdown_edit_write_contract -- --test-threads=1`：1 passed。
- `rust/crates/mnote-web/src/hermes_tools/doc.rs` 已包含 `parse_final_markdown_to_blocks`、`build_page_content`、`build_changed_blocks_summary`、`mnote.doc.markdown_edit (7-27)` 写回 reason。

## 3. Reasonix Worker 拆分

### Worker A：`7-27` 归档性审查

Owner：

- `design/07-ai/process/7-27-online-markdown-writeback-final-content-truth-v2.md`
- 若确认可归档，可移动到 `design/07-ai/done/7-27-online-markdown-writeback-final-content-truth-v2.md`

只读参考：

- `rust/crates/mnote-web/src/hermes_tools/doc.rs`
- `rust/crates/mnote-web/src/routes/hermes_tools.rs`
- `rust/crates/mnote-web/src/hermes_tools/manifest.rs`

目标：

- 对照 `7-27` 的步骤 1-6、测试矩阵、开放问题，判断当前代码是否已满足归档条件。
- 如果可归档，只更新设计文档状态并移动到 `done/`。
- 如果不可归档，只写明最小剩余缺口，不改 runtime 代码。

验收：

- `cargo test --manifest-path rust/Cargo.toml -p mnote-web markdown_edit -- --test-threads=1`
- `cargo test --manifest-path rust/Cargo.toml -p mnote-web hermes_tools_manifest_describes_markdown_edit_write_contract -- --test-threads=1`
- `git diff --check`

### Worker B：`7-27` 代码/测试缺口审查

Owner：

- `.codex/reasonix-tasks/results/batch-i-worker-b-7-27-code-test-gap.md`

只读参考：

- `rust/crates/mnote-web/src/hermes_tools/doc.rs`
- `rust/crates/mnote-web/src/routes/hermes_tools.rs`
- `rust/crates/mnote-web/src/hermes_tools/manifest.rs`

目标：

- 不修改代码。
- 审查当前 `7-27` 实现是否存在明显缺口：注释格式、revisionRef 保留、legacy `content` / `contentNodes` 文本读取、复杂块保留、selection 范围、dryRun、full_content。
- 输出“必须修复才能归档 / 可作为后续增强 / 无问题”的分级表。

验收：

- 结果文件必须引用具体文件和函数。
- `git diff --check`

### Worker C：`7-15 / 7-12` 后续拆分审查

Owner：

- `.codex/reasonix-tasks/results/batch-i-worker-c-acp-review-tail.md`

只读参考：

- `design/07-ai/done/7-15-page-ai-acp-agent-runtime-unified-layer-v1.md`
- `design/07-ai/reference/7-12-page-ai-hermes-tool-routing-and-review-surface-v1.md`
- `rust/crates/mnote-web/src/acp_client.rs`
- `rust/crates/mnote-web/src/acp_session_manager.rs`
- `rust/crates/mnote-web/src/acp_runtime.rs`
- `rust/crates/mnote-web/src/routes/hermes_client.rs`
- `rust/crates/mnote-web/src/hermes_tools/manifest.rs`

目标：

- 不修改代码和主设计文档。
- 判断 `7-15` Step 15-17 是否仍是当前应执行项，还是应该拆成压力测试、旧 HTTP proxy 瘦身、Reasonix cache benchmark 三个独立 checklist。
- 判断 `7-12` Phase B-F 中哪些已由当前 manifest / runtime selector / tool guard 覆盖，哪些仍冻结。
- 输出下一批建议顺序和可派发 worker 方向。

验收：

- 结果文件必须区分 P0/P1/P2。
- 不把 Phase C Review Mode 解冻。
- `git diff --check`

## 4. Codex 复核项

- [x] 读取 Worker A/B/C 的 `final.md` / `result.json` / diff。
- [x] 独立复核 `7-27` 相关测试，不凭 Worker A 归档结论直接验收。
- [x] 若 Worker B 找到必须修复缺口，由 Codex 本地补最小修复或拆下一轮 worker。
- [x] 若 `7-27` 可归档，更新 `1-8` Batch E 当前状态。
- [x] 根据 Worker C 结果决定 Batch I 下一步拆分。
- [ ] 运行 `git diff --check`、必要 targeted tests、`codegraph sync .`。

## 5. 本轮执行记录

- 2026-05-21：Codex 建立 Batch I checklist，准备派发 Worker A/B/C。
- 2026-05-21：Worker A/B 均确认 `7-27` 可归档；Codex 复跑 `markdown_edit` 与 manifest write contract targeted tests 后确认无 P0 缺口，`7-27` 已移动到 `design/07-ai/done/`。
- 2026-05-21：Worker B 记录的 `revisionRef` 注释可见性、复杂 GFM fallback、多余退役函数体均列为后续增强，不阻塞归档。
- 2026-05-21：Worker C 确认 `7-15` Step 15-17 与 `7-12` Phase B/F 应拆成独立稳定化 checklist；Phase C Review Mode 继续冻结。
- 2026-05-21：下一批不在本文件继续膨胀，改拆 `7-34` 处理 ACP runtime cleanup / availability / 稳定性验证尾项。
