docs(r2): 契约核对补充 + design-data-contract 增加 width/height 语义注记

- diy-fix-workflow:新增两份契约逐项核对总表
- design-data-contract-v1:stickers[].width/height/x/y 语义 = 画布显示像素
  (实现注记,非版本升级),历史数据读端按 mask 归一化兼容

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-09-12 18:53:07 +08:00
co-authored by Claude
parent c47071c9d8
commit 395fa4116c
2 changed files with 24 additions and 0 deletions
+6
View File
@@ -82,6 +82,12 @@ interface DesignDataV1 {
- `imageSrc/imagePos` 保留为兼容旧版字段;新写入统一走 `background.src/pos`
WCD 打包器同时兜底读旧字段。
> **实现注记(2026-09-12DIY 修正,非版本升级)**`stickers[].width/height` 的语义为
> **画布显示像素**(坐标空间 = `category.mask` 的宽高),`x/y` 同为画布内坐标。
> 渲染、碰撞检测、WCD 打包三方按同一语义消费,打包时不再做像素换算。
> 历史数据中按「图片原始像素」写入的值(width > mask 宽高)由读取端按 mask 等比归一化兼容,
> 不做存量迁移。`addSticker` 时即归一化到画布空间(建议初始占 mask 短边 60%)。
## 3. 冻结约束(R2 需落地)
| # | 约束 | 说明 |
+18
View File
@@ -190,6 +190,24 @@ R2 侧职责(API 保存 + 缓存回写)已正确完成并经真机验证。
---
## 契约核对总表(api-contract-v1.md + design-data-contract-v1.md
2026-09-12 对两份契约逐项核对后的结论:
| # | api-contract-v1.md | design-data-contract-v1.md |
|---|---|---|
| 1 | 无需改(stickers 为 `unknown[]`,语义由子契约承载);§5 已加实现补充注记指引 | **加实现注记**width/height/x/y 语义 = 画布显示像素,历史数据读端兼容(已完成) |
| 2 | PATCH 部分更新语义后端已实现,1MB 按次校验不受高频影响;无契约文字改动 | 无 |
| 3 | 状态映射表未写死 SUBMITTED 触发点,DRAFT→SUBMITTED 合法;无契约改动(触发点调整记录在 r2-workflow 决策#6 注记) | 无 |
| 4 | 无 | 无 |
| 5 | stickers 透传 edits、§8 sketch 不变;无契约改动 | edits 边界(不进 document.json)不变 |
| 6 | §4 地址接口不变,读时机为客户端行为 | 无 |
**核对中发现并已修正的矛盾**:api-contract §5 引用块原写「贴纸图 src 必须为 COS 持久 URL
(禁止 `wxfile://`/`tmp`)」,与 design-data-contract 约束#1/决策#4R2 允许暂存本地图、
R4 派单前持久化回写)直接矛盾,且真机落库数据即为 wxfile://。已按冻结决策修正措辞
(非字段/语义变更,不升版本)。
## 修复顺序与依赖
```