# 次级域与设计治理实现偏差审查

> 执行状态：已归档到 `design/10-review/done/`。本文保留为历史审查快照，当前活跃口径以 `./06-execution-checklist-and-acceptance.md` 为准。

## 范围

本次只审查 Mindmap、AI、OnlyOffice、Wolai-aline、SiYuan reference，以及 `design/process/done` 治理口径与当前实现方向的一致性。重点读取了 `ARCHITECTURE.md`、`design/README.md`、`design/06-mindmap/process/*`、`design/07-ai/process/*`、`design/08-wolai-aline-test-flow/process/wolai-aline-test-flow-v1.md`、`design/09-siyuan-reference/process/9-siyuan-reference-boundary-and-adoption-v1.md`、`design/90-reference/*`，并对照了 Mindmap、AI route/lib、OnlyOffice route/adapter 与相关 Convex/Rust runtime 代码。

## 结论

总体方向与当前主线基本一致：Mindmap 已明确降为 `tree-first graph kernel` 的视图/编辑挂件；AI 长期方向已从 `mnote-cli` 收口改为 Hermes 页面内客户端 + mnote Hermes skill/plugin；OnlyOffice 仍是独立页面型编辑器边界，SiYuan 参考稿没有发现被提升为上位架构来源的证据。

主要风险集中在三处：OnlyOffice 在 `mnote-web` 主入口里的 callback/forcesave 仍是 no-op，而 legacy Next route 已有真实写回链；Mindmap 的导出 action 在 schema/action map 中暴露，但 bridge 安全命令集不支持；Mindmap AI 补完 route 当前硬返回 501，和 Rust tool 已登记的能力面不闭合。

## 关键发现表格

| ID | 分类 | 级别 | 发现 | 简短证据 | 建议 |
| --- | --- | --- | --- | --- | --- |
| F-01 | 实现偏差 / 风险 | P1 | OnlyOffice `mnote-web` 主入口已挂载 callback/forcesave，但当前实现不写回，只返回成功或 noop，可能让 3000 主链下的 OnlyOffice 保存丢失。 | `rust/crates/mnote-web/src/routes/mod.rs:78-84` 挂载 `/api/onlyoffice/callback` 与 `/api/onlyoffice/forcesave`；`rust/crates/mnote-web/src/routes/onlyoffice.rs:717-759` callback 只记录日志并返回 `{error:0}`，forcesave 返回 `mnote-web-rust-noop`；而 `wolai-frontend/src/app/api/onlyoffice/callback/route.ts:93-192` 有真实 Convex 写回链。 | 优先把 Rust route 接到 `onlyoffice_prepare_callback` / media asset writeback，或显式把该路由代理到 legacy Next，避免主入口 shadow 掉真实写回。 |
| F-02 | 未完成 | P2 | Mindmap `export` 动作暴露给 UI action map，但 simple-mind-map 安全执行器不允许 `EXPORT`，默认路径可能显示能力却执行失败。 | `wolai-frontend/src/lib/mindmap/mindmap-action-map.ts:65` 将 `export` 映射为 runtimeCommand `EXPORT`；`wolai-frontend/src/lib/mindmap/simple-mind-map-bridge.ts:119-129` 的 `SIMPLE_MIND_MAP_SAFE_COMMANDS` 不包含 `EXPORT`。 | 要么把 `EXPORT` 加入安全命令并补 smoke，要么在 UI state 中继续禁用导出并标注为延期。 |
| F-03 | 未完成 / 方向变化 | P2 | Mindmap AI 补完 route 当前直接 501，后续大段旧 Supabase/在线 AI 实现被注释；但 Rust tool registry 已登记 `mindmap_expand_node`，形成“工具存在、产品入口不可用”的断层。 | `wolai-frontend/src/app/api/mindmap-ai/expand-node/route.ts:90-97` 校验后直接返回 `501`；同文件后续注释块仍保留旧 Supabase/AI 逻辑；`rust/crates/core-protocol/src/tool.rs:231-240` 与 `rust/crates/bridge-runtime/src/lib.rs:3803-3812` 已有 `mindmap_expand_node`。 | 若该能力仍在 Phase 6/7 范围内，应按 CLI/Rust bridge 路线重接；若延期，应把 route 标成 retired/debug，避免前端或测试误以为可用。 |
| F-04 | 方向变化 / 文档滞后 | P2 | AI 主 Web route 曾收口到 `mnote-cli` host，但新主线已改为 Hermes 页面内客户端；`wolai-backend` 仍暴露 `openai_agents_python` 文档 agent route 与旧工具面，旧 route / sidecar / host 的退场关系需重新明确。 | `wolai-frontend/src/app/api/ai-agent/run/route.ts:36-57` 曾明确拒绝 codex/hermes/claudecode 并进入 `startMnoteCliAgentHostRun`；`wolai-backend/app/routers/ai_agent.py:34-57` 仍暴露 `/ai-agent/health`、`/ai-agent/document/run`，health 返回 `bridge: openai_agents_python`；`wolai-backend/app/services/ai_document_agent.py:1174-1470` 仍指令 agent 使用 `doc_insert_blocks`、`doc_replace_range`、`slash_run`。 | 以 `design/07-ai/done/7-3-page-ai-hermes-panel-and-mnote-plugin-v1.md` 为上位依据，明确页面 AI 改走 Hermes client proxy，mnote 能力通过 Hermes skill/plugin 暴露；`openai-agents-python` 和 `mnote-cli host` 只保留为历史/兼容/内部适配路径并补退场计划。 |

