# 2026-06-27 MD-H6-01 AssetStore 契约 ## 用户目标 以 Coder@mindraw 身份领取统一台账 `P-20260626-m4c-handshake-coordination` 中的 `MD-H6-01`,为 Phase 4 AssetStore / `.assets` 权威化写 Mindraw 侧独立契约。范围限定为契约与证据,不做 H8 发布,不改 m4c `03-O`,不混入 H5 hardening,不开放任意 JSON patch,不绕过 App 写包。 ## 已完成事项 - 重新读取 `/Users/ar/.codex/AGENTS.md`、项目 `AGENTS.md`、`INDEX.md`、`CODEGRAPH.md` 和统一台账中 H6 / `MD-H6-01` / `PM-H6-ASSETSTORE-CONTRACT-GATE` 最新状态。 - 读取现有 `.mindraw` ADR、manifest schema、兼容矩阵、Phase 2 QA 和当前读写实现事实,确认当前 `files.dataURL` 仍是运行时和导出安全底座。 - 新增 Mindraw 侧 Phase 4 AssetStore / `.assets` 权威契约草案。 - 新增契约自查报告。 - 同步 `INDEX.md`、`CODEGRAPH.md` 和 `02-P/plan-progress.markdown`。 - `MD-H6-01` 已在统一台账标记完成。 ## 关键决策 - Phase 4 第一批建议使用 `assetStore.authority=dual` 过渡,再进入 `asset-store`。 - 第一批建议固定 `inlineCache=required`:`.assets` 可以成为权威,但 `drawing.excalidraw.files[fileId].dataURL` 继续作为 Excalidraw runtime 和导出兼容缓存。 - m4c 不得直接创建、删除、移动 `.assets` blob,也不得直接编辑 `manifest.assets[]`;外部写入必须通过 Mindraw App API、lease、`workingRevision` 和受控 DTO。 - H7 仍保持 blocked,直到 `MD-H6-01`、`M4C-H6-01` 和 `PM-H6-ASSETSTORE-CONTRACT-GATE` 收敛。 ## 文件变更 - 新增 `02-P/功能任务/phase4-assetstore-authority-contract.md` - 新增 `02-P/qa/mindraw-phase4-assetstore-contract-review.md` - 更新 `INDEX.md` - 更新 `CODEGRAPH.md` - 更新 `02-P/plan-progress.markdown` - 新增本会话记录 `.codex-sessionhistory/2026-06-27-MDH601AssetStore.md` ## 验证 / 自查 - `rg -n "assetStore|assetId|sha256|register|repair|export|inlineCache|arbitraryJsonPatch|M4C|H7|PM-H6" 02-P/功能任务/phase4-assetstore-authority-contract.md` - `git diff --check` 结果:关键项均命中,`git diff --check` 无输出。 ## 剩余风险 - 本轮只是 Mindraw 侧契约草案,不是生产实现。 - `inlineCache=required` 是 Mindraw 侧建议,需要 PM gate 结合 m4c 需求冻结。 - `M4C-H6-01` 尚需 m4c 侧回写 consumer 需求和兼容矩阵。 - `PM-H6-ASSETSTORE-CONTRACT-GATE` 尚未收敛,不能宣布 Phase 4 或 H8 Go。 ## 后续建议 - 等 m4c 完成 `M4C-H6-01` 后,由 PM 收敛 `PM-H6-ASSETSTORE-CONTRACT-GATE`。 - 若 PM 冻结契约,后续应拆 Mindraw 侧 `MD-H6-*` 实现任务,包括 fixtures、schema validator、register/read/repair/export API 和真实包 QA。