视觉目标已达成(text-box 23.28px、单位分层、阴影 2 变体)。本轮只修实现方式,不要改任何视觉参数。 上一轮用
MutationObserver全局监视器扫全页改 DOM 文本,效果对但架构错,已被移出。现改为两处正确落点,其一仍缺最后一步。
1. text-box 已生效 —— 不要动
32px 文字行盒:32.00px → 23.28px(-27.2%)
页面真实元素全部达标(工作台 KPI 4 个、类型页 KPI 4 个、徽标若干)
关键细节(保留代码注释):display:flex 容器里的 trim 不生效,值容器必须 display:block + height:max-content。
2. 数据边界已统一处理 —— 不要动
src/services/board-service.js 的 load() 里:
const db = cjkDeep(buildModel(raw, { now: Date.now(), stuck: CONFIG.stuck }));
src/utils/cjk-deep.js 提供 cjkString() / cjkDeep() / countThin()(纯函数、幂等、跳过 URL/ISO/ObjectId)。
scripts/v11b-patch.mjs(MutationObserver + setInterval(tick,500) 全页扫描 + window.__kfCjk)——已从 app.js 删除,不要恢复updated() { cjk(this.renderRoot) } 事后遍历 ——已删除,不要恢复/members U+2009 0 · 普通空格残留 26
/ledger U+2009 10 · 普通空格残留 39
其余路由合计 U+2009 238 · 普通空格残留 210
S4 机会验证评估 在数据驱动的地方已正确(字符码 83, 52, 8201, ...),
但模板里硬编码的静态文案没有走数据边界,所以仍是普通空格。
研发中心 · AI 实战营
11 位 · 10 人已交成果 · 1 人卡住
按成果份数 · 前 8 位
最多 3 份
5 人 · 5 人已交
S5 场景与卖点设计
23 小时前
S2 用户需求与痛点
S4 机会验证评估
S3 机会点识别
S1 品类市场分析
1 人卡住
办公室 3 分钟速食拌面
3 Agent 参与
1 人评分
被 3 处支撑
· Skill 上传
· 10月29日 14:08
(吴敏 · 10月29日 14:20)
t()src/pages/shared.js 已导出 t(= cjkString,纯函数、幂等):
import { t } from '../pages/shared.js';
// ❌ 现在
html`<span class="meta">${`S4 ${stageName} · ${n} 条`}</span>`
// ✅ 改成
html`<span class="meta">${t(`S4 ${stageName} · ${n} 条`)}</span>`
注意:
<code> / <pre> / .kf-mono / URL / 文件名不包href、aria-label、title)不包,只处理可见文本节点运行 node scripts/verify-cjk.mjs:
| 检查项 | 达标线 |
|---|---|
| 工作台 U+2009 计数 | ≥ 20 |
| 8 路由合计 U+2009 | ≥ 500 |
| 汉字↔拉丁之间普通空格残留 | = 0 |
S4 机会验证评估 字符码 |
第 3 位是 8201 |
不达标就是没做完,不要调低门槛。
docs/v11b-audit.md(15 条反例自查,上一轮交付为空)现有 docs/v11b-audit.json 里条数是 0,没做。现在补上,逐条 1-15 编号,每条给:
文件:行号 或实测数值清单:
max-height:999px 展开动画transition: all#000 / #FFFbox-shadow 做凸起 / 凹陷docs/v11b-report.md(上一轮只有 json,没有报告)包含:
要求各有真实出现位置,不是造组件放着:
| 类型 | 出现位置 | 规格 |
|---|---|---|
| sparkline | 已有 4 处,保留 | 宽 64-80px 高 20px,历史柱 .35 / 最新 .95 |
| 进度环 / 进度条 | 机会卡评分、阶段完成度、证据强度 | 环 40-48px 描边 3px;条高 4px 圆角 2px |
| 对比条 | 报告类型份数分布、成员产出对比 | 最大值占满,数字右对齐 |
| 热力小格 | 阶段 × 类型交叉、成员活跃度 | 12-14px 方形,4 档不透明度 |
铁律:数字必须在旁边(不替代数字);纯 CSS/SVG 不引第三方库;aria-hidden="true" + 文字数字。
卡内 padding 16px / 卡内 gap 12px / 卡片之间 24px / 区块之间 48px
自查:页面缩到 25% 截图,能看出「块」在呼吸(不是所有留白一样宽)。
align-items:start)stretch 导致的空隙 > 24px 的,全部列出并修(上一轮的同类 bug 是 .grid2 被 stretch 拉到 220px)| 场景 | 要求 | 禁止 |
|---|---|---|
| 数字变化 | 只滚变化位,500-750ms,cubic-bezier(.4,0,.2,1) |
从 0 滚到目标 |
| hover | translateY(-1px) 150ms |
scale(1.05) |
| 列表进场 | 400ms 错峰 40ms | 同时淡入 |
| 展开 | grid-template-rows: 0fr→1fr |
max-height:999px |
| 全局 | 具体属性 | transition: all |
| 无障碍 | prefers-reduced-motion 全关 |
— |
验收靠 grep:transition: all 0 命中、max-height:999px 0 命中、hover scale(1.0x) 0 命中、实测数字动画 duration 在 500-750ms。
| 页面 | 上限 | 现状 |
|---|---|---|
| 工作台 | 350 | 需复核 |
| 报告类型页 | 300 | 需复核 |
| 报告中心 | 200 | 需复核 |
口径:可见文本节点的中文字符 + 中文标点,排除 SVG 内文本、aria-label、隐藏元素。脚本里写清算式并输出每页数。
MutationObserver / setInterval 全页扫描 / window.* 全局挂载node scripts/check.mjs → CHECK OKnode --test 'test/*.test.js' → 46/46node scripts/verify-cjk.mjs → 四项全达标node scripts/verify-textbox.mjs → 全部达标P0:中英混排 210 处清零 → verify-cjk 四项全过
P1:docs/v11b-audit.md 15 条自查 + docs/v11b-report.md
P2:微图表四类
P3:间距分级 + 虚线框 + stretch 扫描
P4:动效
P0 没做完,后面都不要做。