设计稿差异与现有业务结构保护
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 全部有裁定,无遗留未决项。
- 交付物:
- 本票
Answer(判断表 + 原则 + 已有裁决区);
- 规格子票设计稿差异与现有业务结构保护规格(
ready-for-agent,已挂入同一张地图)。
- 对抗式审查记录(2026-10-08):
- 抓到并修正 1 处内容自洽问题:判断表「组件状态/地图设备语义/交互行为」三行「归入」列同时含结构与视觉,可能让实现者对「这一行到底归哪边」困惑——已补「读法说明」(先按触发条件落到子类),确保可判定性。
- 抓到的其余断言核实通过:票 12 规格无「自动判定越界」的虚假保证(三处出现均是否定/边界表述);与 Q19「不转自动化断言」一致;不重复既有断言面。
- 修正地图计数过期项(流程中逐步累积):进度行「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 |
原则
- 默认归视觉(Q1):差异判断默认归入素材替换,仅触及状态语义/信息层级/交互契约/数据契约才升级。
- 现状优先(Q3/Q6):信息层级与数据一律以现有实现与实际后端为准;设计稿数据仅作参考展示。
- 升级必须立票(Q8):结构差异记录到判断表 → 另立新决策票 → 维护者裁定;不口头裁决、不由实现票直接按设计稿做。
- 实施批次自查(Q10):每个素材替换实施批次开始时由实现者用判断表自查,「未越界」列为验收前置;票 08 终稿验收是最后一道闸。
- 不重复造断言(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/浏览器调试。