# 1-8 [process] MVP 后阶段 process 执行总序 v1

> 创建时间：2026-05-21
>
> 当前状态：`PROCESS`
>
> 2026-05-22 归档治理补充：当前 active `process/` 只保留可直接执行的少量收口稿；长期架构、愿景、参考矩阵、Wolai 对标基线、Mindmap 总设计、旧 AI 块级执行稿和 Convex Web 迁移入口已分别移动到 `reference/`、`done/` 或 `old/`。本文是后续调度入口，不代表下列所有历史入口仍在 `process/`。
>
> 目标：把本轮 design governance 后剩余的主线 `process/` 文档排成可执行顺序，避免后续 worker 在 active process 中自行猜优先级。
>
> 上位依据：
> - `/mnt/Data1T/mnote/ARCHITECTURE.md`
> - `/mnt/Data1T/mnote/CURRENT_ARCHITECTURE.md`
> - `/mnt/Data1T/mnote/design/README.md`
> - `/mnt/Data1T/mnote/design/01-05-current-priority-overview.md`
> - `/mnt/Data1T/mnote/design/10-review/done/15-design-governance-mvp-post-review-v1.md`

## 1. 一句话顺序

后续执行顺序固定为：

> **先补阻塞验证和工作区身份底座，再收 Page Aggregate / BufferStore / live cache / command context，随后补资源打开与文件树 action，最后扩 AI、mindmap、Wolai 对标和远期分享同步。**

不要从 `process/` 中按编号顺序机械执行。编号只代表历史产生顺序，不代表当前优先级。

## 2. 状态分类

### 2.1 Active Process

代表仍需继续推进的执行或架构收口文档。

判定规则：

- 有未完成 checklist。
- 或者是当前主线架构入口，仍会指导后续实现。
- 或者有明确阻塞项、smoke 缺口、compat 瘦身缺口。

### 2.2 Reference

放在对应大类的 `reference/`，不是当前直接执行 checklist。

典型文档：

- 参考实现采用矩阵。
- Wolai / 思源 / Sidex / Hermes 对照证据。
- P3 / future 候选合同。
- 已拆成执行 checklist 的 review 原始证据。

处理规则：

- 不迁入 `done/`，因为不是“当前代码已完成”的实现文档。
- 不保留在 `process/`，避免干扰后续执行队列。
- 不当作当前 sprint 的任务源。
- 需要转实施时，新建更小的执行 checklist。

### 2.3 Done / Old

- 已完成且有真实代码、测试、smoke 或明确验收证据：移动到同域 `done/`。
- 已被覆盖且口径过时但未完成：移动到 `design/old/<domain>/process/` 并标 `[recycle]`。
- 本轮已完成一批 `done/` 归档，详见 `15-design-governance-mvp-post-review-v1.md`。

## 3. P0：先清阻塞和验证红灯

这一步先处理“会干扰后续判断”的验证缺口，不扩新产品面。

### P0.1 FileTree action / open editors smoke 前置

入口文档：

- `design/04-tree-domain/done/4-45-filetree-open-editors-lifecycle-link-checklist-v1.md`
- `design/04-tree-domain/done/4-44-filetree-action-layer-paste-drop-delete-v1.md`

执行目标：

1. 修复或明确 `task430-vscode-explorer-stage7-smoke.js` / `task471-local-folder-bulk-resource-trash-smoke.js` 的 workspace bootstrap 前置条件。
2. 把 4-44 中未通过的 browser smoke 跑绿，或把环境阻塞写成可复现 bug。
3. 补 open editor / filetree active row / lifecycle 状态断言。

验收：

- `node --check scripts/task430-vscode-explorer-stage7-smoke.js`
- `node --check scripts/task471-local-folder-bulk-resource-trash-smoke.js`
- 对应 smoke 实跑通过，或形成 `bugs/04-tree-domain/process/` 中明确 bug。

归档条件：

- `4-45` 四项 checklist 完成后归档到 `04-tree-domain/done/`。
- `4-44` browser smoke 全绿后归档到 `04-tree-domain/done/`。

### P0.2 local folder no-refresh / restore focus

入口文档：

- `design/04-tree-domain/done/4-34-filetree-trash-dual-browser-no-refresh-v1.md`
- `design/04-tree-domain/done/4-28-trash-restore-location-reveal-focus-v1.md`

执行目标：

1. 补 local folder 非 md 资源 trash / restore / purge 的双浏览器 no-refresh 证据。
2. 补 restore 后 DOM focus / reveal 的浏览器证据。

验收：

