Skip to content

Commit 978a22d

Browse files
committed
docs: 同步 motion-coverage 实测行数至 147
三处手抄副本 145 -> 147(countLines() 口径:ReadAllLines UTF8 含空行)。同批其余同名值 motion.css 74 / index.ts 45 / style-seams 271 / style-contract 214 实测未漂移。各数值行后加一行 line-count-src 机器锚点(files= / caliber= / authority=,刻意不带数值),让门禁可定位受辖文件并在 HEAD 重测比对,不再造手抄副本。
1 parent 1f9ae2f commit 978a22d

3 files changed

Lines changed: 9 additions & 5 deletions

File tree

‎docs/adr/ADR-033-l1-primitives-and-view-layer-contract.md‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ ADR-032 交付了 token 层(色阶 / 字阶 / z-index 标尺 / 图标),但
3838
| 8 | `Loading` / `Skeleton` / `Probe` | `Loading.tsx` 105 · `Loading.css` 79 · `Loading.test.tsx` 238 | 85 处/30 文件的手写灰字,全站 0 骨架屏 |
3939
| 9 | `StatusLine` | `StatusLine.tsx` 94 · `StatusLine.css` 42 · `StatusLine.test.tsx` 267 | 196 处/76 文件,三种红并存,错误常在列表最底部 |
4040
| — | 共享内核 | `usePresence.ts` 200 · `usePresence.test.tsx` 282 · `usePresence.node.test.ts` 71 · `useFocusTrap.ts` 122 · `useFocusTrap.test.tsx` 236 · `ime.ts` 18 · `ime.test.ts` 32 | 卸载时机 / 焦点陷阱 / IME 组合态 |
41-
| — | 接缝与守卫 | `motion.css` 74 · `index.ts` 45 · `style-seams.test.ts` 271 · `style-contract.test.ts` 214 · `motion-coverage.test.ts` 145 | 动效变量与 reduced-motion 块 · 导出面 · 机器判据见 `style-seams` / `style-contract` / `motion-coverage` 三个测试文件 |
41+
| — | 接缝与守卫 | `motion.css` 74 · `index.ts` 45 · `style-seams.test.ts` 271 · `style-contract.test.ts` 214 · `motion-coverage.test.ts` 147 | 动效变量与 reduced-motion 块 · 导出面 · 机器判据见 `style-seams` / `style-contract` / `motion-coverage` 三个测试文件 |
42+
<!-- line-count-src: files=app/src/ui/primitives/motion.css,app/src/ui/primitives/index.ts,app/src/ui/primitives/style-seams.test.ts,app/src/ui/primitives/style-contract.test.ts,app/src/ui/primitives/motion-coverage.test.ts caliber=countLines@scripts/line-limits.mjs authority=HEAD-remeasurement -->
4243

4344
> **行数口径(唯一有效)**:`countLines()`,即 `[System.IO.File]::ReadAllLines(path, UTF8).Count` —— **含空行**的全部行数(禁用 `Get-Content` / `Measure-Object -Line` / 数 `0x0A` 字节)。
4445
> **权威来源**:逐文件数值以机器生成的 [行数豁免登记](../standards/line-limit-exemptions.md) 为准(`node scripts/line-limits.mjs --write` 生成、`--full` 校验,**不要手改其数字**);本表只是**人读摘要**。

