07-design-diff-and-structure-boundary.md 12 KB

设计稿差异与现有业务结构保护

Type: grilling Status: resolved Labels: wayfinder:grilling Blocked by: 02, 03, 04, 05, 06

Question

逐项比较蓝湖设计稿与当前驾驶舱后,哪些差异可归入素材替换,哪些必须另立结构或交互决策票?锁定一套可执行的判断表:视觉资产差异、布局尺寸差异、信息层级差异、组件状态差异、地图/设备语义差异、数据契约差异和交互行为差异分别如何处理。

用户已确认现有代码和业务契约优先;本票要把这一原则具体化为后续实施者可执行的边界,并识别真正需要另立票的冲突。

进度

  • 已认领(Status: claimed);阻塞票 02–06 均 closed。
  • deck 已上报本票(effortId=lanhu-cockpit-asset-replacement)。
  • 事实侧自查(不向维护者提问可自得的事实)——ADR 是「结构」的权威来源:
    • ADR 0003 锁定一级模式四态(总体概览/基础设施/运行监测/预警处置)、每个模式固定 4 个二级面板、左右两栏布局、mode/panelId 稳定英文键;视觉可替换但结构不变。
    • ADR 0004 锁定渲染与状态边界:Cesium 为主、Three.js 为增强;filterStore/uiStore/状态语义不可由素材替换改变。
    • ADR 0008 锁定相机交互(三键分工、阻尼、定位/归位/选择中心语义)——属「交互契约」,素材替换不得触及。
    • ADR 0005 锁定模式切换选择态例外(三种分项互切清空选择、总体概览保留身份)——属「状态语义」。
    • 既有票已锁:token 槽位(03)、manifest(04/09)、位置符号(05/10)、字体(06/11)。
  • 本票要产出的是可执行的差异判断表:七类差异(视觉资产/布局尺寸/信息层级/组件状态/地图设备语义/数据契约/交互行为)各自归入「素材替换内」还是「升级为新决策」。

第一轮裁定(已确认)

  • Q1=A:差异判断的默认取向是「归入视觉素材替换」;仅当差异明确触及状态语义、信息层级、交互契约或数据契约时才升级为结构决策。默认不无谓升级。
  • Q2=A:布局尺寸差异(两栏宽、面板高、边距、间距、字号)归入素材替换——按票 03 token 规则(--column-w、--space-*、字号档位)调整,不改变 mode/panelId/面板数量/两栏结构。布局尺寸 ≠ 布局结构。
  • Q3(维护者原话:层级结构等以现在的为准):比「信息块增减才升级」更强——一切信息层级差异都以现有实现为准,默认不采纳设计稿的层级变更;仅视觉手段表达层级(字号/颜色/间距)可作素材替换调整。层级主次、信息块增删均以现状为准,除非升级为新决策并由维护者明确裁定。
  • Q4=A:状态集合与触发时机 = 结构;状态画法 = 视觉。设计稿新增/删除状态类型 → 升级;仅画法不同 → 按票 03 状态推导规则归素材替换。
  • Q5=A:符号外观/颜色 → 素材替换(走票 05/10 合成计划层);图层显隐、拾取、聚合、状态语义 → 升级。
  • Q6(维护者原话:数据以当前实际后端为准):比「数据内容差异升级」更强——所有数据差异都以实际后端为准,设计稿数据仅作参考展示,不驱动实现。数据展示格式(时间格式、千分位、小数位)属视觉实现,数据内容/字段/单位/口径一律以实际后端契约为准。
  • Q7=A:与 ADR 0008 相机交互、ADR 0005 选择态、既有定位/拾取/联动契约冲突的交互差异 → 升级;视觉反馈层(光效、动效表现)差异 → 归素材替换。设计稿标注中出现行为说明(如「点击后放大地图」)不得由实现者自行解读。
  • Q8=A:升级后的处置流程 = 在本票判断表记录 → 另立新决策票(挂同一 map)→ 维护者裁定;不口头裁决、不由实现票直接按设计稿做。