- 新增或复用 task436 等价 smoke，证明 B 浏览器不刷新能看到 local folder 资源生命周期变化。
- restore location / reveal / focus smoke 截图和 JSON 证据落盘。

归档条件：

- local folder 子项通过后，`4-34` 归档。
- React / Rust 主壳 focus 证据完成后，`4-28` 归档。

## 4. P1：统一工作区身份、BufferStore 和 Page Aggregate

这一步是 MVP 后阶段真正的底座收口。

### P1.1 WorkspacePath / ObjectIdentity

入口文档：

- `design/01-tree-first-graph-kernel/reference/1-4-next-phase-execution-roadmap-v1.md`
- `design/01-tree-first-graph-kernel/reference/1-5-next-phase-sequential-execution-checklist-v1.md`
- `design/01-tree-first-graph-kernel/done/1-6-next-phase-gap-closure-checklist-v1.md`
- `design/05-editor-mainline/done/5-26-resource-open-resolver-convergence-checklist-v1.md`

执行目标：

1. 统一 page `.md`、raw local file、directory、asset folder、mindmap、office 的 canonical identity。
2. 让 FileTree open target、主编辑器 tab、Open Editors snapshot 和 URL active state 消费同一套 identity。
3. 解决 `5-26` 中“正文附件 open resolver 与 FileTree open resolver 收敛”未闭环问题。

验收：

- `cargo test -p mnote-web filetree_runtime -- --test-threads=1`
- `cargo test -p mnote-web web_shell -- --test-threads=1`
- 覆盖 markdown / office / mindmap / raw file / directory 的 browser smoke。

归档条件：

- `5-26` checklist 完成后归档。
- `1-5 / 1-6` 中对应 identity 缺口完成打勾。

### P1.2 DocumentBuffer / BufferStore

入口文档：

- `design/01-tree-first-graph-kernel/reference/1-5-next-phase-sequential-execution-checklist-v1.md`
- `design/01-tree-first-graph-kernel/done/1-6-next-phase-gap-closure-checklist-v1.md`
- `design/05-editor-mainline/done/5-6-page-aggregate-alignment-checklist-v1.md`

执行目标：

1. 让 tiptap、resource tab、watcher、agent 写入和冲突 UI 共用打开态与文件版本仲裁。
2. 避免 dirty editor、资源 tab、文件树点击分别维护状态。
3. 把已有 BufferStore 基础设施接到更多真实 runtime 消费点。

验收：

- `cargo test -p mnote-web document_buffer -- --test-threads=1`
- `cargo test -p mnote-web local_folder -- --test-threads=1`
- 外部修改、dirty buffer、agent writeback、tab 切换 smoke 全部可解释。

归档条件：

- `1-6` 中 BufferStore 运行时接入、浏览器读回、冲突 UI 相关项完成。

### P1.3 Page Aggregate compat 瘦身

入口文档：

- `design/05-editor-mainline/done/5-6-page-aggregate-alignment-checklist-v1.md`
- `design/05-editor-mainline/reference/5-5-page-aggregate-single-truth-alignment-v1.md`
- `design/03-rust-web/done/3-13-rust-web-local-markdown-gfm-ast-parser-migration-v1.md`

执行目标：

1. 收敛 `body.content` / compat join / 临时转换分支。
2. 补 GFM AST parser 写侧尾项：web shell 单测、手写 parser 过渡标记、临时适配分支清理。
3. 明确 `PageAggregateClientState` 哪些仍是合法 draft state，哪些应退出事实源地位。

验收：

- `cargo test -p mnote-web local_markdown -- --test-threads=1`
- `cargo test -p mnote-web web_shell -- --test-threads=1`
- Page Aggregate body/options/title smoke 不回退。

归档条件：

- `3-13` 已完成 GFM AST 迁移尾项并归档到 `design/03-rust-web/done/`；`web_shell.rs` legacy marks 分支改判为兼容层保留，不再作为迁移阻塞项。
- `5-6` 剩余 Phase G/H 小尾项完成或拆成更小 checklist 后归档。

## 5. P2：tree live cache 与 command context

### P2.1 Tree realtime live cache

入口文档：

- `design/03-rust-web/process/3-3-rust-web-tree-realtime-event-stream-v1.md`
- `design/03-rust-web/reference/3-1-rust-web-long-term-checklist-v2.md`

执行目标：

1. 把 local-folder watcher、projection refresh、WS/SSE snapshot/delta/resync 收进同一 live cache。
2. 减少 polling、手动 refresh 和双路径补偿。
3. 明确 Convex realtime 只服务 cloud / sync replica，不回到 local-first 默认真相层。

