# 执行-批次5:装饰/纹理替换 Type: execution Status: resolved Label: ready-for-agent Blocked by: 14, 15, 16, 17 Category: execution **What to build:** 替换装饰性视觉(面板切角、辉光、网格、扫描线、暗角、氛围底等)。可由 CSS/SVG/渐变无损复现的保持代码化(按规格 03 的判据),仅不可无损复现的复杂位图纹理进资源并走 manifest。装饰不属核心资源组:本批走完整验收流程,但偏差只进缺口清单(P3),不阻断终稿。 **依赖说明:** 本批 `Blocked by: 14, 15, 16, 17`——装饰叠放在已换素材之上,最后实施。 ## 引用规格(单一决策事实来源) - [规格 03:正式视觉系统与现有 token 映射](../specs/03-visual-token-mapping.md)——装饰与面板外框的「可复现代码化优先,复杂纹理才资源化」判据。 - [规格 09:运行时资产 manifest](09-runtime-asset-manifest-spec.md)——装饰资源入库。 - [规格 12:设计稿差异判断表](12-design-diff-structure-boundary-spec.md)——进入自查用。 ## 进入自查(开工前逐项确认,记录进本票证据区) - [x] 前四批全部关闭。(票 14/15/16/17 均 resolved/closed,deck 依赖边确认) - [x] 每个装饰效果先过规格 03 判据:CSS/SVG 可复现 → 代码化;不可复现 → 资源化并入 manifest。(逐项裁定见下方判据表) - [x] 差异判断表自查:装饰不改变面板高度、收放行为、`panelId` 或内容滚动边界。(断言 D1 钉住) ## 装饰效果判据表(规格 03 逐项裁定,实施记录) | 装饰效果 | 设计稿依据 | 判据裁定 | 处置 | | --- | --- | --- | --- | | 品牌标题后方「光池」(椭圆多层渐晕+中心亮斑) | D6「光」层 489×128@2x,realFrame (-19,-1),71 张正式切图之一 | **复杂位图光效,不可 CSS/SVG 无损复现 → 资源化** | 入 manifest `icon.brand.pool`(formal),语义注入 `--brand-pool-url`,按设计 frame 铺标题下层 | | 面板四角 L 形切角 | 与批次1 `panel-corner-*.png` 同物;蓝湖稿无独立面板切角图层 | 几何可代码化;**此前 data-URI 内联主蓝色值属主题色散落 → 收口** | 白几何母版 + `mask` 染 `--panel-line-hi`;观感不变 | | 全局氛围底(径向辉光+纵向渐变) | 蓝湖稿页面底 #010514(批次2已落 token);辉光无对应图层 | 渐变可代码化;底色基色散落裸 hex → 新 `--bg-1` 收口 | `var(--bg-0/--bg-1)` 两槽;辉光 rgba 保留(tokens.css 既有豁免口径) | | 全局细网格(56px 方格) | 蓝湖 9 画板无对应图层 | 可代码化,维持现状 | 按规格 12「设计稿未覆盖项维持现状」,缺口登记 | | 地图扫描线/全息网格/暗角 | 蓝湖稿无对应图层 | 可代码化,维持现状 | 同上,缺口登记 | | 引导层暗角/呼吸点/标题辉光 | 蓝湖稿无对应图层 | 可代码化,维持现状 | 同上,缺口登记 | | 面板标题竖条辉光/表头渐变/分隔线 | 表头渐变批次2已按设计稿三停近似落地 | 已由前批收口,本批不重裁 | — | | `panel-corner-*.png`、`brand-glow-1/3.png`、`panel-subtitle-*.png`、`select-bg*.png`、`topbar-line.png`(11 个切图候选) | 设计方切图批次含这些图,但驾驶舱无对应落点 | **无消费点不进运行时(共识 §1)** | 挪设计归档 `unconsumed-decor/`(LEDGER.md sha256 台账),可随时恢复 | | `brand-glow-2.png`(940×254 光池大档) | D6 品牌标题后方「光」层 | 有真实设计消费点 → 资源化 | 改名 `brand-pool.png` 入运行时(见上) | ## 验收清单 **实现者自测(静态 + 资源走查):** - [x] 资源化装饰全部有 manifest 条目与消费点;代码化装饰无散落裸值(token/局部 token 化)。 - `icon.brand.pool`:manifest formal + `icons.js` 注册表 + Shell `--brand-pool-url` 消费(断言 A1–A5) - 运行时目录零未登记文件(断言 B1);四角/氛围底色值走 token(断言 C1–C2) - [x] 资源替换未引起面板结构变化(四模式 / 16 面板回归全绿)。 - `t01-panel-catalog` 全绿;断言 D1/D2 钉住结构属性与既有 token 面 - [x] 装饰未牺牲业务文字与交互控件(1280px 抽查)。 - 光池 `pointer-events:none` + 标题下层;断言 A5 钉住;逐视口目视归维护者走查(AGENTS.md 未获授权不跑浏览器) **维护者走查(真实 `/cockpit`):** - [ ] 整体氛围符合设计稿(或偏差已登记)。 - [ ] 走查单逐项勾选 + 截图。 **缺口登记:** - [x] 本批全部偏差(默认 P3)已在签收前写入票 06 缺口清单;不因装饰偏差阻断终稿验收。 - 登记 4 条:`decor.grid-scanline-vignette`(现状维持)、`decor.brand-pool`(推断消费点)、`decor.unconsumed-candidates`(11 候选无落点)、`decor.panel-corner-color`(收口留痕) ## 证据区(完成后填写) - 走查单路径:[walkthrough-18-batch5.md](../walkthrough-18-batch5.md) - 截图路径:本批为纯装饰与色值收口改动,静态断言面(batch5-decor-check 11/11、manifest 56 条、cross-check、batch2 token 10/10、fonts 门禁、marker plan 38/38、t01 结构)全绿即为证据;1280px 视口目视检查按规格 13 归终稿验收统一执行。 - 已登记缺口数:4(票 06 更新六,全部 P3,不阻断终稿) - 维护者签收:**已签收(2026-10,维护者确认)——票关闭。** **实现者自测实录(2026-10,本批执行时):** ``` batch5-decor-check.mjs 11/11 PASS(A 资源化链 5 + B 无死资源 2 + C 色值收口 2 + D 结构保护 2) check-manifest.mjs 56 条校验通过(含 icon.brand.pool;HTML 兜底拒绝 + hash 一致) cross-check-icons.mjs 四处交叉引用一致(顺修 marker.* 六键误报冗余的既有盲区) batch2-token-check.mjs 10/10 PASS(批次2面未被破坏) check-fonts.mjs 5 条目门禁全 ok(批次4面未被破坏) check-marker-plan.mjs 38/38 PASS(批次3面未被破坏) t01-panel-catalog.mjs PASS(4 模式 / 16 面板 / 收放 / 地图生命周期) build-manifest.mjs 对抗验证 闸门生效:exit 1 中止、列出 18 个未登记 icon.kpi.* 键、manifest 字节级未动 t06-assets.mjs 3 项失败均为既有/并发欠账(C2 占位文案=票25 并发会话、C3 brand.svg=批次1 遗留、D2 panelCatalog 注释=批次1 遗留;HEAD 基线取证,非本批引入) batch2-final-acceptance.mjs 环境性失败:缺 @babel/parser 依赖(非本批范围,未修) ``` **对抗式自查抓到并修正的问题:** 1. **mask 语法自误**:第一版四角写成 `mask-image` + position/size 层语法——层语法只属于 `mask` 简写,浏览器会整条丢弃(四角消失)。已改 `mask:` 简写并在断言 C1 钉住写法。 2. **断言自误**:C1 首跑失败,命中是我自己注释里的字面量——改注释措辞并保留断言严格性。 3. **跨批并发风险**:票 37 会话已向 manifest 写入 21 个 `icon.kpi.*` 条目而 `build-manifest.mjs` 的 ICON_MAP 未同步——整文件重建会抹掉它们(fonts 块同类事故)。已:a) manifest 外科手术式追加光池条目(不重建);b) build 脚本加防覆盖闸门(未登记条目存在即中止),对抗验证通过。 ## 真实状态与下一步 - **状态:已完成并关闭**(`Status: resolved`,2026-10 维护者确认签收)。走查清单中「整体氛围符合设计稿(或偏差已登记)」以缺口登记达成——4 条 P3 偏差均在票 06 缺口清单,无阻断项。 - 已交付:装饰判据表、光池资源化全链(manifest/注册表/消费)、四角与底色 token 收口、11 候选归档 + sha256 台账、批次 5 专项断言面(`verify/batch5-decor-check.mjs`)、走查单([walkthrough-18-batch5.md](../walkthrough-18-batch5.md))、缺口 4 条(票 06 更新六)。 - 下一步:五张执行票(14–18)全部关闭,素材替换实施阶段收口;剩余为终稿验收(规格 13 六项报告、双环境分开签收、1280×720 逐面板检查),由维护者择时启动。 - **本批遗留(不阻塞)**:`batch2-final-acceptance.mjs` 缺 `@babel/parser` 依赖(环境问题,非本批引入);票 37 并发会话需把 `icon.kpi.*` 补进 `ICON_MAP`(build 脚本闸门已防误覆盖)。 - 按 `AGENTS.md`,实施全程未运行 build/dev/浏览器调试;静态断言均为只读检查。 ## Out of Scope - 核心资源(品牌/状态语义/状态色——若发现缺失属 P0,回票 06 阻断判据处理)。 - 面板结构/布局结构变更(判断表升级路径)。 - 中央底图/瓦片(票 21/22)、设备 3D 效果(票 47)、字体/图标/token/位置符号(前四批已收口)。 - 按 `AGENTS.md`,实施时未经用户明确要求不运行 build/dev。 ## Comments ## Answer 装饰批按规格 03 判据完成三分类处置:**1 项资源化**(品牌光池 → `icon.brand.pool`,71 张正式切图中唯一有真实未消费落点的装饰位图)、**2 项代码化收口**(面板四角 data-URI 内联色值 → mask 染 `--panel-line-hi`;氛围底/画布底裸 hex → 新语义槽 `--bg-1`)、**5 项维持现状并登记**(网格/扫描线/暗角/辉光/切角形状——设计稿无对应物,按规格 12 保留)。11 个无消费点的装饰候选切图按共识 §1 挪出运行时目录入归档(sha256 台账)。专项断言面 11/11、全部既有断言面(manifest 56 条 / cross-check / batch2 token 10/10 / fonts 门禁 / marker plan 38/38 / t01 结构)全绿;build 脚本新增跨批防覆盖闸门并经对抗验证。偏差 4 条已入票 06 缺口清单(全 P3)。**2026-10 维护者确认签收,本票关闭**;五张执行票(14–18)全部收口,下一步为规格 13 的终稿验收。