map.md 34 KB

城市生命线驾驶舱蓝湖正式素材替换方案(决策地图)

Status: resolved Labels: wayfinder:map

Destination

形成一份可直接交给开发执行的正式素材替换规格:基于蓝湖导出资源,覆盖驾驶舱 2D UI 与监测点/监测设备位置符号,锁定资产清单、语义 manifest、运行时路径与版本规则、字体授权与降级策略、既有业务结构保护,以及真实 /cockpit 与 qiankun 宿主的验收和分批交付方案。地图完成时不直接替换业务代码,而是让实现者无需重新发明关键决策。

Notes

  • Domain:城市生命线 Web 驾驶舱 /cockpit;词汇以根目录 CONTEXT.md 为准。
  • Skills:grilling、domain-modeling、research、prototype;需要真实浏览器验收时使用 browser-skill。
  • 用户已确认:Q1=B,Q2=B,Q3=A,Q4=A+C,Q5=D,Q6=C,Q7=D,Q8=B,Q9=B,Q10=B,Q11=A,Q12=C,Q13=A,Q14=A,Q15=A。
  • 方案边界:现有模式、panelId、信息架构、地图/设备状态、拾取、定位和聚合契约优先;蓝湖与现有结构冲突时另立决策,不在素材替换中隐式重做。
  • 资产边界:本图覆盖 2D UI、监测点和监测设备位置符号;不把设备/城市 3D 模型、地形、DEM、影像和 3D Tiles 当作本图正式素材。
  • 运行时约定:正式资源进入驾驶舱自有资产边界,引用必须兼容 import.meta.env.BASE_URL 与 qiankun 注入路径;保留现有 CockpitIcon、markerSvg、deviceAssets 等单一接缝。
  • 设计交付:原始蓝湖导出包与运行时资源分离;当前分享页要求重新登录,资源获取前需要人工完成一次登录。
  • 按 AGENTS.md,本图阶段不自动运行 build/dev/浏览器调试;实现阶段需另行遵守该限制,除非用户明确要求验证。

任务清单

进度

地图已收口(Status: resolved,2026-10-15):20 张子票全部 resolved——8 张决策票(01–08)+ 5 张规格票(09–13)+ 5 张执行票(14–18)+ 盘点票 19 + 迁移留痕票 20。

Destination 已达成:正式素材替换规格集完整、五批实施全部收口、终稿验收通过。

终稿验收(2026-10-15):终稿验收报告 —— 真实 /cockpit @ 1280×720 四模式走查通过、6 套断言面全绿、字体 5/5 加载、404=0、控制台业务报错=0、P0/P1/P2 缺陷为 0、P3 共 11 条已登记、核心资源组全部换正式素材。qiankun 宿主经维护者指示已补做:自建最小宿主实测「加载 + 挂载 + 基址注入生效 + cockpit 模块图全 200」;宿主内完整 /cockpit 走查因宿主集成既有问题(runtime.js 的 history 契约不匹配,非本图缺陷)未完成,已记入待办。维护者确认签收并同意关闭票 13 与地图。

共识留档:项目共识与经验留档 CONSENSUS.md —— 由本图全部子票提取,覆盖决策原则、工程经验、踩坑清单、字体授权、实施验收流程与验收环境事实,供后续同类任务直接复用。

遗留(独立事项,不阻断本图收口):

  1. 宿主集成问题:src/.fes/plugin-qiankun/micro/runtime.js:24/26 解构 { router, history } 但 FES 4 的 onRouterCreated 只保证 router → 宿主内 /cockpit 抛 reading 'push' 未渲染。该文件无本地改动,属仓库既有问题,需另立事项处理。
  2. icon.blank 临时占位(core:false,设计稿未覆盖,P3)—— 登记在票 06 缺口清单。
  3. aerial.webp 临时底图 —— 归票 21/22 底图线,不属本图。
  4. 待设计方确认:decor.grid-scanline-vignette(5 项氛围增强)、decor.brand-pool(光池推断消费点)、decor.unconsumed-candidates(11 个无落点候选)。