验收：

- tree create / rename / move / archive / restore / purge 双浏览器 smoke。
- local folder watcher 修改 `.md`、resource、directory 后主壳不整页刷新。

归档条件：

- `3-3` 中统一 live cache 和 no-refresh 矩阵完成后归档。

### P2.2 Local folder tree live consumer 收口

入口文档：

- `design/03-rust-web/process/3-18-local-folder-tree-live-consumer-convergence-checklist-v1.md`

执行状态：

- 2026-05-21：已完成后端 SSE 形状、前端 tree live controller 接入与 browser smoke 复核；`task487` 已在新编译的 3000 进程上通过，`data-mnote-tree-live-transport=local-folder-events`、`data-mnote-tree-live-status=connected`，外部创建 / 删除后 `data-mnote-tree-live-applied=resync`。
- 2026-05-21：completion hook 口径已补进 Reasonix runner / skill；后续派发无需再靠短轮询等待结果。
- `3-18` 已归档到 `design/03-rust-web/done/`，local_folder tree live consumer 收口不再是 `1-8` 的阻塞项。

验收：

- `node scripts/task487-local-folder-tree-live-consumer-smoke.js`
- 真实浏览器里确认 local_folder 不再依赖 `local-folder-static` 作为默认主链。

归档条件：

- `3-18` 已完成并归档，且 smoke / Rust targeted tests 已通过。

### P2.2 Command context / context key

入口文档：

- `design/01-tree-first-graph-kernel/reference/1-5-next-phase-sequential-execution-checklist-v1.md`
- `design/04-tree-domain/done/4-44-filetree-action-layer-paste-drop-delete-v1.md`

执行目标：

1. 菜单、快捷键、按钮、AI 写入能力共享 enablement 判断。
2. 让 readonly、dirty、permission、resource kind、open target 统一成为 context key。
3. 降低 filetree / editor / AI 各自硬编码能力判断的概率。

验收：

- Rust 或 JS 单测覆盖 context key `when` 判断。
- 文件树右键、主编辑器附件菜单、快捷键的 disabled/hidden 行为一致。

归档条件：

- `4-44` action layer smoke 全绿。
- `1-5` command context 对应项完成。

## 6. P3：AI 主线继续收口

### P3.1 online markdown final content truth

入口文档：

- `design/07-ai/done/7-27-online-markdown-writeback-final-content-truth-v2.md`
- `design/07-ai/process/7-18-local-first-agent-file-editing-control-plane-v1.md`

执行目标：

1. 将 `7-27` 限定为历史 online / compat 回归证据，不再把 `mnote.doc.markdown_edit` 推回 active 设计。
2. 以 `7-18` 为当前 AI 编辑执行入口：MNote 只提供文件定位、授权边界、selection/context、审计和前台同步。
3. Hermes / Reasonix 用自身文件 read / write / patch / diff 能力在 allowed roots 内修改 `.md`。
4. 先实现 Agent Target Resolver / target chip / target picker，解决多工作区、多 tab、多资源时到底把哪个对象发送给 agent 的问题。

验收：

- Page AI composer 可见 target chip，能展示 workspace、target title、resourceKind、scope、dirty / readonly 状态。
- target picker 能在当前焦点、打开 tabs、树选中项之间选择；默认 target 来自 last focused editor / resource tab。
- local-first agent 编辑 smoke 断言不调用 `mnote.doc.markdown_edit`。
- Hermes / Reasonix run body 包含 `currentFile`、`allowedRoots`、`allowedFiles`、selection 和 dirty / readonly context。
- Hermes / Reasonix run body 包含 `targetPackage`，且切 tab 后不影响已冻结 run target。
- agent 写入后 watcher -> BufferStore -> Page Aggregate -> ProseMirror 可见更新。
- dirty buffer 下 agent 写入不会静默覆盖。

归档条件：

- `7-27` 的 6 步实施计划已完成并归档；后续只保留 `revisionRef` 注释可见性、复杂 GFM fallback、多余退役函数体清理等增强项，不阻塞 Batch E。
- `7-18` Phase A0/A/B/C 完成后归档到 `design/07-ai/done/`。

### P3.2 ACP runtime 后续步骤

入口文档：

- `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`
- `design/07-ai/done/7-34-acp-runtime-cleanup-availability-stability-tail-v1.md`

执行目标：

1. 继续拆 `7-15` step 8 之后：Reasonix wrapper、前端 runtime selector、存量迁移、旧 HTTP proxy 兼容隔离。
2. 给 `7-12` 的 manifest / review surface / state event 仍未完成项拆新 checklist。
3. Phase C / Review Mode 仍冻结，不在未解冻前实现流式 apply。

