edit | blame | history | raw

MEXP10 PM Gate

日期:2026-07-01

用户目标

用户确认以 MEXP10 为当前 Goal:完成 MD-MCPE-01 -> M4C-MCPE-02 -> PM-MCPE-GATE 的端到端验收,让 ~/plugins/mindraw 支持 Open the Mindraw canvas for this project.,在项目根创建 / 打开 MindrawCanvas/ 下最新 .mindraw,侧边栏显示完整只读预览,并通过 编辑 / 双击跳转 Mindraw 桌面 App 完整编辑。

已完成事项

  • PM 复核 M4C-MCPE-02 worker 证据,确认 ~/plugins/mindraw 已实际消费 Mindraw createBlankPackage / previewSnapshot / openPackage capability。
  • PM 重建并启动当前 debug QA App:/Users/ar/Projects/ExcalidrawX/src-tauri/target/debug/bundle/macos/Mindraw.app
  • npm run doctor:mindraw -- --pretty 在新 debug QA App 启动后显示 projectCanvasCreate=passprojectCanvasPreview=passprojectCanvasOpen=passtargetFramePixelPayload=pass
  • live MCP 验证首次创建、重复打开不新建、显式新建递增、mtime 干扰、registry 丢失恢复、非规范文件 warning。
  • live sidebar HTTP 验证 /api/state READY、/api/preview 返回 image/svg+xml full preview、DOM 含 pan / zoom / reset / 编辑 / double-click handoff。
  • /api/open-edit 返回 mindraw.app.open_packageopened=truefallbackUsed=false
  • 新增 PM Gate 报告:02-P/MEXP10-CodexPluginEntry/pm/mexp10-pm-gate-live-20260701.md
  • 更新 02-P/plan-progress.markdownP-20260701-mindraw-codex-plugin-entry 状态改为 Complete / PM-MCPE-GATE GO
  • 更新 02-P/pmo-active-assignments.jsonM4C-MCPE-02-20260701active 改为 done
  • 更新 INDEX.md:补充 MEXP10 PM Gate live 报告入口。

关键决策

  • MEXP10 当前 Goal 达成的是 debug QA App + installed Codex plugin cache 的 live Gate,不等同于 DMG / H8 / formal release。
  • /Applications/Mindraw.app 未被安装、替换或覆盖;若要让普通安装版也具备该能力,需要另立 release / installer goal。
  • Python / bundled Playwright 在本机不可用,PM Gate 对 sidebar UI 采用 live HTTP + DOM 证据,不临时安装依赖。
  • MEXP09B pixel payload baseline 保持有效,MEXP10 不回退到旧 MEXP09 bytesIncluded=false / pixelsIncluded=false 验收口径。

核心事实 / 变更快照

  • 变更对象:P-20260701-mindraw-codex-plugin-entry 计划项、M4C-MCPE-02 assignment、MEXP10 Gate 证据。
  • 事实来源:
  • Mindraw source commit:662333b Add Mindraw Codex project canvas App API
  • m4c 03-O commit:64832c2 docs: record M4C MCPE plugin retry
  • Gate 报告:02-P/MEXP10-CodexPluginEntry/pm/mexp10-pm-gate-live-20260701.md
  • 统一台账:02-P/plan-progress.markdown
  • assignment:02-P/pmo-active-assignments.json
  • 变更前:
  • 计划状态:Active / M4C-MCPE-02 m4c retry PARTIAL_FOR_LIVE_RUNTIME; waiting PM-MCPE-GATE live runtime precheck
  • M4C-MCPE-02-20260701 assignment:active
  • PM-MCPE-GATE:等待 live runtime capability。
  • 变更后:
  • 计划状态:Complete / PM-MCPE-GATE GO
  • M4C-MCPE-02-20260701 assignment:done
  • PM-MCPE-GATEComplete / GO / live runtime PASS
  • Gate live project:/tmp/mindraw-mexp10-pm-live-gate-20260701224035
  • Live canvases:26.0701-01.mindraw26.0701-02.mindraw
  • 范围边界:
  • 不发布 DMG。
  • 不替换 /Applications/Mindraw.app
  • 不做 browser full editor。
  • 不让插件 direct-write .mindraw internals。
  • 验证证据:
  • Plugin check / validation / SkillSpector / source smoke / MCP smoke / HTTP smoke / installed cache smoke PASS。
  • Debug QA App doctor project canvas capabilities PASS。
  • Live MCP / live sidebar Gate G1-G12 PASS。

文件变更

  • 新增:02-P/MEXP10-CodexPluginEntry/pm/mexp10-pm-gate-live-20260701.md
  • 修改:02-P/plan-progress.markdown
  • 修改:02-P/pmo-active-assignments.json
  • 修改:INDEX.md
  • 修改:.codex-sessionhistory/COMMANDS.md

可复用命令 / Runbook

用途:复跑 MEXP10 PM live Gate,确认当前 debug QA App runtime 和 ~/plugins/mindraw 插件链路可用。