‎docs/standards/line-limit-exemptions.md‎

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@
211211
> **批 0-D(L1 原语层 + 批 1 删除批)新增文件记录 —— 全部 ≤300 行,无需登记**(2026-09-11,Task 14 收尾)。本节只**追加人工记录行**:收尾时 `node scripts/line-limits.mjs --full` 本就绿(`>600` 硬限 **0** · 301–600 档 **125** · 登记条目 **125**),故**未跑 `--write`**(避免把并行任务的在飞行连带提交);本节数字与棘轮名单、301–600 档表**均无改动**。
212212
>
213213
> ⚠️ **来源标记:本节是人工维护的记录块,非机器生成** —— 数值写成 Markdown **引用行**(`> - ` 起首,形如 `> - 文件:**N**`),而 `parseTable()` 只认 4 列 `| path | N | … |` 表行(引用行一律忽略);且本块位于 `## 已拆分` 标题**之后**,`parseHistory()` 对该节**逐字保留** ⇒ `--write` 永远既不重算也不删除它,数值过期后**没有任何门禁会报警**(2026-09-11 已发现 Loading / StatusLine 共 6 个值过期,实测更正)。
214-
> **刷新规则:本节与 `docs/adr/ADR-033-l1-primitives-and-view-layer-contract.md`、`docs/superpowers/specs/2026-09-11-frontend-redesign-design.md` 三处副本不一致时,一律在 HEAD 按 `countLines()` 口径(含空行)重新实测,并以实测值同步全部副本。**
214+
> **刷新规则:本节与 `docs/adr/ADR-033-l1-primitives-and-view-layer-contract.md`、`docs/superpowers/specs/2026-09-11-frontend-redesign-design.md` 三处副本不一致时,一律在 HEAD 按 `countLines()` 口径(含空行)重新实测,并以实测值同步全部副本。机器锚点:三处副本的每处数值行后紧跟一行 HTML 注释 `<!-- line-count-src: files=… caliber=… authority=… -->`,供门禁按 `files=` 逐个在 HEAD 重测、与相邻数值行对拍 —— 锚点内**刻意不写数值**,否则等于又造一份手抄副本。**
215215
>
216216
> **新建目录 `app/src/ui/primitives/` 下 42 个文件**(实测行数口径 = `scripts/line-limits.mjs` 的 `countLines()`,即含空行的全部行数;**最大 297**):
217217
> - `Text`:`Text.tsx` **89** · `Text.css` **46** · `Text.test.tsx` **130**
@@ -224,9 +224,11 @@
224224
> - `Loading`/`Skeleton`/`Probe`:`Loading.tsx` **105** · `Loading.css` **79** · `Loading.test.tsx` **238**
225225
> - `StatusLine`:`StatusLine.tsx` **94** · `StatusLine.css` **42** · `StatusLine.test.tsx` **267**
226226
> - `usePresence`:`usePresence.ts` **200** · `usePresence.test.tsx` **282** · `usePresence.node.test.ts` **71**
227-
> - 接缝 / 导出面 / 守卫:`motion.css` **74** · `index.ts` **45** · `style-seams.test.ts` **271** · `style-contract.test.ts` **214** · `motion-coverage.test.ts` **145**
227+
> - 接缝 / 导出面 / 守卫:`motion.css` **74** · `index.ts` **45** · `style-seams.test.ts` **271** · `style-contract.test.ts` **214** · `motion-coverage.test.ts` **147**
228+
> <!-- line-count-src: files=app/src/ui/primitives/motion.css,app/src/ui/primitives/index.ts,app/src/ui/primitives/style-seams.test.ts,app/src/ui/primitives/style-contract.test.ts,app/src/ui/primitives/motion-coverage.test.ts caliber=countLines@scripts/line-limits.mjs authority=HEAD-remeasurement -->
228229
>
229-
> **★ 一次真实的口径事件(记在此以免被当成"新文件登记豁免"的先例)**:收尾实施者最初把 Task 14 的全部守卫**追加**进 `style-seams.test.ts` ⇒ 该文件涨到 **340 行 > 300**,`--full` **exit 1**(`(c) 超过 300 行但未登记`),**会拦下全仓所有人的提交**。处置**照批 0-D 裁决**:**不用 `--write` 登记豁免**(登记表/棘轮是给**存量**文件的历史债机制),而是**按语义拆** —— 「原语 CSS **文本**反例」(零颜色字面量 · `--ed-stamp` 不作底色)留在 `style-seams.test.ts`;「**跨文件**契约」(CSS 接线 · 联合契约锚 · 退场时长三方对拍)落 `style-contract.test.ts`;「**reduced-motion 覆盖**」(基类名单 · **动画落点含伪元素**)另立 `motion-coverage.test.ts`(T11 评审 Critical 修好后追加的那条守卫再次逼近 300 行红线,遂二次按语义拆)。三个文件 **271 / 214 / 145** 行、职责写进各自 `@ai-context` 文件头,T3/T4/T12 已追加的 describe **逐条保留**(追加式演进)。
230+
> **★ 一次真实的口径事件(记在此以免被当成"新文件登记豁免"的先例)**:收尾实施者最初把 Task 14 的全部守卫**追加**进 `style-seams.test.ts` ⇒ 该文件涨到 **340 行 > 300**,`--full` **exit 1**(`(c) 超过 300 行但未登记`),**会拦下全仓所有人的提交**。处置**照批 0-D 裁决**:**不用 `--write` 登记豁免**(登记表/棘轮是给**存量**文件的历史债机制),而是**按语义拆** —— 「原语 CSS **文本**反例」(零颜色字面量 · `--ed-stamp` 不作底色)留在 `style-seams.test.ts`;「**跨文件**契约」(CSS 接线 · 联合契约锚 · 退场时长三方对拍)落 `style-contract.test.ts`;「**reduced-motion 覆盖**」(基类名单 · **动画落点含伪元素**)另立 `motion-coverage.test.ts`(T11 评审 Critical 修好后追加的那条守卫再次逼近 300 行红线,遂二次按语义拆)。三个文件 **271 / 214 / 147** 行、职责写进各自 `@ai-context` 文件头,T3/T4/T12 已追加的 describe **逐条保留**(追加式演进)。
231+
> <!-- line-count-src: files=app/src/ui/primitives/style-seams.test.ts,app/src/ui/primitives/style-contract.test.ts,app/src/ui/primitives/motion-coverage.test.ts caliber=countLines@scripts/line-limits.mjs authority=HEAD-remeasurement -->
230232
>
231233
> **本批配套改动(不涉行数登记,仅为溯源)**:① `--ed-shadow-1/2` 定值(亮档投影 / **暗档反相描边** `0 0 0 1px rgba(255,255,255,.06)`)落在生成器真源 `app/scripts/gen-tokens.mjs` 与产物 `app/src/ui/tokens.css`(`--ed-shadow-card` 被取代,实测 0 处代码引用 ⇒ 不留兼容别名);② **`ui/tokens.css` 入口接线** = `app/src/main.tsx:5` 的 `import "./ui/tokens.css";`(此前该文件从未被 import ⇒ 原语的 `var(--ed-*)` 运行时无值;该文件只有 `:root`/`[data-theme]` 自定义属性、无选择器 ⇒ 零视觉变化;防回归断言在 `tokens.drift.test.ts`);③ `--ed-due` 亮档第二次修正 `#A05F10 → #9F5E10`(剪报底 4.4950 → **4.5571**,纸 4.9309 / 面 5.1436);④ **守卫**(零颜色字面量 · `--ed-stamp` 不作底色 · reduced-motion **基类名单** · CSS 接线)+ 三条补充判据(联合契约锚 · 退场时长三方对拍 · **`animation` 落点含伪元素必须逐字进 reduced-motion 名单**)落在上述三个 `.test.ts`;⑤ `app/src/App.css`(123 行、非 UTF-8、**从未被 import** 的死样式)由 Task 13 删除 —— 它**本就不在** 301–600 档表内(`.css` 不在 `SOURCE_EXT` 管辖内),故删除对计数的贡献为 **0**。
232234
>