验收：

- ACP Hermes 与 ACP Reasonix 均能真实回复。
- session load、permission、tool location、plan UI 不回退。

归档条件：

- `7-15` 后续步骤拆成并完成具体 checklist 后再归档。
- `7-12` Phase B-F 完成或冻结项移出后再归档。

## 7. P4：mindmap、Wolai 对标和参考流程

### P4.1 Mindmap 尾项

入口文档：

- `design/06-mindmap/reference/6-mindmap-kernel-phase6-projection-editor-v1.md`
- `design/06-mindmap/done/6-mindmap-phase6-leptos-ui-shell-reuse-checklist-v1.md`
- `design/06-mindmap/reference/6-mindmap-leptos-adapter-reference-notes-v1.md`

执行目标：

1. 明确 simplemindmap 当前产品化边界。
2. 给 KMind visual parity 设置可退出标准，避免无限尾项。
3. 后续 AI 操作 mindmap 时以 Resource Tree 对象能力为入口，不塞入 Markdown 正文真相。

验收：

- mindmap open / save / filetree active / resource tab smoke 继续通过。
- KMind parity 未完成项要么完成，要么明确降级为参考。

### P4.2 Wolai-aline 持续项

入口文档：

- `design/05-editor-mainline/reference/5-9-wolai-aline-continuous-checklist-v1.md`
- `design/08-wolai-aline-test-flow/reference/wolai-aline-test-flow-v1.md`
- `design/05-editor-mainline/reference/5-7-wolai-page-tree-main-editor-experience-restoration-v1.md`

执行目标：

1. 清理 `5-9` 中已被 `5-6` 覆盖但仍显示 TODO 的 Page Aggregate 项。
2. 对 A4 字体 token、E18 paste/clipboard 等仍有价值项补 smoke 或降级。
3. 所有 Wolai 对标任务继续按 `wolai-aline` skill 和 `08` 流程执行。

归档条件：

- `5-9` 剩余项全部完成或降级后归档。

## 8. P5：远期 / 候选 / 参考

这些文档不进入当前直接执行序列，只有当产品优先级明确时再拆 checklist：

- `design/old/03-rust-web/process/3-17-convex-export-web-entry-v1.md`
  - CLI 已有迁移闭环；Web 管理入口在当前 Convex 默认退役后已降级为历史设想，不作为 active 或 reference 执行入口。
- `design/04-tree-domain/reference/4-23-local-cloud-explicit-bridge-p3-candidate-v1.md`
  - P3 候选，不能进入 local-first 默认主链。
- `design/07-ai/reference/7-17-acp-session-convex-sharing-contract-v1.md`
  - Future sharing contract。
- `design/07-ai/reference/7-28-resource-ai-tool-contract-v1.md`
  - mindmap / office Resource AI tool 草案。
- `design/09-siyuan-reference/reference/9-siyuan-reference-boundary-and-adoption-v1.md`
  - 参考边界，不是实施入口。
- `design/10-review/reference/12-*`、`13-*`、`14-*`
  - 原始 review 证据；执行项已拆出或归档。

## 9. 推荐执行批次

### Batch A：清验证阻塞

1. `4-45`
2. `4-44`
3. `4-34`
4. `4-28`

完成后预期：tree/filetree action 和 trash/no-refresh 的判断不再被 smoke 红灯干扰。

### Batch B：身份与打开态

1. `5-26`
2. `1-5` identity 子项
3. `1-6` BufferStore / conflict browser 子项

完成后预期：页面、资源、tab、filetree active、open editors 可围绕同一 identity 和 buffer state 工作。

### Batch C：Page Aggregate / local markdown 写侧

1. `3-13`
2. `5-6`
3. `1-5` Page Aggregate 子项

完成后预期：正文真相、runtime projection、compat join 的边界更薄。

当前批次状态：

- `3-13` 的空引用块、空表格单元格、legacy marks、web_shell 过渡注释已由 Batch C 追认。
- `1-6` 的 A2 浏览器可见读回、conflict UI、C1 export smoke 已由 Batch C / 本轮复核完成。
- `5-26` 已归档到 `design/05-editor-mainline/done/`，Resource Open Resolver / 主编辑器资源 tab / FileTree open target 的收口证据不再作为 Batch B/C 尾项。
- `4-38` 已归档到 `design/04-tree-domain/done/`，其 resource lifecycle / open target 原始未完成项已由 `4-39` / `4-40` / `4-41` / `4-44` / `4-45` 覆盖。
- `3-13` 已由 Batch F 归档；表格 colspan 降级、table marks、alignment、保存失败状态保留和 web shell legacy marks 兼容层均已有证据。
- `1-6` A7 的 `ai.canWrite` 写入守卫已由 Batch F 接入 hermes_tools；后续新增 AI 写入口必须透传同一份 `commandContext`。
- `task451` 与 `task486` 已在当前 3000 主进程上复测通过，不再作为本轮尾项。