第二轮裁定(已确认)

  • Q9=A:判断表写进本票 Answer,并在 /to-spec 的规格中固化为独立一节,供所有后续实施票引用。
  • Q10=A:判断表在每个素材替换实施批次/实施票开始时由实现者自查,「未越界」列为该批次验收前置;票 08 终稿验收是最后一道闸,不是第一道。
  • Q11=A:判断表单列「已有裁决(不得重新打开)」区——列出票 05 已就地修订的三处(EMPTY 点位空心方块、未关联设备十字、锚点/尺寸口径)及出处,防止实现者或未来会话重新裁决。
  • Q12=A:布局分界词表——两栏宽、面板高、边距、间距、字号 = 尺寸(token 层);面板数量、面板位置顺序、列排列方式、新增/删除面板、两栏改单栏 = 结构(升级)。
  • Q13=A:实施中途发现冲突的处置——归视觉 → 实施者自行处理并记录到偏差/缺口清单;归结构 → 暂停该部分实现、按 Q8 升新票,不得由实施者改契约。
  • Q14=A:设计稿未覆盖的现有 UI 维持现状、标记为「无设计稿依据」,不因蓝湖没画就删除或臆造样式;删除现有 UI 属结构变更必须升级。

第三轮裁定(已确认)

  • Q15=A:判断表列结构 = 差异类型 | 触发条件(可判定)| 归入(素材替换 / 结构升级)| 处置路径(记录偏差 / 升新票)| 依据(ADR/既有票出处)。
  • Q16=A:保持票面题目给出的七类(视觉资产、布局尺寸、信息层级、组件状态、地图设备语义、数据契约、交互行为),逐类给出触发条件与处置,与前几轮裁定一一对应。
  • Q17=A:尚未发现需要升级的确凿冲突——现有差异都已归入素材替换或已就地修订;判断表预留升级路径,等票 02 逐画板盘点完成后再逐项触发。
  • Q18=A:归入素材替换的视觉差异产生偏差时,复用票 06 的缺口清单记录(语义 key、缺口类型、回退结果、责任人),不另设第二套偏差清单。
  • Q19=A:判断表不转代码断言,是人工审查清单;结构保护中能自动化的部分(禁止新增 panelId、状态词表冻结等)由既有 ADR 与既有断言面覆盖,判断表不重复造断言。

收口结论(本票讨论完成)

判断表(七类差异 × 五列)已收口。核心原则:默认归视觉、现状优先、升级必须立票。

判断表正文见下方 ## Answer。

真实状态与下一步

  • 状态:已完成并关闭(Status: resolved)。Q1–Q19 全部有裁定,无遗留未决项。
  • 交付物:
    1. 本票 Answer(判断表 + 原则 + 已有裁决区);
    2. 规格子票设计稿差异与现有业务结构保护规格(ready-for-agent,已挂入同一张地图)。
  • 对抗式审查记录(2026-10-08):
    1. 抓到并修正 1 处内容自洽问题:判断表「组件状态/地图设备语义/交互行为」三行「归入」列同时含结构与视觉,可能让实现者对「这一行到底归哪边」困惑——已补「读法说明」(先按触发条件落到子类),确保可判定性。
    2. 抓到的其余断言核实通过:票 12 规格无「自动判定越界」的虚假保证(三处出现均是否定/边界表述);与 Q19「不转自动化断言」一致;不重复既有断言面。
    3. 修正地图计数过期项(流程中逐步累积):进度行「9/12 → 11/12」、「3 张规格 → 4 张规格」、已关闭决策票补 07、剩余可推进改指票 08,并在 Decisions so far 补票 07 与规格 12 索引。
  • 下一步:推进分批替换与终稿验收方案(唯一剩余决策票,其阻塞票 02–07 均已关闭);实现工作由各规格子票承接。

Answer

判断表(七类差异)

