fix(w05): 三份件的机械抽样式补齐缺失 class —— 落账件同款会炸,提前拦下

浏览器走查实测:差异评估结论审核件里三个 <svg class="zic"> 撑成 946×946,
整份文档拉到 4625px 高,正文全被挤走 —— 人打开只见灰色巨块,没法逐条核四态。

根因:.zic{width:14px;height:14px} 只在 P08_CSS(数据工单那一段),而
difference-review 用的是 ACC1_CSS。ACC1_CSS / ACC2_CSS 是从目标件机械抽出来的,
report.ts:538 那句既有注释早已承认漏过一批(.jc-vcell/.jc-cell/…),补了几个,
这几个漏了。

按「一次查干净」逐个核三份件用到的每个 class,补齐:
· .zic —— ACC1_CSS **与 ACC2_CSS**(后者即 landing-confirm,同款会炸,走查下一步就会撞上)
· .note .done / .note .need —— ACC1_CSS 与 ACC2_CSS
· .kv-box —— BIND_LANDING
· .risk-badge 缺基座形状(只有配色没有胶囊盒子)—— 人工核对徽标家族一致性时发现,机械扫描漏网

新增自测:三份件用到的 class 必须都能在它自己那段 CSS 里找到定义 ——
将来谁再加一个没定义的 class 就变红。变异验证:删掉 .zic 那条真红,补回真绿。

另:嵌套 data-by 的「只读态显示了并不存在的值」已坐实为渲染器侧机制
(递归合并时行内没有该字段会落回外层同名字段),加 it.fails 钉住,平台修法另议。