### Batch D：live cache / command context

1. `3-3`（已由 Batch H 归档到 `design/03-rust-web/done/`）
2. `1-5` command context 子项（已由 Batch H 更新 Phase A7 状态）
3. `4-44`（已在 `design/04-tree-domain/done/`，`task471` / `task476` 均已复跑通过）

完成后预期：树域实时与 enablement 判断更统一。

当前批次状态：

- `3-3` 已由 Batch H 归档，`3-14` WS push、`3-18` local folder tree live consumer 和 `task487` 已覆盖旧 9.2 未完成项。
- `1-5` Phase A7 已追认 `CommandContext` / `when` evaluator、FileTree 右键菜单、Delete/Backspace、`ai.canWrite` 写入守卫的完成证据；editor/object tab 更完整 context 仍作为后续扩展，不阻塞本轮 Batch D 收口。
- `task487`、`task471`、`task476` 已在当前 3000 环境复跑通过。

### Batch E：AI 与资源工具

1. `7-18`
2. `7-27`（已归档到 `design/07-ai/done/`，只作为历史 online / compat 回归证据）
3. `7-15` 后续拆分（下一批拆 `7-34`）
4. `7-12` Phase B-F 拆分（下一批拆 `7-34`）
5. `7-28` 仅在 mindmap / office AI 明确排期后进入

完成后预期：local-first AI 主路径稳定，普通 Markdown 编辑不再依赖 MNote 专用编辑工具。

当前批次状态：

- `7-27` 已由 Batch I 复核归档；`mnote.doc.markdown_edit` 在线写回以最终 markdown 为真源，`markdown_edit` 相关 targeted tests 与 manifest write contract 测试已通过。
- `7-18` 已成为当前 active AI 编辑控制面稿；后续实现不再保留 `mnote.doc.markdown_edit` 作为 local-first 默认、fallback 或 remote fallback。
- `7-29` 已完成 Worker A/B/C 审查，结论是 `7-15` Step 15-17 与 `7-12` Phase B/F 不应继续压在一个大文档里推进。
- `7-34` 已完成并归档到 `design/07-ai/done/`：旧 HTTP proxy 默认关闭、`page_ai_workflow` 受共享 tool executor 守卫保护；profile disabled list 三处同源；`capabilityScope` 中心校验已完成；ACP abort API 改为 best-effort cancellation 并主动推送 `run.aborted`；`task488` 已在当前 3000 真实通过，覆盖 3 个 Reasonix ACP session、并发 run、abort 与 SSE terminal event。cache benchmark 仍是 P2 度量；Phase C Review Mode 继续冻结。

### Batch F：体验对标与远期

1. `6-mindmap-*`
2. `5-9`
3. `3-17`
4. `4-23`
5. `7-17`

完成后预期：产品体验和分享同步进入产品化，而不是继续扩底层 compat。

## 10. 每轮执行的固定流程

每次从本文选一个 batch 后，按以下流程推进：

1. 先读本文和对应入口文档。
2. 对该 batch 新建或更新一个小 checklist，不直接修改大而旧的全景文档。
3. 如果有 2 个以上互不冲突方向，按 Reasonix parallel flow 拆 worker。
4. worker 只改其 ownership 范围，不提交 git。
5. Codex 复核 diff、跑 targeted tests / browser smoke。
6. 完成后：
   - 更新 checklist 状态和证据。
   - 能归档的移动到 `done/`。
   - 被覆盖但未完成的移入 `old/` 并标 `[recycle]`。
   - 更新本文对应 batch 状态。
   - 运行 `codegraph sync .`。

> **Reasonix 执行说明**：Reasonix 编码任务默认使用 30 分钟超时；完成后应通过 completion hook 主动回传结果，不再依赖短轮询等待。

## 11. 不做事项

- 不按文件编号顺序清空 process。
- 不把 `reference/` 下的资料当作当前实现任务。
- 不因为文档老就移动到 `done/`；必须有真实完成证据。
- 不把 Phase C / Review Mode / cloud sync / sharing future 合同提前实现。
- 不恢复旧 Next / BlockNote / Convex 默认主存储口径。