进展备注(批次 1 收口,2026-10-12):票 14 已完成并关闭。四轮迭代(初版替换 → 运行态缺陷修复 → 维护者全量导入 → 英文名+风格统一+状态图标)后收口:统一资产解析层(可达性+hash 校验+拒绝 HTML 兜底)、manifest 28 条(fonts 块与批次 4 并存,PRESERVED_TOP_LEVEL 保住并发数据)、64 张全英文名运行时图标(根 46 + panel 10 + status 8)、面板 16 panelId / 行业 4 / 状态 8 桶三套语义映射,面板与状态图标按 Texture/Icon 的 I/Pipe/Q 系列去色染项目调色盘色统一风格。沉淀 UI 设计及图标素材使用共识——后续图标/切图的引入、替换、改名一律按该文档执行。遗留仅 icon.blank 临时占位(票 06 缺口清单唯一未闭项)。

对后续批次的影响(同一批新版数据已备好):票 15 可用新版全稿色板与 1440 基准;票 16 可用 Group 5054–5057 内 28×36 双层水滴母版矢量;票 17 可用字体清单(正文为白名单内 Noto Sans SC);票 18 可用面板/结构装饰切图。新版原始数据与归档见 research/raw-v2/、design-archive-v2/。

进展备注(批次 4 字体接入,2026-10-13 更新):票 17 已认领并实施到「可走查」状态,未关闭。维护者开工前裁定三件事:① 字体白名单扩展为六族——原三族(思源黑体/思源宋体/Crimson Text)是维护者字体目录的取证结论,但设计稿正文实际是 Noto Sans SC(913)、数字/等宽是 Rajdhani(163)/Share Tech Mono(134),三族均 OFL,按规格 11 Q12 自带的「归档上游许可证 → 由名字暗示升级为确证」机制入白名单;② --font / --num 槽位名与语义不动,取值把 Web 字族插到系统回退链之前、回退链原样保留;③ 授权本会话跑 dev server 做真实 /cockpit 走查。已交付:六族 OFL 文本归档 + 子集化字体 446 KB(源 34.7 MB)+ manifest fonts 块(6 licenses / 5 entries)+ 字体授权门禁(无证据字体在解析阶段不可用,且结构上不生成 @font-face)+ 静态自查与对抗式反证全过 + 真实页面确认 5 个字体文件被请求。自动验收 A1–A13 全绿(2026-10-13):静态三项脚本 + 结构面 + 产物边界 + HTTP content-type + 真实页冷加载 5/5 字体 200、1371 请求零失败;总体概览截图目视核对通过(中文无豆腐块、KPI 数字无溢出)。未完成:四模式/16 面板逐项目视走查、结构回归断言面(AGENTS.md 未获明确要求)、维护者签收。缺口(子集外走回退、数字逐字差 16 项、Medium 字重未嵌、三族无消费点未嵌、Alimama FangYuanTi 无证据、PingFang 不可嵌)已全部登记票 06 缺口清单;走查单见 批次 4 验收说明。本批还发现一个 dev 侧静默失败坑:Vite 会缓存被 import 的 manifest.json 的转译结果,外部脚本改写后页面拿到旧模块、字体静默不生效——门禁如实报 fonts-unavailable 使其可观察。

第二轮人工验收复验(2026-10-13,重要协同教训):维护者反馈「没发现异常,但不确定字体是否被替换回初版」——怀疑属实,复验发现字体确实静默回退,两处根因均已修复:① 跨会话覆盖——另一会话(批次 1 重做)跑 research/build-manifest.mjs 时整文件重写 manifest,把 fonts 块一并抹掉(26409→15538 字节);已恢复 fonts 块并加固该脚本(重写前保留未知顶层块,实测对方再跑一次后 fonts 块仍在)。② 浏览器 HMR 模块图陈旧——dev 转译已含 fonts,但 HMR 只热更边界组件 CockpitShell.vue、不重新加载其传递依赖的 manifest.json 模块,浏览器跑的仍是旧 manifest → 门禁判不可用 → 不生成 @font-face → 字体请求 0;硬刷新后恢复 5/5。两坑已写入走查单 §5,并确立验收纪律:「字体请求为 0」必须判 FAIL(Web 字族排回退链首位,页面文本必用到)。对正在并行的批次 1 重做会话的提醒:重跑 build-manifest.mjs 现已保留 fonts 块,但改完 manifest 后需硬刷新浏览器再判定效果。