前置条件:

  • /Users/ar/Projects/ExcalidrawX 执行。
  • 不覆盖 /Applications/Mindraw.app
  • 如果已有旧 debug App 进程,可先退出旧 debug App,再重建当前 debug bundle。

设置与验证命令:

npm run --prefix /Users/ar/plugins/mindraw check
python3 /Users/ar/.codex/skills/.system/plugin-creator/scripts/validate_plugin.py /Users/ar/plugins/mindraw
skillspector scan /Users/ar/plugins/mindraw/skills/mindraw-open-canvas --no-llm --format json --output /tmp/mindraw-mexp10-skillspector-pm.json
node /Users/ar/plugins/mindraw/scripts/mindraw-canvas-service.mjs smoke --report /tmp/mindraw-mexp10-plugin-smoke-pm.json
node /Users/ar/plugins/mindraw/scripts/mindraw-canvas-service.mjs smoke-mcp --report /tmp/mindraw-mexp10-mcp-smoke-pm.json
node /Users/ar/plugins/mindraw/scripts/mindraw-canvas-service.mjs smoke-http --report /tmp/mindraw-mexp10-http-smoke-pm.json
python3 /Users/ar/.codex/skills/.system/plugin-creator/scripts/validate_plugin.py /Users/ar/.codex/plugins/cache/personal/mindraw/0.1.0+codex.20260701142826
npm run --prefix /Users/ar/.codex/plugins/cache/personal/mindraw/0.1.0+codex.20260701142826 check
node /Users/ar/.codex/plugins/cache/personal/mindraw/0.1.0+codex.20260701142826/scripts/mindraw-canvas-service.mjs smoke --report /tmp/mindraw-mexp10-installed-cache-smoke-pm.json
npm run tauri -- build --debug --bundles app
open -n /Users/ar/Projects/ExcalidrawX/src-tauri/target/debug/bundle/macos/Mindraw.app
npm run doctor:mindraw -- --pretty

Live MCP 验证:

PROJECT_ROOT="/tmp/mindraw-mexp10-pm-live-gate-$(date +%Y%m%d%H%M%S)"
mkdir -p "$PROJECT_ROOT"
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' \
"{\"jsonrpc\":\"2.0\",\"id\":3,\"method\":\"tools/call\",\"params\":{\"name\":\"open_mindraw_project_canvas\",\"arguments\":{\"projectRoot\":\"$PROJECT_ROOT\",\"dryRunOpen\":false}}}" \
"{\"jsonrpc\":\"2.0\",\"id\":4,\"method\":\"tools/call\",\"params\":{\"name\":\"open_mindraw_project_canvas\",\"arguments\":{\"projectRoot\":\"$PROJECT_ROOT\",\"dryRunOpen\":true}}}" \
"{\"jsonrpc\":\"2.0\",\"id\":5,\"method\":\"tools/call\",\"params\":{\"name\":\"inspect_mindraw_project_canvas\",\"arguments\":{\"projectRoot\":\"$PROJECT_ROOT\",\"createNew\":true}}}" \
| /Users/ar/plugins/mindraw/scripts/start-mcp.sh
find "$PROJECT_ROOT/MindrawCanvas" -maxdepth 2 -type d -name '*.mindraw' -print | sort

Sidebar 验证:

node /Users/ar/plugins/mindraw/scripts/mindraw-canvas-service.mjs serve --project-root "$PROJECT_ROOT" --port 43239
curl -sS http://127.0.0.1:43239/api/state
curl -sSI http://127.0.0.1:43239/api/preview
curl -sS http://127.0.0.1:43239/ | rg -n 'id="previewImage"|id="zoomOut"|id="zoomIn"|id="reset"|id="edit"|dblclick|pointerdown|pointermove|wheel|fetch\("/api/open-edit"|src="/api/preview"'
curl -sS -X POST http://127.0.0.1:43239/api/open-edit

清理 / 恢复:

# 结束 sidebar service:在该服务终端 Ctrl-C。
# 如需退出 debug QA App:
pkill -f '/Users/ar/Projects/ExcalidrawX/src-tauri/target/debug/bundle/macos/Mindraw.app/Contents/MacOS/mindraw'

搜索关键词:MEXP10PMGatePM-MCPE-GATEmindraw-mexp10-pm-live-gatecreateBlankPackagepreviewSnapshotopenPackage26.0701-02.mindraw

未决问题

  • 本轮没有生成新的 DMG;用户如果希望普通安装版 /Applications/Mindraw.app 具备 MEXP10,需要单独开 release / installer goal。
  • 侧边栏 UI 未用 Playwright 截图验证,原因是本机 Python / bundled runtime 均无 Playwright;当前证据为 HTTP + DOM。

后续建议

  • 下一阶段可以进入 MEXP11 Project Canvas Lifecycle / MEXP12 Sidebar Preview polish,把项目画布生命周期和侧边栏体验做产品化增强。
  • 如用户希望立即试用,保持当前 debug QA App 运行即可;否则需等 release goal 产出新安装包。