edit | blame | history | raw

2026-07-01 Mindraw 插件入口 M4C-MCPE-01 收口

用户目标

Coder@m4c 身份领取统一台账 P-20260701-mindraw-codex-plugin-entryM4C-MCPE-01,把 MEXP10 从 PM 规格推进到 m4c 侧可执行的 Codex plugin shell / project canvas entry。

目标入口:用户在 Codex 项目中说 Open the Mindraw canvas for this project. 后,插件以当前项目为 projectRoot,发现或创建 MindrawCanvas/,维护最新创建画布 registry,提供只读预览侧边栏和 编辑 入口交给 Mindraw 桌面 App。

已完成事项

  • 新建 ~/plugins/mindraw Codex plugin scaffold。
  • 补齐 plugin metadata、MCP 配置、skill、local launcher、sidebar service、MCP stdio server 和共享 project canvas 库。
  • mindraw-open-canvas skill 已包含触发语 Open the Mindraw canvas for this project.
  • service / MCP 使用传入项目根作为 projectRoot,不会把 plugin 目录当项目根。
  • MindrawCanvas/ latest-created registry 已实现:默认重复打开最后 / 最新创建画布;mtime 不影响选择。
  • 显式新建或项目无画布时,不手写 .mindraw 包内部,而是返回 MINDRAW_CANVAS_CREATE_API_REQUIRED
  • 预览缺失时返回 MINDRAW_PREVIEW_SOURCE_REQUIRED;有 approved preview artifact 的 fixture 下,sidebar GET /api/preview、pan / zoom / reset / 编辑 入口 smoke 通过。
  • 已回写主项目台账并将 M4C-MCPE-01 标为 Partial complete / BLOCKED_FOR_PM_GATE_ON_MINDRAW_CAPABILITY
  • 已提交 m4c 03-O 正式证据,commit:add4795 docs: record M4C MCPE plugin shell

核心事实 / 变更快照

  • 变更对象:Mindraw Codex plugin shell。
  • plugin 路径:/Users/ar/plugins/mindraw
  • m4c 正式 QA:/Users/ar/Projects/ExcalidrawX/p.mindrawforcodex/03-O/K2.项目管理/联调QA/2026-07-01-M4C-MCPE-01PluginShell.md
  • 主计划项:/Users/ar/Projects/ExcalidrawX/02-P/plan-progress.markdownP-20260701-mindraw-codex-plugin-entry
  • m4c commit:add4795
  • SkillSpector:SAFE,score 0,issues 0
  • Plugin validation:PASS。
  • m4c 03-O 状态:提交后 clean。

变更前:

  • ~/plugins/mindraw 不存在。
  • m4c 侧没有 Codex plugin shell、mindraw-open-canvas skill、project canvas service 或 MEXP10 QA 证据。

变更后:

  • ~/plugins/mindraw/.codex-plugin/plugin.json
  • ~/plugins/mindraw/.mcp.json
  • ~/plugins/mindraw/package.json
  • ~/plugins/mindraw/README.md
  • ~/plugins/mindraw/lib/project-canvas.mjs
  • ~/plugins/mindraw/mcp/server.mjs
  • ~/plugins/mindraw/scripts/mindraw-canvas-service.mjs
  • ~/plugins/mindraw/scripts/start-canvas.sh
  • ~/plugins/mindraw/scripts/start-mcp.sh
  • ~/plugins/mindraw/skills/mindraw-open-canvas/SKILL.md

范围边界:

  • plugin 源码在 ~/plugins/mindraw,不属于 m4c 03-O Git 根。
  • m4c 03-O 只提交正式 QA 和索引。
  • p.mindrawforcodex/02-P 继续作为过程 QA 证据,不纳入 m4c Git。
  • 未自动修改任意用户项目 .gitignore,只输出 MindrawCanvas/ 忽略建议。
  • 未手写 .mindraw 包内部 drawing.excalidrawmanifest.json.assets/

关键决策

  • 当前 Mindraw runtime 未暴露 approved blank canvas create API、完整预览 snapshot / artifact API、stable open package capability。
  • 因此 M4C-MCPE-01 只能作为 plugin shell / guard / QA 收口,不能宣称 MEXP10 完整 PASS。
  • 精确 blocker:
  • MINDRAW_CANVAS_CREATE_API_REQUIRED
  • MINDRAW_PREVIEW_SOURCE_REQUIRED
  • MINDRAW_OPEN_PACKAGE_API_REQUIRED
  • 下一步归属:PM 派发 / 收敛 MD-MCPE-01,由 Mindraw 补 create / preview / open capability 后再进入 PM-MCPE-GATE

文件变更

插件目录:

  • /Users/ar/plugins/mindraw/.codex-plugin/plugin.json
  • /Users/ar/plugins/mindraw/.mcp.json
  • /Users/ar/plugins/mindraw/package.json
  • /Users/ar/plugins/mindraw/README.md
  • /Users/ar/plugins/mindraw/lib/project-canvas.mjs
  • /Users/ar/plugins/mindraw/mcp/server.mjs
  • /Users/ar/plugins/mindraw/scripts/mindraw-canvas-service.mjs
  • /Users/ar/plugins/mindraw/scripts/start-canvas.sh
  • /Users/ar/plugins/mindraw/scripts/start-mcp.sh
  • /Users/ar/plugins/mindraw/skills/mindraw-open-canvas/SKILL.md