第三轮复验(2026-10-13,维护者反馈「依然没生效」)——归因经维护者纠正后收口:我一度误判维护者在看 5173 宿主(那是无关标签),维护者一直开独立页 8000——撤回宿主归因;defaultBase() 的 qiankun 注入分支作为「将来嵌宿主的必要防御」保留,但不是本次原因。真实原因有二:① 维护者标签页是修复前打开的(坑 B HMR 陈旧),硬刷新解决;② 字体其实生效——Noto Sans SC 与微软雅黑同为全宽黑体(实测 CJK advance 均 1.0 em),中文观感几乎无差,可辨差异在数字与拉丁字母。第四轮(维护者硬刷新后确认):数字(Rajdhani)没问题;报顶栏两件事并已修复——主标题消失是批次 1 遗留 bug(<CockpitIcon name="brand"> 未传 size,被内联 1em 压成 ~14px;修复=模板传 size="calc(215 * var(--u))"),顶栏字体丑新增 --font-topbar 系统黑体 token 只作用顶栏+筛选条(--font/--num 槽位未动,符合规格 11「优先现状」)。截图复验:主标题恢复、顶栏清晰、正文 Noto/数字 Rajdhani 维持。走查签收与结构回归仍待维护者。

第五轮(2026-10-13,维护者三连反馈:主标题太小 / 副标题多余 / 顶栏换粗体标题字体):① 主标题当时改 HTML 大字(30u + 批次 1 渐变辉光);② 副标题「沅陵县 · 只读展示」删除(与「只读视图」chip 重复,此决定保留);③ 按白名单证据确证制从维护者字体目录选定 标小智无界黑 LogoSC Unbounded Sans(超粗黑,内嵌双语 OFL 声明 + 版权行取证;排除:得意黑太跳、联盟起艺 license 行含占位符来源弱、创客贴金刚体带「正版授权」商业水印无 OFL 直接排除);子集 195 KB、@font-face 按 700 声明(防浏览器对超粗面合成伪粗)、新增 --font-title 语义槽(筛选条小字保持系统黑体,--font/--num 未动)。复验:门禁 6/6 ok、批次 1 交叉引用四处全绿。

第六轮(2026-10-13,维护者否掉 HTML 大字:要切图风格、用上 brand-glow/brand-glow-path):取证后确认「太小」真因是缩放策略——按顶栏高度等比缩放把 46.5% 的光带也算进 52u。改为按文字高度反推整图宽(313u→文字 ≈41u),光带溢出顶栏由筛选条承接(设计稿光层 114 > 文字 61 的原关系)。三处落点全部经 manifest 语义 key:icon.brand 标题切图(渐变字+底座光带,设计原样,取代第五轮 HTML 大字)+ 新登记 icon.brand.glow(模式按钮下方光带,D2 原位置 221×35@2x)+ icon.brand.glow.path(顶栏底边折线光路,替换 1px CSS border)。复验:manifest 30 条全过、批次 1 交叉引用全绿、截图确认装饰全部就位。模式按钮保留 --font-title 超粗黑(第五轮指定);--font/--num/门禁未动。

