JianFeeeee
c4279a95ce
feat(criteria): 文件名不得是"句子里的一段" —— 我为**自己制造的**那个化石加守
## 我制造了什么(本会话 `34bcd3e9` 那轮,实测复现)
```
我在 bash 里写了一句带嵌套未转义双引号 + 裸 `>` 的说明:
echo " ⇒ 所以"mtime > 动作时刻是**必要但不充分**,且会被**后人无关的写**覆盖""
bash 把 `>` 读成**重定向** ⇒ **在仓库根建了一个文件**:
文件名 = `动作时刻是**必要但不充分**,且会被**后人无关的写**覆盖`
内容 = ` ⇒ 所以mtime`(18 字节)
⇒ 我在检查工作树时看到 `?? "动作时刻是…"` 才发现的。
用 /tmp 里的最小复现验证到**同名同内容** ⇒ 确认是我的 shell 引号事故,不是别人的。
```
## 为什么值得一条判据(它会被提交)
```
· 未跟踪文件**不会**被普通 `git add <path>` 带上 ⇒ 平时看不见、不会被门禁提醒;
· 但本仓**明文记录过 `git add -A` 事故**(`docs/DEV-TOOLING.md`: 含把约 7000 行重排扫进功能提交那次)
⇒ 下一次 `-A` 就会把这个"句子文件"带进历史,而**进了历史就永远删不干净**;
· 它的**名字本身就说明它是无意的** —— 没有人的文件名会是"…且会被**后人无关的写**覆盖"。
```
## 判据(零先例实测 ⇒ 不误伤)
```
仓库内(排除 node_modules/.git/build/release/dist/.hvigor/.codegraph/oh_modules)
不得有名字含**中文标点**(,。、!?;:()「」“”《》【】)、**markdown 粗体 `**`**、或**换行**的文件
★ 判**名字的形态**,不判目录 —— 按目录裁豁免正是本仓记过的"给逃逸指路"。
实测先例: 加这条之前全仓命中 **0**(根目录 0、全仓 0)⇒ 不误伤任何现存文件。
```
## 双向变异
```
① 重建那个句子文件名 ⇒ **not ok 10**,逐个点名 ✓(上面就是它抓到的输出)
② 删掉 ⇒ 10/10 绿 ✓
```
## 顺带
```
run-all.mjs 注册条数 9 → **10**(新增 test 必须登记精确条数,本仓约定)
```
★ 这条与我这轮前两条(`fc54a81` 两处排除、`b16c38a` "提到≠发现路径")是**同一族**:
**"看起来像在表达一件事"的东西被当成了"它就是那件事"** ——
前两条在判据的**匹配口径**里,这条在**文件名**上(一段散文被当成了路径)。
验证: criteria-hygiene 10/10;drift 自检 64/0;两文件 `node --check` 通过;
现场: 探针已删(`git status` 只剩本提交的两个文件)。
2026-09-25 07:58:36 +08:00
..
2026-09-25 07:58:36 +08:00
2026-09-24 16:34:44 +08:00