From 33b6033bdd04a898a7342bc76d9eab473a685ebc Mon Sep 17 00:00:00 2001 From: JianFeeeee Date: Mon, 21 Sep 2026 05:19:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E6=A1=A3:=20=E5=8E=BB=E6=8E=89?= =?UTF-8?q?=E5=88=A4=E6=8D=AE=20=E2=91=A0=20=E9=87=8C=E5=86=99=E6=AD=BB?= =?UTF-8?q?=E7=9A=84=E9=AA=8C=E6=94=B6=E6=95=B0=E5=AD=97=E3=80=8C133?= =?UTF-8?q?=E3=80=8D=E2=80=94=E2=80=94=20=E5=AE=83=E7=AC=AC=E4=BA=8C?= =?UTF-8?q?=E5=A4=A9=E5=B0=B1=E8=BF=87=E6=9C=9F=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 我在注释里把验收写成「比了 **133** 个文件(全部,不筛后缀)、命中 0」。 那是 pi 给的算式(`/etc/systemd/system` 133 个文件 − 现行口径 129 = 差集 4)当天的快照。 **今天实测是 135** —— 系统装/卸一个 unit 就会变(我这次是 multi-user.target.wants 下多了 3 个)。 ⇒ 把「以某个绝对值为验收」改成「以**关系**为验收」: 要钉的是 `比了 N 个` 的 N **必须等于真的读到内容的条数** (读不到的单列 `unreadable` 并判红 —— 那正是我上一笔修的分母问题)。 验收时看 note 里的**实际 N**,别看历史值。 ★ 同族:这与我这几轮反复记的「判据的严格度必须与它真正想守的那件事对齐」是一回事 —— 这里想守的是「分母没有混进没比过的对象」,那是个**关系**,不是一个数。 把关系写成常数,等于把判据焊死在「当天的机器状态」上。 --- deploy/check-deploy-drift.mjs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/deploy/check-deploy-drift.mjs b/deploy/check-deploy-drift.mjs index d87d2ab..d3692cc 100644 --- a/deploy/check-deploy-drift.mjs +++ b/deploy/check-deploy-drift.mjs @@ -885,7 +885,12 @@ export function checkLayout(inject = {}) { // // 验收(他自己给的):扩完应当报"比了全部 N 个、命中 0 个";若命中里有文件名后缀异常者, // 那就说明原先漏掉的正是真信号 —— 两个结果都赢。 - // 实测验收:**比了 133 个文件(全部,不筛后缀)、命中 0** —— 即现在的 `0` 是**闭合的**。 + // 实测验收:**命中 0** —— 即现在的 `0` 是**闭合的**。 + // + // ⚠️ 分母**不要写死成某个数字**(我第一版在这里写了"133",第二天就变成 135 了 —— + // 系统装/卸一个 unit 就会变)。要钉的是**关系**:`比了 N 个` 的 N 必须等于 + // **真的读到内容**的条数(读不到的单列 `unreadable` 并判红,见上面的 walk)。 + // 验收时看 note 里的实际 N,别看这里的历史值。 // // ★ **"零违规"这个前提必须写明**(pi 要求),也一并说明"红/WARN 拆分"为什么没做: // 今天实测 0 违规 ⇒ 把"生效 unit 引用仓库"(红)与"遗留备份引用仓库"(WARN)拆成两档,