第七轮(2026-10-13,维护者:主标题再放大 / 菜单栏参考蓝湖稿重做+换字体)——按 D2 取证重做:设计稿 nav 真相是「纯文字 + 选中态底板」——未选中 PingFang 14px #00b8ff 常规体、选中白色 Semibold,唯一装饰是 nav/title-bg 切图底板(仓库 title-select-bg.png,顶部青色亮线+衰减浅蓝板);光晕实测中心正对选中按钮(x=1016 vs 1017)——光带跟选中走,不挂 nav 居中。据此重写菜单按钮:撤掉 CSS 发明的切角梯形/深蓝渐变/下划线/无界黑,底板与光晕经 navDecorStyle 从语义 key 解析成 CSS 变量注入(样式零物理路径,缺条目自动退化)。无界黑遭否且设计稿本无此消费点 → --font-title 槽与嵌入撤销(证据归档保留)。主标题放大至 360u(文字 ≈47u)。复验:manifest 31 条全过、交叉引用一致、门禁 5 条目 ok、截图确认。

第八轮(2026-10-13,基线对齐收口):维护者要求标题光带最低线与 brand-glow-path 最低线共线、其他按钮/文字留出血不压线。像素取证解方程:标题亮线在画布 53.1% → 高 = 52u/0.531 ≈ 98u → 宽 404u(顺带文字再放大到 ≈53u);顶栏 padding-bottom: 4u 作出血纪律;选中光晕 ::after 随基线上移(top: 100%−10u)。截图确认两条最低线视觉共线、无压线。

第九轮 R2(2026-10-13,对齐微调收口):维护者确认两线共线、主标题定稿;三点修正——① path 右移 12u(取证:可见线段只占图片列 22.9%–62%,左缘是透明留白,图片盒子起点横在标题文字上);② 基线保护区 4u→10u(内容可用高 42u,菜单行垂直居中,底边离基线 4u,文字与底线零重叠);③ wing 装饰线挪两侧空白区(top 58%、left/right:0、透明度 0.55,不再横穿文字)。截图复验通过。

第十轮 R3(2026-10-13,维护者重启后报「改了没生效」):排查磁盘/编译/下发三层全正常——真因是窄视口响应式缺陷:--u 触底 1px 后顶栏内容总宽超出视口,grid 挤压菜单列 → 按钮文字换行 → 34u 定高裁成单字(维护者窗口较窄正好踩中)。修复:按钮 white-space: nowrap、品牌列 min-width:0 + 标题切图 max-width:100% 等比让位。1272×570 与 2034×908 双视口验证通过。教训:此前九轮全部在大视口验证,响应式回归必须覆盖窄视口。

第十一轮(2026-10-13,两个结构性根因):维护者宽屏实测——path 右移无效果、宽屏菜单串底线、窄屏标题失据。根因:① path 被 width:100% 整图拉伸,可见线段(画布列 22.9%–62%)按百分比映射视口,挪图片盒子永远无效 → 改裁切窗口(left 430u 标题右侧起、background-size:230%、position:38.4% 100%,线段起点恒在标题右侧、亮线恒贴基线,URL 走 --brand-path-url 语义注入);② 标题切图(98u)作为 grid 项内容把顶栏行撑高——菜单"垂直居中"变成相对 98u 行居中、底边落在基线上(宽屏串线真因;窄屏切图缩小行变矮故菜单正常,与维护者观察吻合)→ 品牌列定高 52u + 标题绝对定位(溢出不占布局)。复验:窄视口菜单完整、宽视口折线从标题右侧起铺 + 菜单居基线上方 + 共线保持,三问题全消。

第十二轮 + 字体收口(2026-10-14):① 裁切窗口左缘 430u→340u——线段钻进标题光带尾部 ~90u 营造「从标题延伸出来」的衔接感(仍避开文字带右缘 ≈315u)。② 字体收口盘点全绿:5 woff2(446 KB)+ 7 份 OFL 证据归档;font.title(无界黑)撤销后证据保留(embedded:false);三槽各司其职(--font 正文 / --num 数字 / --font-topbar 顶栏小字),16 处消费点零散落;五套断言面全过(check-fonts 门禁+对抗式反证 / check-manifest 31 条 / cross-check-icons / batch2-token-check 10/10(C3 钉住字体槽)/ t01-panel-catalog 4 模式 16 面板);票 06 缺口清单补收口三条。维护者 2026-10-14 验收通过,票 17 已关闭(resolved)——1280px 复验按规格 13 留待终稿验收统一执行。批次 4 字体接入全流程收口:从授权取证、白名单扩展裁定、子集化、门禁落地到十二轮视觉迭代的全部决策与坑位记录在票 17 与走查单。