‎docs/superpowers/specs/2026-09-11-frontend-redesign-design.md‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,8 @@
230230
> | `Loading` / `Skeleton` / `Probe` | `Loading.tsx` 105 · `Loading.css` 79 · `Loading.test.tsx` 238 |
231231
> | `StatusLine` | `StatusLine.tsx` 94 · `StatusLine.css` 42 · `StatusLine.test.tsx` 267 |
232232
> | 共享内核 | `usePresence.ts` 200 · `usePresence.test.tsx` 282 · `usePresence.node.test.ts` 71 · `useFocusTrap.ts` 122 · `useFocusTrap.test.tsx` 236 · `ime.ts` 18 · `ime.test.ts` 32 |
233-
> | 接缝 / 导出面 / 守卫 | `motion.css` 74 · `index.ts` 45 · `style-seams.test.ts` 271 · `style-contract.test.ts` 214 · `motion-coverage.test.ts` 145 |
233+
> | 接缝 / 导出面 / 守卫 | `motion.css` 74 · `index.ts` 45 · `style-seams.test.ts` 271 · `style-contract.test.ts` 214 · `motion-coverage.test.ts` 147 |
234+
> <!-- line-count-src: files=app/src/ui/primitives/motion.css,app/src/ui/primitives/index.ts,app/src/ui/primitives/style-seams.test.ts,app/src/ui/primitives/style-contract.test.ts,app/src/ui/primitives/motion-coverage.test.ts caliber=countLines@scripts/line-limits.mjs authority=HEAD-remeasurement -->
234235
>
235236
> **行数口径(唯一有效)**:`countLines()`,即 `[System.IO.File]::ReadAllLines(path, UTF8).Count` —— **含空行**的全部行数(禁用 `Get-Content` / `Measure-Object -Line` / 数 `0x0A` 字节)。
236237
> **权威来源**:逐文件数值以机器生成的 [行数豁免登记](../../standards/line-limit-exemptions.md) 为准(`node scripts/line-limits.mjs --write` 生成、`--full` 校验,**不要手改其数字**);本表只是**人读摘要**。

0 commit comments

Comments
 (0)