读法说明:表格「归入」列出现「A=结构;B=视觉」时,表示该差异类型需先按「触发条件」落到子类——命中前半段触发条件(状态语义/信息层级/契约/行为)即按结构处置,命中后半段(仅外观/格式/反馈)即按视觉处置。判断表是人工审查清单,不转自动化断言。

差异类型 触发条件(可判定) 归入 处置路径 依据
视觉资产 图标/颜色/字体/纹理/形状的外观差异;不改变状态语义与业务结构 素材替换 记录偏差到票 06 缺口清单 票 03 token、票 05/10 位置符号、票 06 字体
布局尺寸 两栏宽度、面板高度、边距、间距、字号变化;面板数量/顺序/栏数不变 素材替换 按票 03 token 规则调整 ADR 0003、票 03
信息层级 信息块增删、主次顺序、层级结构变化;非仅视觉手段表达层级 结构升级(以现状为准) 暂停、按 Q8 升新票 ADR 0003、Q3 维护者原话
组件状态 状态集合/触发时机变化(新增/删除状态类型);仅画法不同 状态集合=结构;画法=视觉 结构升级 / 视觉记录偏差 ADR 0004、票 03、Q4
地图/设备语义 图层显隐规则、拾取、聚合、状态语义变化;仅符号外观/颜色不同 语义=结构;外观=视觉 结构升级 / 视觉记录偏差 ADR 0004/0008、票 05/10、Q5
数据契约 数据字段、单位、口径与后端不一致;仅展示格式(时间/千分位/小数位)不同 全部以实际后端为准;格式属视觉 内容=以实际后端为准;格式=记录偏差 ADR 0001/0002、Q6 维护者原话
交互行为 与 ADR 0008 相机、ADR 0005 选择态、既有定位/拾取/联动冲突;仅视觉反馈层(光效/动效表现)不同 行为=结构;反馈=视觉 结构升级 / 视觉记录偏差 ADR 0008/0005、票 06/11、Q7

原则

  1. 默认归视觉(Q1):差异判断默认归入素材替换,仅触及状态语义/信息层级/交互契约/数据契约才升级。
  2. 现状优先(Q3/Q6):信息层级与数据一律以现有实现与实际后端为准;设计稿数据仅作参考展示。
  3. 升级必须立票(Q8):结构差异记录到判断表 → 另立新决策票 → 维护者裁定;不口头裁决、不由实现票直接按设计稿做。
  4. 实施批次自查(Q10):每个素材替换实施批次开始时由实现者用判断表自查,「未越界」列为验收前置;票 08 终稿验收是最后一道闸。
  5. 不重复造断言(Q19):判断表是人工审查清单;结构保护中能自动化的(禁止新增 panelId、状态词表冻结)由既有 ADR 与既有断言面覆盖。

已有裁决(不得重新打开)

项 原口径 现口径 出处
EMPTY 点位 空心方块 hollowSquare 镂空徽标母版 + 降饱和降亮度 + 无内层图标 票 05
未关联设备 十字标记 cross 镂空徽标母版 + 内层行业图标 + 降饱和降亮度 票 05
锚点/尺寸 中心锚定、边长语义 尖端锚定、宽度基准 18/14 票 05
核心资源组成员 未定义 品牌标识 + 点位/设备状态形状语义 + 状态色语义 票 06

中途冲突处置(Q13)

  • 归视觉 → 实施者自行处理并记录到票 06 缺口清单。
  • 归结构 → 暂停该部分实现、按 Q8 升新票,不得由实施者改契约。
  • 设计稿未覆盖的现有 UI(Q14)→ 维持现状、标记「无设计稿依据」,删除属结构变更必须升级。

边界与风险

  • 票 02 逐画板盘点仍是前置:判断表不替代盘点;确凿冲突只有在盘点完成后才能逐项触发升级(Q17)。本票不臆断存在或不存在冲突。
  • 判断表是人工审查:不转自动化断言;既有断言面(t01-panel-catalog 等)继续承担结构保护。
  • 本票只产决策,不实现;实现工作由规格子票承接。
  • 按 AGENTS.md,本轮未运行 build/dev/浏览器调试。