进展备注(批次 2 面板视觉 token,2026-10-13 更新):票 15 已认领并实施,未关闭(待维护者签收)。实施中并入两路并发会话已落地的成果:批次 1 的字号 +1px 可读性上调(经维护者确认沿用为基准)与批次 4 的 Web 字体槽位。按维护者六项裁定执行:① --u 改 1440 设计基准(下限保 1px,1280/1440 视口字号不变);② --cyan=#01abea、新增 --cyan-hi=#00b8ff;③ 只建有真实消费点的语义 token(--panel-mid/--cyan-hi/--text-strong/--fs-kpi 四个,均有断言钉住;--fs-metric 因无消费点不提交);④ 面板域全量清退(383 处字面量 + 21 处裸字号归并);⑤ KPI 值 20u。验收:专项断言面 batch2-token-check.mjs 10/10 全绿、t01-panel-catalog.mjs 全绿、用户授权的 1280×720 四模式真机走查通过(截图留存、控制台零报错);t06-assets.mjs 4 项失败均为批次 1 遗留欠账(本批顺手修好其 Node 24 JSON import 问题)。事实基线(9 画板全量色板/字号/面板形态机器提取)见 research/15-batch2-token-baseline.md;缺口 3 条(字号可读性偏差、面板渐变三停近似、独立大字号保留)已登记票 06 缺口清单。批次 3 前置「token 值定稿」已满足——--lv1..lv4 新值(#ff3b52/#ffb020/#01abea/#27d17a)即位置符号外层母版着色来源。

进展备注(批次 2 维护者第二轮优化,2026-10-13):维护者走查后提出四项面板视觉优化,已全部落地进票 15:① 左右栏收窄 5%(--column-w 347u→330u)、设备详情浮层加宽(340u→380u);② KPI 读数逐项带语义图标(KPI_ICONS 按 key 映射批次 1 正式切图,覆盖全部 12 处 kpiBlock 调用点);③ 统计图表按维护者选型表丰富——时间趋势改折线(trendBlock 新增 line 形态,5 处接入)、工单状态分布改百分比堆叠条(新增 stackedBlock,3 处接入),横向条形/饼图保持既有;④ 滚动条统一为 6u 细条(面板线色、hover 主色)且严格只竖向滚动(五个滚动容器 overflow-x: hidden,横向滚动条高度 0,裁切防护靠既有 minmax(0,1fr) + overflow-wrap)。分组柱状图(选型表第 4 行)因现端点无双维分组取数未落,归后续数据票。断言面全绿 + 真机走查通过。

进展备注(批次 2 维护者第三轮优化,2026-10-13):维护者反馈「统计图表用行业语义色区分类别;单色系分不清类别;条形图太多易视觉疲劳」,已落地进票 15:① tokens.css 新增行业语义色四槽(--industry-gas/water/drainage/manhole,取自批次 1 行业切图主色实测——红/青/绿/紫,与行业切图、筛选按钮同色源)与图表分类色八槽(--chart-c1..c8,设计稿高频色);② barTone() 三级语义着色规则(行业行→行业色、状态行→lv 语义色、其余→图表色序)接入全部图表块(条形/堆叠/环形),同块同语义多行用 shade 深浅区分;③ 条形图 16→9 处:六个「类别少、占比」场景改环形图(新增 donutBlock,中心合计+同色图例,行业构成/行业分类/覆盖情况·行业/按事件类型/按行业分布),行业行的全局筛选联动保留(action:'industry' 接缝不变);④ t19 C3 断言随形态同步(16/16 全绿);t20 其余 7 项失败经 stash 基线比对与 HEAD 完全一致(并发/历史欠账)。真机走查:环形图行业色与筛选按钮一一眼可对应。

