Skip to content

Commit 1da830f

Browse files
committed
docs(versions): 补批 0-A/0-B 交付记录与行数口径发现
仓库此前没有任何批 0 的交付记录(v0.22.md 仍写着「批 0 尚未启动」)。 - 批 0-A 设计系统基座(4e3bfa1a..7148533,9 提交)与 0-B 图标集(25bd5d99..4197730,12 提交) - 批 0 其余部分(ADR-033~035 / 豁免表纠偏 / 拆 4 个 >600 行文件 / 原语三层)明确标注未落地 - 记录跨批工具发现:Get-Content 按 GBK 解码 UTF-8 会少算行数,行数红线须用字节口径
1 parent 4197730 commit 1da830f

1 file changed

Lines changed: 34 additions & 2 deletions

File tree

‎docs/versions/v0.22.md‎

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# v0.22:前端重设计系列(组件体系 / 布局 / 动效 · L0–L6 全层)
22

3-
> 状态:**设计已批准(2026-09-11 用户逐项裁决)· 待实施(批 0 未启动)**
3+
> 状态:**实施中** —— 批 0-A(设计系统基座)与批 0-B(图标集)已交付并通过评审;批 0 的其余部分(ADR-033~035 · 豁免表纠偏 · 拆 4 个 >600 行文件 · 原语三层)**待立计划**
44
> 权威规格:[2026-09-11-frontend-redesign-design.md](../superpowers/specs/2026-09-11-frontend-redesign-design.md)(513 行,本系列的唯一定义源;本文档只做批次归属与交付记录)
55
> 关联:[UX 市场惯例审计](../Foresight/ux-market-convention-audit.md)(本设计的直接输入)· [长期优化清单](../Foresight/long-term-optimization-checklist.md) · [需求池](../product/requirements-pool.md) · [ADR-010](../adr/ADR-010-gap-filling-ai.md)(本系列修订为退役)
66
@@ -70,7 +70,39 @@
7070

7171
## 交付记录
7272

73-
> 逐批追加。批 0 尚未启动 —— 本节当前为空。
73+
> 逐批追加。
74+
75+
### 批 0-A · 设计系统基座(2026-09-11,`4e3bfa1a..7148533e`,9 个提交)
76+
77+
**交付**:ADR-032(前端设计系统与 token 层落地)· token **单一真源** `app/scripts/gen-tokens.mjs` + 生成产物 `app/src/ui/{tokens.ts,tokens.gen.ts,tokens.css}` · 对比度纯函数 `contrast.ts`(WCAG 相对亮度 / 对比度 / AA 判定)· **z-index 六档标尺** `zIndex.ts`(17 个散值收敛为 6 档)· 漂移守卫 `tokens.drift.test.ts`(行尾归一,防新检出假阳性)· 对比度守卫(绑定底色而非硬编码常量)。
78+
79+
**验收**:`tsc` 0 错 · vitest 全绿 · 终局全分支评审 + 修复波 + 受限复审通过。
80+
**规格修正**:§4.1 色阶 16 token 的对比度按**实测**回写 —— `--due` 亮档 `#B26A12`(4.06:1) → **`#A05F10`**(4.86 / 5.07),作废值 `3.1:1` → `3.22:1`。
81+
82+
**过程中纠正的计划错误(6 处,均由实施者或评审者实测抓出)**:ADR 相对链接层级写错 · 生成器「有第二份 WCAG 公式」的不实描述 · 漂移测试逐字节比对在新检出会假阳性 · 对比度守卫测硬编码常量而非底色 · 两处 `normalizeEol` 已分叉 · 断言计数不符。
83+
84+
### 批 0-B · 图标集(2026-09-11,`25bd5d99..41977303`,12 个提交)
85+
86+
**交付**:`app/src/ui/icons/` —— `types.ts`(几何契约,四种元素白名单、无颜色字段)· `paths.domain.ts`(域 **9**)+ `paths.action.ts`(对象与动作 **15**)= **24 个自绘图标** · `paths.ts`(合并注册表 + 启动期**重名检测** + **零列名字面量联合 `IconName`**)· `Icon.tsx`(唯一渲染入口:`currentColor` / 默认 `aria-hidden` / 有 `label` 时角色转为 `img`)· `index.ts`(导出面 10 项)· 三个测试文件共 **21 例** · **内联 `<svg>` 棘轮守卫** `no-inline-svg.test.ts` · `app/src/node-builtins.d.ts` 扩写(无 `@types/node` 前提下的最小环境声明,不用 `any`)。
87+
88+
**验收**:`tsc --noEmit` 0 错 · vitest **103 files / 809 tests 全绿**(图标层 21/21)· `docs-check` ✅ · **零新增依赖** · **界面外观零变化**(本批**只定义不消费**:未改任何组件、未替换任何 emoji,消费在批 4)。
89+
90+
**两项关键实测结果**:
91+
1. **24 组几何数据零转录漂移** —— 与计划数据逐字比对(域 9/9、动作 15/15,键序一致),并用变异探针证明该比对非空转。
92+
2. **棘轮基线为空** —— `src/**/*.ts(x)` 共 327 个文件,`src/ui/icons/` 之外**没有任何内联 `<svg>`** ⇒ 棘轮语义实际为「**一个都不许新增**」(比「不许增加」更强,且无需特赦任何存量文件)。守卫已用探针证明会真实失败。
93+
⚠️ 其第 2 个断言(基线过期项检查)在空基线下**休眠**,不计入当前防护力。
94+
95+
**过程中纠正的计划错误(9 处,逐条见批台账)**:`index.ts` 的真实 TS2459 · `IconName` 偏差裁定**撤回**并改为立即修 · `ACTION_ICON_PATHS` 用了计划自己明令禁止的宽注解 · `DOMAIN_ICON_PATHS` 缺 `satisfies` · 「`as const satisfies` 会 TS1360」不成立(实测不报错)· 圆越界举例方向写反 · 类型断言片段缺 `void`(`noUnusedLocals` 下 TS6133)· Task 3 的守卫探针位置无效(写在被设计性排除的目录内)· Task 3 守卫代码在本仓编译不过(缺声明,`tsc` exit 2)。
96+
97+
### 批 0 其余部分(未落地)
98+
99+
规格 §10 的批 0 还包含:**ADR-033~035**(当前 `docs/adr/` 最高为 ADR-032)· 豁免表纠偏 · 拆 4 个 >600 行文件 · 原语三层。**这些不在 0-A / 0-B 范围内**,后续子批次另行立计划。
100+
101+
### 跨批发现 · 行数红线的测量口径(工具级,影响全项目)
102+
103+
本机 harness 的 `pwsh` 实为 **Windows PowerShell 5.1**(ANSI 码页 `gb2312`),`Get-Content` 会按 GBK 解码 UTF-8 文件并**吞掉换行、把行数少算**(实测:`index.ts` 19→12、`paths.test.ts` 130→112、`NoteListView.tsx` 654→609,最多少 **45** 行)。
104+
⇒ **AGENTS.md §3 的「≤300 / >600」必须以字节 `0x0A` 或 `[System.IO.File]::ReadAllLines(path, UTF8)` 计量,禁用 `Get-Content` 数行。** 该失真已造成一次真实险情(据此误判 `IconName` 未导出)。
105+
治理侧(口径未定义、15 个 >600 硬限违规、豁免表数值过期)见 [tech-debt/review-2026-09-11.md](../tech-debt/review-2026-09-11.md);工具侧见批 0-B 台账。
74106

75107
## 边界(红线延续,全文见规格 §3)
76108

0 commit comments

Comments
 (0)