# MEXP13 PM Gate 日期:2026-07-02 身份:Mindraw PM / PMO Plan ID:`P-20260701-app-codex-plugin-acceptance-bundle` Gate:`PM-BUNDLE-GATE` ## 用户目标 用户希望交付一组可真实体验的 Mindraw App + Codex Plugin 联合验收包,并确认当前 worker 是否卡住或都在休息。 本轮完成标准: - 复核 `MD-BUNDLE-01` App DMG 候选包与 `M4C-BUNDLE-01` Codex plugin runbook 证据。 - 给出 `PM-BUNDLE-GATE` Go / No-Go。 - 如果通过,明确下一步是否需要用户人工验收,而不是继续等待 worker。 不做范围: - 不做 H8 / formal release。 - 不做 notarized installer。 - 不自动覆盖 `/Applications/Mindraw.app`。 - 不修改 Mindraw 源码或 plugin 源码。 ## 已完成事项 - 确认 `MD-BUNDLE-01` 已完成 Mindraw App 侧 DMG candidate。 - 确认 `M4C-BUNDLE-01` 已完成 Codex plugin packaging / install runbook。 - PM 独立复跑 App DMG、manifest、plugin source、installed cache、SkillSpector、lifecycle / HTTP / MCP smoke 与 sensitive scan。 - 将 `PM-BUNDLE-GATE` 结论写入统一台账:`GO_FOR_USER_ACCEPTANCE / NOT_FORMAL_RELEASE`。 - 将 `M4C-BUNDLE-01` active assignment 关闭为 `done`。 - 确认 `02-P/pmo-active-assignments.json` 当前没有 active worker。 ## 核心事实 / 变更快照 变更对象:`P-20260701-app-codex-plugin-acceptance-bundle` 的执行状态。 事实来源: - `02-P/plan-progress.markdown` - `02-P/pmo-active-assignments.json` - `02-P/MEXP13-AcceptanceBundle/pm/mexp13-pm-bundle-gate-20260702.md` - `p.mindrawforcodex/03-O/K2.项目管理/联调QA/2026-07-02-M4C-BUNDLE-01AcceptanceBundle.md` 变更前: - `MD-BUNDLE-01` 已完成。 - `M4C-BUNDLE-01` 曾处于 active,等待 m4c worker 交付 runbook。 - `PM-BUNDLE-GATE` 未完成,不能交给用户验收。 变更后: - `MD-BUNDLE-01`:`Complete / PASS_FOR_MD_BUNDLE_01_APP_DMG / READY_FOR_M4C_BUNDLE_01`。 - `M4C-BUNDLE-01`:`Complete / PASS_FOR_M4C_BUNDLE_01 / READY_FOR_PM_BUNDLE_GATE`。 - `PM-BUNDLE-GATE`:`Complete / GO_FOR_USER_ACCEPTANCE / NOT_FORMAL_RELEASE`。 - `USER-BUNDLE-ACCEPTANCE`:`Waiting user hands-on`。 - Active assignments:空数组,当前没有 worker 正在执行。 绑定 App 事实: - Version:`1.2.0` - Build:`Build202607020214` - Release class:`mexp13-acceptance-bundle-not-formal-release-not-notarized-installer` - Source commit / tag target:`890747d95e7cc9ea7e3d5c295aeeb8903f625137` - Release tag:`v1.2.0-Build202607020214` - DMG:`03-O/C2.builds/releases/Build202607020214/Mindraw_1.2.0_aarch64-Build202607020214.dmg` - DMG SHA256:`a950a7f3aed60cf00b964912bd7651ac1f7e66cf1885bc5569f1553e80ab7356` - Manifest:`03-O/C2.builds/releases/Build202607020214/release-manifest.json` - Manifest SHA256:`353aa04d955961f4b545ce30c59493f8d4003ec7ba80d66615195aac3706a949` - Signing boundary:App ad-hoc signed;DMG unsigned;notarization not requested。 绑定 plugin 事实: - Plugin:`mindraw@personal` - Source:`/Users/ar/plugins/mindraw` - Installed cache:`/Users/ar/.codex/plugins/cache/personal/mindraw/0.1.0+codex.20260701174929` - Version:`0.1.0+codex.20260701174929` - `codex plugin list` 显示 installed / enabled。 范围边界: - 本包是内部联合体验验收包,不是正式发布包。 - PM Gate 只允许进入用户人工体验验收;用户验收通过前,不得宣称最终验收通过。 - 如要正式对外 / 可回滚发布,需要另立 signing / notarization / fresh machine / formal release Gate。 ## 文件变更 - 新增:`02-P/MEXP13-AcceptanceBundle/pm/mexp13-pm-bundle-gate-20260702.md` - 新增:`02-P/MEXP13-AcceptanceBundle/pm/gate-rerun-20260702/` - 更新:`02-P/plan-progress.markdown` - 更新:`02-P/pmo-active-assignments.json` - 更新:`INDEX.md` - 新增本会话记录:`.codex-sessionhistory/2026-07-02-MEXP13PMGate.md` - 更新命令索引:`.codex-sessionhistory/COMMANDS.md` ## 验证证据 PM Gate 复跑结论: - DMG / manifest SHA:PASS。 - Manifest version / build / releaseClass / artifact SHA consistency:PASS。 - `hdiutil verify`:PASS。 - DMG 挂载结构:PASS,包含 `Mindraw.app` 和 `Applications -> /Applications`。 - Mounted App metadata:PASS,bundle id `com.mindraw.desktop`、version `1.2.0`、build `Build202607020214`。 - Mounted App `codesign --verify --deep --strict`:PASS。 - Source / installed plugin validation:PASS。 - Source / installed `npm run check`:PASS。 - Source / installed lifecycle smoke:PASS,17/17。 - Source / installed HTTP sidebar smoke:PASS,5/5。 - Source / installed MCP smoke:PASS,4/4。 - Source / installed SkillSpector:SAFE,score 0,issues 0。 - Precise sensitive scan:PASS。 - `git diff --check` for Gate docs / QA scope:PASS。 PM Gate 报告: - `02-P/MEXP13-AcceptanceBundle/pm/mexp13-pm-bundle-gate-20260702.md` PM 复跑证据目录: - `02-P/MEXP13-AcceptanceBundle/pm/gate-rerun-20260702/` ## 可复用命令 / Runbook 用途:复核 MEXP13 内部联合体验包,并引导用户做人工验收。 前置条件: - 项目:`/Users/ar/Projects/ExcalidrawX` - App 包版本:`1.2.0 / Build202607020214` - Plugin 版本:`mindraw@personal 0.1.0+codex.20260701174929` - 本包不是 notarized installer;首次打开时 macOS 可能提示来源或权限。 ### 校验 DMG 和 manifest ```bash cd /Users/ar/Projects/ExcalidrawX shasum -a 256 03-O/C2.builds/releases/Build202607020214/Mindraw_1.2.0_aarch64-Build202607020214.dmg 03-O/C2.builds/releases/Build202607020214/release-manifest.json hdiutil verify 03-O/C2.builds/releases/Build202607020214/Mindraw_1.2.0_aarch64-Build202607020214.dmg ``` 预期: - DMG SHA256 等于 `a950a7f3aed60cf00b964912bd7651ac1f7e66cf1885bc5569f1553e80ab7356`。 - Manifest SHA256 等于 `353aa04d955961f4b545ce30c59493f8d4003ec7ba80d66615195aac3706a949`。 - `hdiutil verify` 返回 `VALID`。 ### 确认 Codex plugin ```bash codex plugin list ``` 预期看到: ```text mindraw@personal installed, enabled 0.1.0+codex.20260701174929 ~/plugins/mindraw ``` 如果目标环境尚未安装或需要刷新: ```bash codex plugin add mindraw@personal ``` ### 用户人工验收步骤 1. 双击 `03-O/C2.builds/releases/Build202607020214/Mindraw_1.2.0_aarch64-Build202607020214.dmg`。 2. 从 DMG 中手工打开或复制 `Mindraw.app` 到目标位置;是否覆盖旧 App 由用户自行决定。 3. 在任意测试项目中对 Codex 输入: ```text Open the Mindraw canvas for this project. ``` 4. 验证项目根出现或复用 `MindrawCanvas/`。 5. 验证首次打开创建 `YY.MMDD-01.mindraw`,重复打开不新建文件。 6. 验证重复打开选择 latest-created registry 指向的最后 / 最新创建画布,不被 mtime 干扰。 7. 验证侧边栏完整只读 preview 可见,支持 pan、zoom in/out、reset。 8. 验证侧边栏不提供编辑能力。 9. 点击 `编辑` 或 double-click preview,能跳转 Mindraw desktop App 打开同一 `.mindraw`。 10. 验证 plugin 不自动修改用户项目 `.gitignore`,只给出 `MindrawCanvas/` ignore 建议。 ### 回滚 / 清理 ```bash codex plugin list ``` 回滚 App:退出 Mindraw 后,手工移除本次安装的 `Mindraw.app`,再恢复旧版本或安装其他候选包。 清理测试项目:只删除本次测试项目中的 `MindrawCanvas/`;不要批量删除真实项目画布。 搜索关键词:`MEXP13PMGate`、`PM-BUNDLE-GATE`、`Build202607020214`、`GO_FOR_USER_ACCEPTANCE`、`USER-BUNDLE-ACCEPTANCE`、`mindraw@personal`。 ## 未决问题 / 后续建议 - 当前不是 worker 卡住,而是已到用户人工验收阶段。 - 用户验收通过后,将 `USER-BUNDLE-ACCEPTANCE` 记为通过,本包可升级为“验收通过包”。 - 如用户要正式分发,则另立 formal release goal,补 Developer ID signing、notarization、fresh machine Gate 和正式 rollback baseline。