进展备注(批次 3 位置符号,2026-10-12 实施并关闭):票 16 已完成(七轮签收走查迭代,billboard 侧终态:限宽 2.6 倍 + padding 3×3 + 描边全实带 + 内层亮度反转重染 + 输出预下采样;NONE→设备级、未关联设备点选两类镜头联动缺口顺修)。DOM overlay 已实施并走查通过(维护者裁定立票,票落在 cockpit-real-data-wayfinding effort 的票 47——本地图的票 20 关闭留痕,见该 effort map)——services/markerOverlay.js:SVG 矢量标记(--tone 状态色,永不发糊)+ 真 DOM 标签(圆角底板、青色装饰边、text-overflow、hover title 原生能力)+ 节点池复用 + postRender 投影定位(createCameraEngine.projectPivot,含画布原点修正)+ DOM 拾取(data-marker-overlay-*)+ 失败自动回退 billboard 链路(syncPointMarkersForPlan 保留为降级路径);内层直径 60% → 80%(安全边界核验通过)。合成计划层 domain/markerPlan.js 原样复用(归属/几何/锚点/降饱和不换媒介),断言面挂 DOM 节点。遗留(不阻塞):聚合符号与设备特效仍在 billboard 层;overlay 内层 CSS filter 染色为近似(可换 SVG mask 精确染色)。

进展备注(批次 5 装饰/纹理,2026-10 实施并关闭):票 18 已认领并实施,维护者确认签收后关闭。按规格 03 判据三分类处置:① 资源化 1 项——品牌标题后方光池(蓝湖 D6「光」层 489×128@2x,71 张正式切图中唯一有真实未消费落点的装饰位图)入 manifest icon.brand.pool(formal)并经语义 key 注入消费(与批次 4 navDecorStyle 同接缝);② 代码化收口 2 项——面板四角 data-URI 内联色值改白几何母版 + mask 染 --panel-line-hi(抓到并修正 mask-image 不收层语法的自误)、氛围底/地图画布底裸 hex 收敛到新语义槽 --bg-1;③ 维持现状 5 项——全局网格/地图扫描线/暗角/面板辉光/L 切角为设计稿未覆盖的既有氛围增强,按规格 12 保留并登记。11 个无消费点的装饰候选切图按共识 §1 挪入设计归档 unconsumed-decor/(sha256 台账 LEDGER.md),运行时目录零未登记文件。验收:批次 5 专项断言面 batch5-decor-check.mjs 11/11 全绿;既有面全绿(manifest 56 条 / cross-check 四处一致——顺修 marker.* 六键误报冗余的既有盲区 / batch2 token 10/10 / fonts 门禁 / marker plan 38/38 / t01 结构);build-manifest.mjs 新增跨批防覆盖闸门(未登记 entries 存在即中止重建,fonts 块被抹同类事故的 entries 版),对抗验证通过——票 37 并发的 21 个 icon.kpi.* 条目已被保护。缺口 4 条(全 P3:现状维持项、光池推断消费点、候选无落点、四角收口留痕)已登记票 06 缺口清单更新六。走查单见 批次 5 验收说明;t06-assets 3 项失败与 batch2-final-acceptance 依赖缺失均归因为既有/并发/环境欠账(HEAD 基线取证),非本批引入。五张执行票(14–18)全部关闭,素材替换实施阶段收口;下一步为规格 13 的终稿验收(六项报告、双环境分开签收、1280×720 逐面板检查),由维护者择时启动。

