File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -837,11 +837,13 @@ git commit -m "docs(versions): 0-C1 行数红线验收与门槛更正"
837837- **`scripts/validate-all.mjs` 已失效**:它引用 `client/`、`server/ai-gateway` 等**本仓库不存在的目录**(重构前遗留),跑起来第一步即失败。并行审查曾建议把行数守卫挂进它 —— **该建议的前提不成立**(落点本身是坏的)。修它或删它属独立治理项。
838838- **`REQ-201` 状态标注**、豁免表历史节的进一步精简:不属本批。
839839- **★ 自动摘取的 43 条理由里有 16 条在连接符处截断**(Task 3 实施者实测):`autoReason` 只取 `@ai-context` 的**第一个物理行**,于是形如「…(自动摘取,待细化)」的理由中,有 16 条是半句话(以「,」「——」「+」等结尾)。**不算缺陷**(表格的验收口径是**结构一致性**:成员关系 + 数值,不含散文质量),且**修法零人工成本** —— 表格是生成物,改 `autoReason` 让它续读后续物理行直到句末或空行,再跑一次 `--write` 即可整体刷新。⇒ **并入 `0-C2` 顺手做**(建议同时把理由上限截到合理长度)。
840- - **扫描域不含 `scripts/` 与 `docs/`**:本批的口径域**只有** `app/src` + `app/src-tauri/src` 的 `.ts/.tsx/.rs`(868 个文件)。AGENTS.md §3 说" 单文件 ≤300 行" 字面上是**全仓**要求,故这是一处**有意的窄化**:`scripts/*.mjs `(现 62–238 行,均 ≤300 )与 `docs/**` 未纳入登记表,也**不会**被守卫拦。若要扩域,须另立批次(并先把 `SOURCE_EXT` 与登记表节的措辞一起改)。
840+ - **扫描域不含 `scripts/` 与 `docs/`**:本批的口径域**只有** `app/src` + `app/src-tauri/src` 的 `.ts/.tsx/.rs`(868 个文件)。AGENTS.md §3 说" 单文件 ≤300 行" 字面上是**全仓**要求,故这是一处**有意的窄化**:`scripts/** `(现 **80–297 行**,含本批新增的 `line-limits.mjs` = **297** )与 `docs/**` 未纳入登记表,也**不会**被守卫拦 ⇒ **`line-limits.mjs` 自己不被自己看守** 。若要扩域,须另立批次(并先把 `SOURCE_EXT` 与登记表节的措辞一起改)。
841841- **超硬限表里 10 行的拆分计划仍写「若再增长:…」**(继承来的人工文字;生成器只对**没有**人工计划的超硬限行写「**超硬限必须拆**」)。对**已经**越限的文件,这个前缀有误导性(像在说" 长大了才拆" )。
842842 ⇒ **控制方裁定:不修**。理由有两条:① 强制语气已由**两处**承载(节标题「>600 行,必须硬拆,不允许豁免」+ 该行 `说明` 列逐行重复「超硬限(>600 行),不允许豁免」),`拆分计划` 列只回答" ** 拆什么** " ;② **这些行正是 `0-C2`/`0-C3` 要拆掉的文件,拆完行就从表里消失** —— 给它们改措辞是**会被蒸发的工作**。若 0-C2/C3 因故长期不做,再回来改前缀(一行正则 + 重跑 `--write`)。
843843
844- > **执行结果(2026-09-11 收尾时补记)**:Task 0–3 已全部交付。工具现为**绿**(默认与 `--full` 都 `exit=0`,stderr 0 字节),登记表 **138 条 / 179 行**、历史节 16 条、占位符 0、脚本 250 行。Task 4(接线 lint-staged + CI)与 Task 5(回写门槛与验收)待做。
844+ > **执行结果(2026-09-11 收尾时补记)**:Task 0–5 已全部交付。工具现为**绿**(默认与 `--full` 都 `exit=0`,stderr 0 字节),登记表 **138 条 / 179 行**、历史节 16 条、占位符 0、脚本 **297 行**。
845+ > ⚠️ **`line-limits.mjs` 的 300 行余量只剩 3 行** ⇒ `0-C2` 拟并入的 `autoReason` 续行改进(见上)**很可能越线**,届时须在「**写紧**」(合并重复分支、缩短注释)与「**拆文件**」(把 `check` 与 `writeTable` 分文件)之间二选一 —— **不要**因为" 它是工具" 就默认它可豁免。
846+ > 门禁加固(`.husky/pre-commit` 加 `--no-stash --no-hide-partially-staged`)见 Task 4 节末尾;其**代价**之一是「部分暂存的文件跑完会被整文件 `git add`」,故本文档早先那句「校验看到的是即将提交的状态」已不成立(Task 5 已就地修正)。
845847
846848## 自审记录
847849
Original file line number Diff line number Diff line change 59591 . ** 15 个 >600 行文件 → 0** (实测值:前端 5 + Rust 10;规格原文的「4 个」只扫了前端且漏掉 ` SessionListPanel.tsx ` );>300 行 ** 100% 在豁免表内且数值与实测一致** 。
6060 > ** 2026-09-11 用户裁决** :范围取实测 15 个;口径取「全部行数」,** 以 ` [System.IO.File]::ReadAllLines(path, UTF8).Count ` 为准** (即 ` scripts/line-limits.mjs ` ),** 禁用 ` Get-Content ` (少算可达 56 行)· ` Measure-Object -Line ` (只数非空行)· 字节 ` 0x0A ` 计数(末尾无换行时少算 1)** 。
6161 > 执行机制:` node scripts/line-limits.mjs ` (本地提交门禁 + CI ` --full ` 守数值),>600 用** 棘轮** 只减不增 —— 拆分由 0-C2(前端 5)/ 0-C3(Rust 10)推进,每拆完一个从 ` FROZEN_OVER_LIMIT ` 删一行。
62+ > ** 债务未关** :15 个文件** 当前仍全部 >600** ,棘轮只保证「不再增加」,` → 0 ` 由 0-C2 / 0-C3 兑现。该缺口的完整实测与豁免表治理债登记为 ** ` TD-2026-09-11-H ` ** (清单与证据在 ` docs/tech-debt/review-2026-09-11.md ` —— ⚠️ 该文件** 目前未入 git** ,故此处不写成 Markdown 链接,否则新克隆会断链)。
62632 . 手写弹层 20 → 全走 ` Modal ` ;z-index 不同值 17 → ** ≤6 档** ;` role="dialog" ` + 焦点陷阱 ** 20/20**
63643 . 空态 / 加载 / 错误行 / 弱化文本 / 卡片边框 五类重复 → 各自 ** 1 个原语**
64654 . CSS 变量 0 → 覆盖全部语义色/字阶/间距/圆角/时长/缓动;hex 88 → ** ≤ token 数**
106107
107108规格 §10 的批 0 还包含:** ADR-033~ 035** (当前 ` docs/adr/ ` 最高为 ADR-032)· 豁免表纠偏 · 拆 4 个 >600 行文件 · 原语三层。** 这些不在 0-A / 0-B 范围内** ,后续子批次另行立计划。
108109
109- ### 跨批发现 · 本机工具链的两个「读数陷阱」 (工具级,影响全项目)
110+ ### 跨批发现 · 本机工具链的读数陷阱与门禁真相 (工具级,影响全项目)
110111
111112** 陷阱 1 · 行数 —— ` Get-Content ` 会少算**
112113
You can’t perform that action at this time.
0 commit comments