m4c 正式输出区:

  • /Users/ar/Projects/ExcalidrawX/p.mindrawforcodex/03-O/C1.source/CODEGRAPH.md
  • /Users/ar/Projects/ExcalidrawX/p.mindrawforcodex/03-O/K2.项目管理/README.md
  • /Users/ar/Projects/ExcalidrawX/p.mindrawforcodex/03-O/K2.项目管理/联调QA/2026-07-01-M4C-MCPE-01PluginShell.md

过程与台账:

  • /Users/ar/Projects/ExcalidrawX/02-P/plan-progress.markdown
  • /Users/ar/Projects/ExcalidrawX/p.mindrawforcodex/INDEX.md
  • /Users/ar/Projects/ExcalidrawX/p.mindrawforcodex/02-P/MEXP10-CodexPluginEntry/qa/

QA 结论

  • npm check:PASS。
  • plugin validation:PASS。
  • SkillSpector:SAFE。
  • project canvas smoke:PASS。
  • MCP stdio smoke:PASS。
  • sidebar service smoke:PASS for shell and approved preview fixture。
  • 敏感信息扫描:正式 QA / 过程 QA 未发现认证凭据、真实运行时端点、私钥、证书包、API 凭据或原始图片 bytes 泄漏。

可复用命令 / Runbook

用途:复验 Mindraw Codex plugin shell、SkillSpector gate、MCP stdio 和 sidebar preview service。

前置条件:

  • 本机存在 /Users/ar/plugins/mindraw
  • 需要 Node.js、Python 3、SkillSpector。
  • 不要求 Mindraw 已提供 create / preview / open capability;缺能力时应返回精确 blocker。

设置 / 验证命令:

npm run --prefix /Users/ar/plugins/mindraw check
node /Users/ar/plugins/mindraw/scripts/mindraw-canvas-service.mjs smoke --report /Users/ar/Projects/ExcalidrawX/p.mindrawforcodex/02-P/MEXP10-CodexPluginEntry/qa/m4c-mcpe-01-plugin-shell-smoke.json
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 markdown --output /Users/ar/Projects/ExcalidrawX/p.mindrawforcodex/02-P/MEXP10-CodexPluginEntry/qa/m4c-mcpe-01-skillspector.md
skillspector scan /Users/ar/plugins/mindraw/skills/mindraw-open-canvas --no-llm --format json --output /Users/ar/Projects/ExcalidrawX/p.mindrawforcodex/02-P/MEXP10-CodexPluginEntry/qa/m4c-mcpe-01-skillspector.json
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":"inspect_mindraw_project_canvas","arguments":{"projectRoot":"/tmp/mindraw-mcp-smoke-project"}}}' | /Users/ar/plugins/mindraw/scripts/start-mcp.sh

Sidebar service fixture smoke:

tmp=$(mktemp -d /tmp/mindraw-service-smoke.XXXXXX)
mkdir -p "$tmp/MindrawCanvas/26.0701-01.mindraw"
printf '%s\n' '<svg xmlns="http://www.w3.org/2000/svg" width="400" height="240"><rect width="400" height="240" fill="white"/><text x="24" y="48" font-size="24">Preview</text></svg>' > "$tmp/MindrawCanvas/26.0701-01.mindraw/preview.svg"
node /Users/ar/plugins/mindraw/scripts/mindraw-canvas-service.mjs serve --project-root "$tmp" --port 43229

另一个终端验证:

curl -fsS http://127.0.0.1:43229/api/state
curl -fsS http://127.0.0.1:43229/
curl -fsS -D /tmp/mindraw-preview-headers.txt -o /tmp/mindraw-preview.svg http://127.0.0.1:43229/api/preview

清理 / 恢复:

# 停止 service 进程:在运行 server 的终端按 Ctrl-C。
rm -rf "$tmp"

搜索关键词:M4C-MCPE-01mindraw-open-canvasMINDRAW_CANVAS_CREATE_API_REQUIREDMINDRAW_PREVIEW_SOURCE_REQUIREDMINDRAW_OPEN_PACKAGE_API_REQUIRED

未决问题

  • Mindraw 需要补 approved blank canvas create API 或 template create API。
  • Mindraw 需要补完整只读预览 snapshot API 或 approved preview artifact。
  • Mindraw 需要补 stable open package / deep link capability,替代当前临时 macOS handoff。
  • PM 需要在 Mindraw capability 补齐后执行 PM-MCPE-GATE,验证真实 install / reload 和真实项目目录行为。

后续建议

  • 派发 MD-MCPE-01 时直接沿用本轮三个 blocker 作为 Mindraw 侧最小能力清单。
  • PM Gate 不应因为 m4c plugin shell 已通过验证而跳过 Mindraw create / preview / open capability 验收。