Decisions so far

  • 蓝湖访问与正式资源交付包 — 已确认登录完成,项目包含 9 个未分组画板;人工可打开画板并正常读取、导出、下载资源,后续可进入逐项资产盘点。
  • 蓝湖页面与运行时资产清单 — 已锁定蓝湖可确认事实与仓库侧全部语义接缝;当前无已确认可直接运行时资源,具体画板/切图/字体/状态图/标注需逐项人工补采,报告见 研究报告。
  • 正式视觉系统与现有 token 映射 — 已锁定 token 保持稳定、按需新增语义 token、复杂效果才资源化、主画板优先、1280px 纵向滚动和状态推导规则;规格见 正式视觉系统与现有 token 映射规格。
  • 运行时资产 manifest 与版本策略 — 已锁定 manifest 唯一入口、public/cockpit+BASE_URL、人工版本+内容 hash、原子发布、核心资源回滚、显式 fallback、远程资源登记和分环境诊断;规格见 运行时资产 manifest 与版本策略规格。
  • 运行时资产 manifest 与版本策略规格 — 已发布 ready-for-agent 实现规格,统一资产解析层承载 manifest 校验、版本/hash、原子发布、回滚、fallback、远程白名单和诊断;前置依赖为已关闭的运行时资产策略讨论票。
  • 监测点与监测设备位置符号映射 — 已锁定「双层水滴徽标」体系:唯二纯白母版(实心/镂空)承载状态色、内层行业/设备图标降饱和降亮度、尖端锚定、宽度基准 18/14、无设备点位不用内层图标、监测点仅报警态加扩散环;并就地修订三处既有已锁口径;规格见 监测点与监测设备位置符号规格。
  • 监测点与监测设备位置符号规格 — 已发布 ready-for-agent 实现规格,唯一新接缝为位置符号合成计划层,复用既有状态词表、资产接缝与色值来源;前置依赖为已关闭的位置符号讨论票。
  • 字体授权与缺失资源降级 — 已锁定严格开源白名单(思源黑体/思源宋体/Crimson Text)+ 系统回退栈、不引入商用字体、系统字体不得打包、中文字体须子集化且保留回退链;缺口分级仅三类阻断发布;补全了「核心资源组」成员定义;规格见 字体授权与缺失资源降级规格。
  • 字体授权与缺失资源降级规格 — 已发布 ready-for-agent 实现规格,复用既有资产解析层只新增授权门禁与缺口分级;明确代码只能校验许可证据齐全性、不声称判定授权合法性;前置依赖为已关闭的字体授权讨论票。
  • 设计稿差异与现有业务结构保护 — 已锁定七类差异判断表(默认归视觉、现状优先、升级必须立票),并列出已有裁决(不得重新打开)区;规格见 设计稿差异与现有业务结构保护规格。
  • 设计稿差异与现有业务结构保护规格 — 已发布 ready-for-agent 实现规格,判断表为人工审查契约、不转自动化断言,结构保护由既有断言面承担;前置依赖为已关闭的设计稿差异讨论票。
  • 分批替换与终稿验收方案 — 已锁定 5 批次路线(品牌/图标 → token → 位置符号 → 字体 → 装饰;token 为位置符号前提、装饰最后)、每批进入条件与双轨验收、P0–P3 缺陷分级、双环境分开签收、1280px 视口检查、临时素材逐项关闭清单;并裁定把路线拆成 5 张执行票挂本图;规格见 分批替换与终稿验收规格。
  • 分批替换与终稿验收规格 — 已发布 ready-for-agent 实施规格,定义执行票格式(进入自查 + 验收清单 + 证据区)与终稿验收六项报告;配套 5 张执行票(14–18)已同步发布,为实施阶段入口。
  • 蓝湖 9 画板逐项盘点与正式切图交付 — 已盘点 9 个画板(全部 1440 宽,命名无语义);蓝湖侧无正式切图:设计方只导出 25 个「光」图层,品牌位是渐变文字无 logo、四个功能图标在稿中为纯文字 chip;归档 59 个资产(sha256 索引,含去重留痕)并提取全稿色板、8 族字体与位置符号双层母版矢量;报告见 盘点报告。(注:其后蓝湖升版交付 71 张正式切图,旧结论由该报告的复查附录取代。)
  • 执行-批次1:品牌/图标替换 — 已完成并关闭。四轮迭代(初版替换 → 运行态缺陷修复 → 维护者全量导入 → 英文名+风格统一+状态图标)后收口:统一资产解析层(可达性+hash 校验+拒绝 HTML 兜底)、manifest 28 条(fonts 块与批次 4 并存)、64 张全英文名运行时图标、面板/行业/状态三套语义映射,面板与状态图标按 Texture/Icon 的 I/Pipe/Q 系列去色染项目调色盘色统一风格;沉淀 UI 设计及图标素材使用共识——后续图标/切图的引入、替换、改名一律按该文档执行。遗留仅 icon.blank 临时占位(票 06 缺口清单)。
  • 执行-批次3:地图/设备位置符号替换 — 已完成并关闭。位置符号合成计划层 domain/markerPlan.js(规格 10 唯一新接缝:母版归属/内层图标几何/宽度基准/尖端锚点/tint 推导/降饱和/标签偏移)+ 白母版逐像素着色合成渲染 + 引擎尖端锚定接入;合成计划断言 36/36、锚点迁移对抗式验证 7/7(双向可失败,无假绿);签收走查修复标签重叠与图标放大 50%(27/21);manifest 登记 marker.master.*/marker.inner.*;宿主读数 markerMaster/markerInner/markerAnchor/markerDesaturate。遗留(不阻塞):扩散环帧差证据、内层可辨性正式结论。

  • 执行-批次2:面板视觉 token 替换 — 维护者接受最终观感,统一视觉token、状态图例与图表/详情可读性完成;最后离线回归通过,build/debug、专门视口/宿主验收及旧业务/资产闸门失败边界在票内留痕。

  • 执行-批次4:字体接入 — 已完成并关闭。白名单扩为六族(均 OFL、证据归档),子集化 446 KB 插入 --font/--num 回退链之前;字体授权门禁「无证据不生成 @font-face」+ 五套断言面全绿 + 十二轮视觉迭代(主标题切图定稿 404u、选中底板/光晕/光路语义注入);沉淀三坑(dev manifest 转译缓存、HMR 模块图陈旧、qiankun 注入基址)与「字体请求为 0 必判 FAIL」纪律,见走查单。

  • 执行-批次5:装饰/纹理替换 — 已完成并关闭(维护者确认签收)。按规格 03 判据三分类:品牌光池资源化(manifest icon.brand.pool + 语义注入消费)、面板四角与底色 token 收口(--bg-1 新槽、mask 染 --panel-line-hi)、5 项设计稿未覆盖氛围增强维持现状;11 个无消费点候选挪归档(sha256 台账);专项断言 11/11、既有面全绿、build 脚本加跨批防覆盖闸门(对抗验证);缺口 4 条全 P3 入票 06,不阻断终稿。五张执行票全部收口,素材替换实施阶段完成。

  • 执行票:地图标记 DOM overlay 渲染 — 维护者裁定立错地图,已迁移至 cockpit-real-data-wayfinding effort 的票 47(DOM overlay 属真实数据接线渲染层);本票关闭留痕。

  • 终稿验收(规格 13,2026-10-15) — 真实 /cockpit @ 1280×720 四模式走查通过、6 套断言面全绿、字体 5/5 加载、404=0、控制台业务报错=0、P0/P1/P2 为 0、P3 共 11 条已登记、核心资源组全部换正式素材;qiankun 宿主经维护者指示已补做(加载 + 挂载 + 基址注入生效 + cockpit 模块图全 200),宿主内完整走查受既有集成问题阻塞(runtime.js 的 history 契约不匹配,非本图缺陷)。维护者签收。报告见 终稿验收报告,经验沉淀见 项目共识与经验留档。

Not yet specified

(当前无:原「蓝湖 9 画板逐项盘点」fog 已毕业为票 19。)

Out of scope

  • 改变四个一级模式、现有二级面板、mode/panelId、数据契约、地图图层语义、设备状态语义、拾取、定位、聚合或面板联动。
  • 设备级或城市级真三维模型生产/采购,DEM、正式影像、倾斜摄影和 3D Tiles 的选型与生产。
  • 移动端、竖屏、多屏拼接适配。
  • 本图内直接实施代码改造、运行时部署或发布上线;这些是规格收口后的执行工作。