包版本 2.1.7。pnpm gates 退出码 0(164 文件 / 2450 测)。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LKMZDwMbyKzjw6Hembwvet
This commit is contained in:
xcs
2026-08-30 12:51:14 +08:00
co-authored by Claude Opus 5
parent 9e2f7387b2
commit 764dab342d
5 changed files with 149 additions and 2 deletions
@@ -54,7 +54,7 @@ export const manifest: ActivityManifest = {
activityId: ACTIVITY_ID,
name: 'ACT-WORK-05 · 差异评估',
/* 重写不是改 —— 同版重装是 no-op(静默丢失,踩过) */
packageVersion: '2.1.5',
packageVersion: '2.1.7',
category: '需求分析与方案匹配',
sdkVersion: '0.1.0-m5',
checksum: 'dev-checksum-part-substitution-assessment',
@@ -599,7 +599,14 @@ ${badgeCss('.rec', [
['not_recommended', '不推荐', DANGER],
])}
.rec.rec-lg{font-size:14px;padding:6px 18px;letter-spacing:.02em}
/* 替代风险(收口四格的「风险」,substitution.relation.risk_level)—— 走徽标而不裸摆英文枚举值 */
/*
* 替代风险(收口四格的「风险」,substitution.relation.risk_level)—— 走徽标而不裸摆英文枚举值。
* 补一条基座形状(2026-08-30 task-12 缺陷③附带查出):badgeCss() 只出
* .risk-badge.v-<值>(内容与配色)那几条复合选择器,从没有人补过裸 .risk-badge{…} 本身的
* 盒子形状 —— 与 .stx / .ct 这两族「先起底、badgeCss 只管上色」的写法不同款,漏了这一步,
* 徽标会显示成贴着字的纯色文字,没有胶囊的圆角与内边距。形状照抄 .ct。
*/
.risk-badge{display:inline-block;font-size:11px;font-weight:700;padding:1px 8px;border-radius:999px;border:1px solid transparent;white-space:nowrap}
${badgeCss('.risk-badge', [
['low', '低风险', OK],
['medium', '中风险', AMBER],
@@ -824,6 +831,14 @@ ${badgeCss('.ct', [
.kv i{flex:0 0 84px;font-style:normal;color:var(--ink-4);font-size:11px;padding-top:1px}
.kv span{flex:1 1 auto;color:var(--ink-2);line-height:1.6;overflow-wrap:anywhere}
.kv span:empty::after{content:"—";color:var(--ink-4)}
/*
* 补 .kv-box(2026-08-30 task-12 缺陷③附带查出):VALIDATION_BLOCK 用它包一层边框/底色
* (与差异评估结论审核件 CLOSING_SUMMARY 的 .summary-box 同一种「盒住几行 kv」的版式),
* 这份文件之前只补了 .kv 系列本身,包裹它的盒子从没定义过 —— 待验项那一段会因此显示成
* 一叠不带边框的裸文字,与「结论」那几格(有 .verdict-card 边框)风格不一致。
* 形状照抄 .summary-box(BIND_ACC1_LAYOUT,同一份文件里)。
*/
.kv-box{border:1px solid var(--line-soft);border-radius:10px;background:var(--soft);padding:2px 16px;margin-bottom:4px}
`;
/**
@@ -173,6 +173,22 @@ body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,
.note{border:1px solid var(--line);border-left:3px solid var(--ledger);border-radius:8px;background:var(--soft);padding:14px 16px;margin-bottom:16px}
.note p{margin:0;font-size:13px;color:var(--ink-2)}
.note b{color:var(--ink)}
/*
* 补三条:report.ts 的 zone()/note() 助手把 P08 目标件「视觉补充段 v3」的图标
* (.zic)与强调色(.note .done / .note .need)跨文档复用到了这两张验收件的
* 区块头与提示文案上(见 report.ts 的 ZIC_TASK / ZIC_TABLE 常量与 note() 调用处)——
* 原验收工单目标件自己的 style 段从未定义过它们(核对过
* docs/SS02-ACT-WORK-05-html/ 下两份验收工单目标件,原型的 zone 段从没带过图标,
* note 里也没有 done/need 分级)——补两条,值照 P08_CSS 抄
* (2026-08-30 task-12,缺陷③;--data 这份 :root 没有,用同色的 --brand 顶替,
* 数值仍是 #3370ff,不算改动目标件写死的颜色)。
* 漏掉 .zic 的后果曾经是灾难性的:三枚 viewBox="0 0 24 24" 的图标在没有 .zic 约束
* 宽高时会撑满容器宽、再按比例撑高,量出来是 946×946 像素、把整份文档撑到 4625px 高,
* 正文全被挤出可视区(人打开只看见三块灰色巨块加大片空白)。
*/
.zic{width:14px;height:14px;color:var(--ink-3);vertical-align:-2px;margin-right:3px}
.note .done{color:var(--ok);font-weight:700}
.note .need{color:var(--brand);font-weight:700}
.criteria{border:1px solid var(--ledger-line);border-radius:10px;background:var(--ledger-soft);padding:13px 16px;margin-bottom:18px}
.criteria .c-title{font-size:11px;font-weight:800;letter-spacing:.08em;color:var(--ledger);margin-bottom:7px}
.criteria ul{margin:0;padding-left:18px;font-size:12.5px;color:var(--ink-2)}
@@ -253,6 +269,22 @@ body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,
.note{border:1px solid var(--line);border-left:3px solid var(--ledger);border-radius:8px;background:var(--soft);padding:14px 16px;margin-bottom:16px}
.note p{margin:0;font-size:13px;color:var(--ink-2)}
.note b{color:var(--ink)}
/*
* 补三条:report.ts 的 zone()/note() 助手把 P08 目标件「视觉补充段 v3」的图标
* (.zic)与强调色(.note .done / .note .need)跨文档复用到了这两张验收件的
* 区块头与提示文案上(见 report.ts 的 ZIC_TASK / ZIC_TABLE 常量与 note() 调用处)——
* 原验收工单目标件自己的 style 段从未定义过它们(核对过
* docs/SS02-ACT-WORK-05-html/ 下两份验收工单目标件,原型的 zone 段从没带过图标,
* note 里也没有 done/need 分级)——补两条,值照 P08_CSS 抄
* (2026-08-30 task-12,缺陷③;--data 这份 :root 没有,用同色的 --brand 顶替,
* 数值仍是 #3370ff,不算改动目标件写死的颜色)。
* 漏掉 .zic 的后果曾经是灾难性的:三枚 viewBox="0 0 24 24" 的图标在没有 .zic 约束
* 宽高时会撑满容器宽、再按比例撑高,量出来是 946×946 像素、把整份文档撑到 4625px 高,
* 正文全被挤出可视区(人打开只看见三块灰色巨块加大片空白)。
*/
.zic{width:14px;height:14px;color:var(--ink-3);vertical-align:-2px;margin-right:3px}
.note .done{color:var(--ok);font-weight:700}
.note .need{color:var(--brand);font-weight:700}
.criteria{border:1px solid var(--ledger-line);border-radius:10px;background:var(--ledger-soft);padding:13px 16px;margin-bottom:18px}
.criteria .c-title{font-size:11px;font-weight:800;letter-spacing:.08em;color:var(--ledger);margin-bottom:7px}
.criteria ul{margin:0;padding-left:18px;font-size:12.5px;color:var(--ink-2)}