From 967d29e6335a36ae345ff881ab00c53fd1e9563f Mon Sep 17 00:00:00 2001 From: Wanderingss <1624155937@qq.com> Date: Wed, 28 Oct 2026 12:42:15 +0800 Subject: [PATCH] =?UTF-8?q?docs(id-check-new):=20=E8=A1=A5=E4=B8=80?= =?UTF-8?q?=E6=9D=A1=E7=9B=B2=E5=8C=BA=E2=80=94=E2=80=94--all-files=20?= =?UTF-8?q?=E4=B8=8B=E5=AE=83=E6=98=AF=E7=A9=BA=E8=BD=AC=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 本门禁自己读 git diff,不看钩子传进来的文件名:pre-commit run --all-files (也就是 ci_local.py 的 L0)把文件当全量传入、暂存区却是空的 → 它打印通过。 这与 §6 第 4 条(未跟踪文件不在扫描面)同源,但后果不同:那条只影响手工自查, 这条会让 L0 全绿被误读成「没有新编号」。写进文档,别让人踩。 --- docs/门禁说明/id-check-new.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/门禁说明/id-check-new.md b/docs/门禁说明/id-check-new.md index 69ff2eb5..fe9f6afc 100644 --- a/docs/门禁说明/id-check-new.md +++ b/docs/门禁说明/id-check-new.md @@ -73,6 +73,9 @@ 3. **`[示例]`/`[计划]` 整行跳过**:想绕过本门禁,写个 `[示例]` 就行。这靠评审纪律,不靠机器。 4. **未跟踪文件不在扫描面**(`git diff` 语义):手工在 `git add` 之前跑 `--worktree` 看不到新文件; 提交时必已进暂存区,所以门禁场景不受影响。 + 推论:**在 `pre-commit run --all-files`(`ci_local.py` 的 L0)下它是空转的**—— + 那种跑法把文件当"全量"传进来,而本脚本只读暂存区 → 暂存区空 → 打印通过。 + 它只在**真实提交**时才有牙;别拿 L0 全绿当"没有新编号"的证明。 5. **算术白名单是启发式**:`SIZE-2`/`LEN-1` 这类被排除;但若某处写着一个「不在白名单的前缀 + 连字符 + 数字」,就会误报一次——把前缀加进白名单即可,不构成误拦风险。 6. **不校验语义**:白名单里的前缀可以拿来写任何东西(`TIM3` 合法,`TIM99` 也放行)。