2026-05-14 复核：F-04 的长期方向已由 `design/07-ai/done/7-4-page-ai-hermes-panel-execution-checklist-v1.md` 继续落地到 mnote-web Hermes client proxy 与 mnote Hermes tool routes；旧 `/api/ai-agent/run` 已在 mnote-web 中收口为 `legacy_ai_agent_run_retired` guard，旧 `openai-agents-python` / `mnote-cli host` 只按历史/兼容/对照链处理，不再代表页面 AI 长期主入口。
| F-05 | 文档治理风险 | P3 | `design/90-reference` 符合“参考资料”目录定位，但内容仍带有问答式残留，容易被后续 worker 误用为正式设计结论。 | `design/README.md` 明确 `90-reference/` 不参与 process/done 状态判断；`design/90-reference/90-1-filetree.md` 末尾保留“需要我给你...”类对话尾巴；`design/90-reference/90-2-yemianshu.md` 同样保留示例请求口吻。 | 低优先级清理为中性参考笔记，并在引用时强制以 `ARCHITECTURE.md` 和主线设计为上位依据。 |

## 证据

### Mindmap

- 设计口径清晰：`design/06-mindmap/process/6-mindmap-kernel-phase6-projection-editor-v1.md` 明确 Phase 6 主线是 `Rust kernel truth -> mindmap.simple_mind_map_scene.v1 -> leptos-mindmap editor island -> simple-mind-map runtime -> command bridge`，并禁止把 runtime data 当唯一事实源。
- 实现已对齐主线壳：`rust/crates/mnote-web/src/routes/mindmap_shell.rs:105-123` 输出 `mnote.mindmap_shell.v1`、`mindmap.simple_mind_map_scene.get` 与 `mindmap.command.apply`；`rust/crates/mnote-web/src/ssr/pages/mindmap.rs:50-56` 提供 standalone island 挂载点。
- 旧 React 块已自我标注为 legacy/compat/reference：`wolai-frontend/src/components/editor/blocks/MindmapBlock.tsx:3-5` 明确 3000 文档页默认主链是 `leptos-tiptap NodeView + leptos-mindmap adapter`。
- 仍有 compat 数据层：`wolai-frontend/convex/schema.ts:164-184` 的 `mindmaps.data: v.any()` 仍承载导图数据；这与当前过渡态兼容，但不应被描述为长期 canonical truth。

### AI

- 旧 CLI-first 入口曾基本对齐：`wolai-frontend/src/app/api/ai-agent/run/route.ts:36-57` 将默认执行入口限定到 `mnote-cli host`，拒绝旧 provider；但该口径已被 2026-05-13 的 Hermes 面板主线覆盖。
- 结构化 artifact 设计应继续保留对象模型，但触发方改为 Hermes tool call -> mnote plugin -> Rust runtime / kernel，见 `design/07-ai/done/7-3-page-ai-hermes-panel-and-mnote-plugin-v1.md` 与 `design/07-ai/done/7-2-phase7-structured-artifact-write-chain-v1.md`。
- 旧后端 agent 仍存在：`wolai-backend/app/routers/ai_agent.py:47-57` 仍提供 streaming run；这只能作为历史/兼容/对照链，不能被误认为长期默认主编排。

### OnlyOffice

- 正确边界已有：`rust/crates/adapter-onlyoffice/src/lib.rs:124-126` 明确 adapter 只定义资产定位、会话、签名、代理、callback/forcesave 边界，不把 OnlyOffice 变成主事实层。
- `mnote-web` 页面是独立编辑页：`rust/crates/mnote-web/src/routes/onlyoffice.rs:325-630` 直接渲染 `/onlyoffice`，通过 DocsAPI 创建编辑器，未嵌入正文主编辑画布。
- 关键风险是写回链 owner 分裂：Rust 主入口 no-op 与 legacy Next 真写回并存，见 F-01。

### Wolai-aline

- 流程文档严格要求“Wolai 基线 -> RED smoke -> 小范围实现 -> 本地验证 -> subagent 复测 -> 主线程截图复核”：`design/08-wolai-aline-test-flow/process/wolai-aline-test-flow-v1.md`。
- 本次不是具体 Wolai 对标实现任务，未执行浏览器对标；未发现该流程被错误提升为产品架构来源。

### SiYuan Reference

- `design/09-siyuan-reference/process/9-siyuan-reference-boundary-and-adoption-v1.md` 的边界与当前主线一致：思源只作为产品能力与交互参考，不替代 `tree-first graph kernel`、Rust kernel、Page Aggregate、tree command 与 tree realtime。
- 当前只读检索未发现将 SiYuan `.sy`、SQL API 或前端 runtime 直接提升为 mnote 长期事实源的实现证据；若后续新增属性视图/数据库视图，应继续先做对象域评估。

## 建议优先级

1. P1：补齐或明确代理 OnlyOffice Rust callback/forcesave 写回链，避免主入口下保存成功但内容未持久化。
2. P2：收口 Mindmap action 可用性，先修 `export` 映射与安全命令不一致，再继续扩展 UI 能力。
3. P2：处理 Mindmap AI route：要么按 Hermes plugin / Rust bridge 重接 `mindmap_expand_node`，要么显式退役该 Next route。
4. P2：继续保持 `wolai-backend` AI agent、旧 `/api/ai-agent/run` 与 `mnote-cli host` 的历史/兼容定位和访问边界；页面 AI 长期主链已经由 `7-4` 收口到 Hermes 面板 + mnote plugin，后续只在各自 legacy domain 里拆迁移。
5. P3：清理 `design/90-reference` 的问答残留，并在引用规范里再次强调它不是 process/done 设计稿。

## 本次修改文件

- `/mnt/Data1T/mnote/design/10-review/done/04-secondary-domains-and-design-governance-review.md`
