# AGENTS.md — 装配式装修技能开发

> 本文件是跨对话协作的入口锚点（核心 C1）。**它不定义规则，只告诉你规则在哪**：
> 变更定级与审批的唯一事实源是 `_专题_技能合集策划/change-governance.md`，本文件与其冲突时以该文件为准。

## 项目定位

装配式装修技能合集的**开发与治理主仓**（L1 开发源）。技能本体发布到 Qoder 运行时，本仓持有策划稿、治理文件、备份镜像与全过程记录。

- 远端：`https://github.com/eiway112/prefab-interior-skills.git`（`origin/master`）
- 2026-08-30 自 `D:\QoderWork-Files\_项目工作\` 迁入本工作区顶层，`.git` 随迁、历史完整（94 提交）

## 目录结构

```
装配式装修技能开发/
├── AGENTS.md                ← 本文件（C1）
├── .gitignore               ← C5
├── README.md / CHANGELOG.md / LICENSE
├── _专题_技能合集策划/       ← 治理文件 L1 开发源（8 份 shared 治理文件在此，含 `data-classification.md`）
├── _专题_隔墙技能策划/ _专题_墙面技能策划/
├── _专题_吊顶技能策划/ _专题_楼地面技能策划/ _专题_ACE开发/
│                            ← 各子技能策划稿、QA 基线与红线草案
├── 技能仓备份/              ← 运行时技能的仓内镜像（sync_skill_backup.py 产物，勿手改）
├── 程序文件/                ← C2：校验器 `validate_governance.py` ＋ 各检查的门禁测试 ＋ 门禁临时面单源 `gate_scratch.py` ＋ 同步器（见下表）
│   └── 脚本/                ← 批登记脚本（可复跑凭据，入库）。落点依据工作区《_管理规范/文件与项目管理规范》（**不钉版本号**，条文以该件现行版为准）：§3.7「可复用的 .py 脚本 → 归入 `程序文件/脚本/`」＋C2 程序文件隔离。**门禁临时面单源＝`程序文件/gate_scratch.py`**：落工作区 `_整理与清理/<日期>/门禁临时面-<件名>/`，进程退出自清（含空日期目录回收）。**项目内与工作区根都不得新建常驻临时目录**——落仓内会成嵌套 git 仓并被 sync 当新增件带进镜像；落工作区根由 `_工具/workspace_health.py::check_root_dir_whitelist` 机算判 FAIL（白名单单源＝规范 §一 目录表，该表并明写「禁止自我白名单授权」：不得为让自建目录过检而补登记）。原工作区根 `_tmp-scripts/` 已于 2026-09-25 撤销并删除，其「多仓硬编码引用、改名即断链」的登记理由经全工作区 grep 证伪（活引用仅本仓 4 个门禁脚本）
├── 成果/ 文档/ 记录/        ← C3：交付物 / 方案文档 / 执行记录（件数随批浮动，不钉数字）
└── 素材/                    ← 空占位
```

## 三层结构（必须理解后再动手）

| 层 | 位置 | 性质 |
|---|---|---|
| L1 开发源 | 本仓 `_专题_技能合集策划/` | 可编辑 |
| L2 运行时 SOT | `~/.qoder/skills/` | 技能实际被加载处，唯一事实源 |
| L3 只读镜像 | `~/.qoder/skills/shared/` | 治理文件镜像 |

同步流程与验收步骤见运行时技能 `prefab-governance-sync`；**定级（S/A/B/C）与审批看 `change-governance.md`，不看该技能**。

## 改任何共享治理文件前

1. 读 `change-governance.md` §一定义表 + §二流程，**先查先例再定级**（环境路径/BOM/换行类修正属 C 级，可由发起人直接执行并登记）
2. 改完必须：`技能仓备份/` 同步 → 三份 `change-governance.md` 镜像哈希一致 → 登记 CG 编号
3. 历史 CG 行与 `记录/`、`CHANGELOG.md` 中的旧路径**不改写**（属当时事实快照）

## 取源通道（常设，不逐批申请）

发起人 2026-10-02 明文裁定，本节是其**常驻落点**。本节只登记该裁定及其操作后果，**不创设变更定级规则**——定级与审批的唯一事实源仍是 `_专题_技能合集策划/change-governance.md`。任何一轮都不得再把下列事项写成「待用户授权」向用户申请：

1. **联网检索第三方权威源是本仓的基本能力，不是需逐批批准的例外动作。** 全国标准信息公共服务平台、
   住建部公告页、工信部公告页等一律直接用（`gbQueryPage` 普通 GET 返 `total:0` 不得读作无记录）。
   该解除最早于 2026-09-30 已作出——台账与索引里若仍有行写「须发起人授权联网核验通道／非本仓可自主处置」，
   **那是登记面滞后于裁定的失实措辞，一律按已解除读取**，不得据此再次申请。
2. **本地规范目录 `D:/资料/中装科技/2-政策及规范/`（件数以盘点件现读为准，不在本行钉数）是取源渠道之一**，未覆盖部分自行经联网
   官方通道取得。逐件同一性判定与「哪些待处置项现在能自己干」见
   `成果/标准核验/本地规范目录取源盘点与同一性对撞_20261002.md`。
3. **「取到文件」不等于「能定性文件」**：从该目录或任何外部路径拿到的一份件，入库前先与本仓既有凭据载体做
   `sha256(原始字节)` 对撞——命中即系改名拷贝，登记为「已取得官方文本」即构成假陈述。本批活例：目录内
   `JCT 60036-2026《建筑隔声技术规范》.pdf` 与已判「不得作发布稿替代凭据」的征求意见稿字节全等
   （sha256 前 16 `62e353890b362b23`）。
4. **发起人对内容等同性的裁定是定性依据，但不改写文件自标事实**：按裁定收录时，登记面须同段写清
   「依据＝发起人某日明文裁定（逐字）」＋「该文件自身仍自标 X」，且引用措辞不得升格为「经官方出版件逐字核验」。
   先例＝索引 §三 序号 77 行与台账 PL-090 定性落地注。

## 验收门禁（改完必须实跑，不接受"应该没问题"）

> **下表命令的路径以本表现读为准，不得按目录惯性补全**：`sr_ic07_compliance_test.py` 与 SRE 门禁落**运行时技能目录**，余各道落 `程序文件/`。先例＝工作区记录 `记录/2026-09-21_PL-031阶段1试跑记录_v1_探针批.md` F-8 行——执行方曾以 `程序文件/sr_ic07_compliance_test.py` 调用该门禁、因 `No such file or directory` 判「本表路径指错」，该定性**已证伪并撤销**（本表该行的路径与 HEAD 前像同为正确路径，现跑 Ran 20／OK）；错误命令在该会话转录中首见于执行方自己发出的命令、先于任何工具结果，故不来自文件现读。**2026-10-02 同一失误复现一次**（见 `记录/2026-10-02_CG-20261002-007_MEP错引撤挂与3324限定语改齐批执行记录.md` §四 附），故把该裁定从单次探针记录移到本表——判据要生效须落在每轮必读的载体上，只写在记录里等于靠检索运气。

| 命令 | 当前基线 |
|---|---|
| `python -B 程序文件/validate_governance.py` | **【活基线：CG-20260919-001 起 225、CG-20260920-004 起 234、CG-20260920-005 起 236、CG-20260921-005 起 237、CG-20260923-001 起 241（系该批**提交前**发布时刻读数；commit 后随单源件两副本进入检查 6 (C) 实际比对浮至 243，差额属提交动作机械后果，见该批执行记录 §九）、CG-20260927-006 起警告 8→1（`A_VERIFY_DATE` 7 段逐行取真清零，索引侧无日期聚合档 38→36）、CG-20260927-007 起 244（检查 7 新增「台账『文件实证』结构锚→镜像层 grep」断言产出 1 条 [OK]，v1.16.0，PL-093 闭合；字面以反引号显式定界，定界残缺判红）、CG-20260928-002 起 245（检查 7 新增「§九 变更日志行列数与表头一致」断言产出 1 条 [OK]，v1.17.0，闭 PL-096；每行经 `md_cells` 转义感知切格后格数 == 表头格数，偏离逐行报行号；表头取不到／0 数据行防空跑判红；不钉行数——行数为开放全集）、CG-20260929-004 起 248（v1.18.0 新增检查 11「技能件 S1 标注行锚点结构」（CG-20260929-004，B 级，闭 PL-103）产出 3 条 [OK]：本批 clean 态实测该小节 [OK] 行恰为 3＝扫描面 47 件活 .md（SKILL_DIRS AST 现读，与检查 7/8/9 同源）＋「S1 表行判定」锚定 253 行＋结构豁免 23 行（E1 档位定义表 12／E2 红线规则行 7／E3 范围·释义·渠道内嵌形 3／E5 示例映射表 1，五支结构豁免全取结构判据、零白名单）＋存量清单对账 16 行逐行哈希全等双向零悬空，全额归因，非口径放松；判据＝技能件表数据行内标注 S1 词元（词边界 `(?<![0-9A-Za-z])S1(?![0-9A-Za-z])`）者行内须含标准号族（GB/GB/T/JGJ/JG/JC/CJJ/DB/DBJ/SJG/HG/HJ/EN/ISO/RISN 前缀行内搜索形）或条文定位符（第n.n条／表n.n／附录X），二者皆缺即 FAIL（FAIL 档计 fail_count）；豁免判序＝E2 行首格规则编号→E1/E5 表头→E3 行内短语→锚→bare（行自身/表级判据先于行内短语，短语信号最弱故居末兜底：红线条行含「S1-S4」叙述短语时按 E2 落档不因短语落 E3）；bare 口径单源＝`s1_bare_lines`（检查 11 主体／残量登记脚本／第十五门禁三方共用）；16 行真缺口存量按 (file, sha256(行)) 内容哈希冻结于 `_专题_技能合集策划/S1标注锚点存量清单.json`（schema `s1-anchor-baseline v1`，字节一变即悬空 FAIL；修净属内容面另登 PL-104，宜与下一次技能件内容编辑批合并并触发冻结基准 v11 升版）；空 units＝合法全净态非死分支）、CG-20260929-005 起 248 **不变**（B 级，闭 PL-104——检查 11 钉出的 16 行无锚存量修净：storage 两件 11 行**档位改判** S1→S2（措辞本体不动，判据＝该件 §10 现读 S2 含设计文件侧要求，且 PL-104 原写「补标准号族」在承载来源位与第十一门禁 R5 正面冲突故据实不采）、ceiling 2 行按**档值来源分档**改指索引既有核验记录行（E1→§二 序号 10 GB 18580-2025 备注列；E0→主表序号 32 GB/T 39600-2021 表1「限值已原文核验 2026-08-06」；两条均带 2026-08-06 在册日期，故不新增 `A_VERIFY_DATE`）、bathroom／wall-surface／mep 各 1 行按语境改判；`_专题_技能合集策划/S1标注锚点存量清单.json` 由 16 单元带平至 **0**（现读 bare 行 0、`--check` 对账一致），故检查 11 第三支 [OK] 由「存量清单对账 16 行」转「存量清单为空且现读零无锚行」这一**合法全净态支**，**通过数与警告数均不变＝本批既不加 [OK] 也不制造新 WARN**；检查 10 侧同批重登 23 条判定单元（技能件侧 16＝A 2／D 2／N 12＋登记面 7＝N），records 9054→9064／baseline 3649→3644；本批改技能件正文⇒冻结基准行为面非空，v11 升版另批承接＝**PL-105**，另据实新登 **PL-106**（MEP 同一断言跨载体档位不一致，检查 11 结构面抓不到）），当前本体版本 v1.18.0】**总评 PASS，通过 **248** / 失败 0 / 警告 **26**，exit 0。**现读更新（CG-20261001-005，A 级改判批）**＝警告 26→**25**＝AC `reference.md` 四行由「判 A 而不带条文级核验日期」转 D 类，`A_VERIFY_DATE` 逐单元 WARN 减一条（该数仍随批浮动，不钉）；通过数 248 不变＝本批不新增检查项、零改判据与门禁件；本批改 7 件技能件正文与索引本体两副本⇒行为面非空⇒冻结基准 v12→v13 升版另批承接。**警告 1→26 系 CG-20260929-002（B 级，PL-099 批）**——该批把 AC（`prefab-acceptance-checklist-generator`）面 60 行「只记标准号即挂 S1」收窄为限定词括注形，其 25 条 A 类判定单元据实**不带** `verified_on`（标准号轴成立而条文级逐字面未取得；`verified_on` 属 schema 可选字段，回填臆测日期＝伪造「与官方文本逐字一致」），故产出 25 条 `A_VERIFY_DATE` **逐单元** WARN（`reference.md` 23＋`SKILL.md` 2）＋检查 3「36 条无有效核验日期」聚合 1 条＝**26、无第三类**；承接＝**PL-102**（逐条经 `scanned-standard-clause-verify` 取得逐字面后补 `verified_on`，WARN 随补登逐条清零；GB 50243-2016／GB/T 3324-2017 两族须后于 **PL-100** 三标准入索引）。此前基线行「警告 1（构成＝检查 3 的 36 条无有效核验日期聚合 1 条，`A_VERIFY_DATE` 已随 CG-20260927-006 清零）」系 CG-20260927-006 至 CG-20260929-001 期间的**时点快照**，按快照纪律留档不改写、以本句为现读；**26 亦不得钉死**（随 PL-102 补登逐条下降，且随后续批次 A 类判定单元增减浮动）。**硬判据是「失败 0 + exit 0」**；通过/警告计数随本体内容浮动，不得按固定数字判回归。**236→237 系 v1.14.0 在检查 7 内新增一条「§九 双口径取数一致」断言（CG-20260921-005，B 级，承接 PL-036）产出 1 条 [OK]**（本批 clean 态实测两口径各 116 个 CG 编号且相等即绿；键闭合走逐行口径（`collect_cg_log_ids` 取首列）、任何表级消费方走 `iter_md_tables`，两口径一旦不等即说明 §九 表块内起了断块件（表块内空行或跨物理行断行）且**表级侧静默漏行**，故本断言 FAIL 计 `fail_count`；口径＝判两口径集合相等，不判「§九 内不得有空行」这一绝对规范（表块外空行与台账前后空行不报红）；全额归因本条，非检测口径放松）**234→236 系 v1.13.0 新增检查 9「技能件跨层内容一致性」（CG-20260920-005，B 级，承接母项 PL-010）产出 2 条 [OK]**（本批 clean 态实测该小节 [OK] 行恰为 2＝D 比对集自洽＋运行时↔镜像 纳入判据字节全等，全额归因，非口径放松；覆盖面＝`SKILL_DIRS` 15 技能目录内容件，纳入判据现测 62 件＝运行时∪镜像 120 件中经 `git check-ignore` 排除 gitignored 58 件后余量，三态读数漂移 0／单层缺失 0；排除面取 gitignore 结构判据、零文件白名单，哈希 `sha256(原始字节)` 不做 eol 归一、沿检查 6 口径；本检查只判 `SKILL_DIRS` 内技能件运行时↔镜像字节全等，声明表治理文件（设立时 7 件）的跨层一致仍由检查 6 承担。**225→234 系 v1.12.0 新增检查 8「技能侧索引序号引用一致性」（CG-20260920-004，B 级，承接 PL-029）产出 9 条 [OK]**（本批 clean 态实测该小节 [OK] 行恰为 9＝真值表四前置 A1—A4＋索引派生表键一致 B0＋取数面自洽 D1＋三载体各一条 ①②③，全额归因，非口径放松；判定单元现测 97＝① 含表行内 ①′ 38／② 35／③ 24，三载体各自真漂 0，NO-ANCHOR 10 值／4 位置，EXEMPT E3 15＋E2 11＋E6 1（**E3 由 4 增至 15 系 CG-20261002-007 随批订正**：本批在 `prefab-storage-system/reference.md` L244／L293 把 11 处**标准内部表行号**逐枚补「表3」限定，动因＝原写裸「序号 N」被载体①读成索引序号引用而**当场真漂 7 处判红**（该批首跑实测），补限定后真漂归零；增量逐枚＝L244 的 18／23／25／36／45／43／30 七枚＋L293 的 35／38／39／30 四枚，全部属该版表内行号而非索引序号，系豁免的正确落点而非口径放松；判据与用例数 26 零改）；豁免全取结构判据、零白名单、零通用编号正则、不判序号单调性）。（v1.10.0→v1.11.0 系 CG-20260919-005 把 `md_cells` 切格改为转义感知，对通过数 **no-op**——225 仍归属其设立者 CG-20260919-001，本批不增检查项故不改通过数。194→196 系 CG-20260918-001 将 SRE 静态体检块的 T-A1 名称差分 13 处清零（转「SRE 硬编码名称与索引主表名称零冲突」OK）与 T-A5Ⅱ 升档标注归入同块 [OK]，两条原 WARN 信号转 PASS，不是检测口径放松。**196→210 系 v1.9.0 新增检查 7「遗留存活性台账」（CG-20260918-005，B 级）产出 14 条 [OK]**（实测该节 OK 行恰为 14，全额归因，非口径放松）。**210→225 系 v1.10.0 检查 6 增列第三条断言 (C)「git 可见副本 ↔ `HEAD` 前像行尾形态一致」（CG-20260919-001，B 级，承接 PL-020）产出 15 条 [OK]**（本批 clean 态实测 (C) 比对 15 项＝声明表 7 件治理文件在 L1＋`技能仓备份/` 两层的 git 可见副本数，全额归因，非口径放松）。检查 7 读 §十一 的 `PL-nnn` 台账表：**结构性违法＝FAIL 档并计 `fail_count`**（台账表或必需 7 列缺失、行列数与表头不符、编号非法或重复、状态出三值枚举、日期不可解析、待处置行缺到期日、登记日期晚于到期日、已闭合／已裁定不做行缺处置依据、来源登记为空、来源与处置列引用的 CG 编号不在 §九 内＝键闭合）——同机字面比对、无外部真值依赖，故与检查 6 同理首轮即 FAIL 档；**单纯到期＝聚合一条 WARN＋逐条 INFO，不计 `fail_count`**（沿检查 3／CG-20260917-009「不因单纯到期增加失败」口径），另有 30 天内到期预警 INFO 与待处置行 TTL 超 180 天上限 WARN。**键闭合真值源＝「§九 逐行取第一列 CG 编号」，不用表级解析**：CG-20260918-005 设立检查 7 时 §九 有一历史行跨物理行断行，`iter_md_tables` 在断点处把其后各行判为「无表头块」整块丢弃（登记时点实测表级读法只见 **72** 个、止于 `CG-20260916-008`，逐行读法 **88** 个），故任何以表级解析消费 §九 的检查都会**静默漏行**；该断行登记为 **PL-016** 并自设前置「修历史行字节须另批裁定」。**该前置由 CG-20260919-002 承接**（同批另订正 PL-019 的根因与定性），订正后实测表级可见 **95** 个、与逐行读法 **95** 归一——两口径自该批起一致；逐行取数口径与合成文本守卫 `test_wrapped_history_row_does_not_hide_later_ids`（不依赖真实文件仍断行）作为**免疫性设计**保留。常量 `LEDGER_TTL_DEFAULT=90`／`LEDGER_TTL_EVENT=180`／`LEDGER_SOON_DAYS=30` 与 §11.1 散文字面由测试**双向守卫**同值（散文改了常量没改即复红）。**反向覆盖未机算**：只做「台账 → §九」方向键闭合，不反查 CG 行散文声明的遗留（散文字面无稳定形态，正则会产假信号），故「新遗留漏登记进台账」仍靠人工，§11.3 第 3 条已显式披露。警告一处：仅剩检查 3 的无有效核验日期聚合 WARN（CG-20260918-009 向 §二 官方核验记录表补登序号 68 后由 41→40，CG-20260918-010 向 §二 推荐性标准抽查核验记录表补登序号 15／18 两行后再降为 38，CG-20260927-006 向该表补登序号 30 一行后降为 **36**，档内分布＝强制性国标 3／其余 33）；不计 `fail_count`，不因单纯到期增加 WARN。**T-A1 名称差分已清零（CG-20260918-001），并自 v1.8.0 起升 FAIL 档（CG-20260918-002，§6.3.3 ③(b) 代码级半步收口）**：差分非空即 FAIL 计 `fail_count`，clean 态读数不变；反向注入自证（`--runtime-dir` 临时副本注入 1 名称值）实测 T-A1 FAIL＋exit 1、检查 6 注入态保持 [OK]；其余信号 T-A2—T-A5 仍首轮 WARN，升档时点各自依其前置。**检查 3 当前口径以索引 §1.1A 为准**：按表头分类、列名读取核验日期与状态；日期到期按 92／183 天严格大于现算，显式「到期需复核」任务也须披露，二者报 INFO；无记录／无效或未来日期仍报依据链未确认 WARN，**缺日期不等于已超期或标准失效**。并列编号只按全角 `／` 切分，半角 `/` 属编号本体。运行时 `sre_reasoner.py` v1.7 的 `_verification_confirmed()` 将可复用的既有依据与维护提醒分离：已确认者仅因到期不降级，提醒写入 applicability；未确认者仍 inferred＋§1.1A degradation，补真实依据或接受降级为等价出口。已废止另有 inferred＋TA-3 提示，GB 50118 既有部分替代警告保持；自动替代／暂停能力边界见 rules §4.3。**IC-10 item 字段、枚举与适用集成员不变**，deterministic 不代表本轮重新核实最新状态或工程合规放行。v1.6.0 新增**检查 6「治理文件跨层一致性」**，**首轮即 FAIL 档且计入 `fail_count`**（与检查 5 不同：同机字面哈希比对，无外部真值依赖）——三条断言各自指向修复命令：**(A) L1→下游副本全等** 报红 → 由 `prefab-governance-sync` 按 L1→下游带平（抓 -004⑧(b)／-005(a)／-006 那类跨批落后）；**(B) 运行时↔`技能仓备份/` 同层全等** 报红 → 重跑 `程序文件/sync_skill_backup.py`（抓 sync 漏跑/半跑）；**(C) git 可见副本 ↔ `git cat-file HEAD:<path>` 前像的行尾形态一致** 报红 → 该副本工作区行尾五类形态（无行尾分隔符／纯 LF／纯 CRLF／仅 CR 无 LF／混合行尾）相对 HEAD 前像漂了，指向登记面写入脚本的换行翻译（Windows 文本模式 `Path.write_text` 把 `\n` 译作 `\r\n`）。其真值源＝HEAD 对象，在三层互等闭环之外，故抓得到「三层被同一脚本同时写坏、互等仍成立」这一 (A)(B) 结构性盲区（CG-20260918-010 ⑩ 的 `git diff --stat` 831/831 伪差异即该失效模式）。口径四条：比对集是**逐文件声明**的常量表（设立时 7 件，CG-20260923-001 起 8 件；不 glob，故 `*_pre*` 回退件与 `.bak` 不入），基准**不读** `同步说明.md` 的哈希清单（那是被测工具自产，属自指），哈希取 `sha256(原始字节)` 不做 eol 归一（跨机 `core.autocrlf=true` 克隆会把 `技能仓备份/` 层转 CRLF 而**产假红**，本机 autocrlf=false），运行时层不可达时按检查 5 同口径**降级 WARN 且逐项列出被跳过的 (文件@层)**，而 L1／仓内属固定面缺失仍判 FAIL。(C) 三条口径：只比**形态**不比字节数与内容（故真实内容编辑不报红，而行尾形态订正会如实报红、须与所属批的改判同批入库）；HEAD 无该路径对象（新增未提交件，git 的 `does not exist in 'HEAD'` 与 `exists on disk, but not in 'HEAD'` 两式）→ INFO 不判红；git 不可达或仓无提交 → 聚合一条 WARN 且逐项列出被跳过副本，不静默放过。其不覆盖面（运行时两层无 git 面故只经 (A)(B) 字节全等传递、真值源是 HEAD 而非规范值故提交后转绿、只比形态钉不住「行尾应为 LF」这类绝对规范）由 `change-governance.md` §11.3 第 6 条**显式披露而非机算**。`platform-adapter-reference.md` 无 L1 归属，不入 (A) 链、只比同层。覆盖面**只含声明表内的治理文件**（设立时 7 件，CG-20260923-001 起 8 件），技能目录内约 114 件（SKILL.md／reference.md／examples.md／scripts）与机器本地 `sre_regression_report.json` 不经本检查（F-02 遗留）。**自 v1.12.0 起须区分两件事**：其中「技能侧对索引序号／编号的引用一致性」这一子面改由**检查 8** 承担（覆盖面＝15 技能目录活 `.md` 现测 47 件，CG-20260920-004 承接 PL-029）；但**检查 6 的覆盖面并未因此扩大**——它仍只比声明表治理文件（现 8 件），其余约 114 件与机器本地产物（`sre_regression_report.json`）经不漏检地**不经**检查 6，故检查 8 单凭自身不闭合 PL-010（见 `change-governance.md` §11.3 第 7 条）。**自 v1.13.0 起「各件跨层内容一致」这一剩余面改由新增检查 9「技能件跨层内容一致性」（运行时 ↔ `技能仓备份/` 镜像字节全等，CG-20260920-005）承担**：覆盖面＝`SKILL_DIRS` 15 技能目录内容件、纳入判据现测 62 件，机器本地产物经 `git check-ignore` 结构判据显式排除（不建文件白名单），故 **PL-010 由 CG-20260920-005 转已闭合**（其不覆盖面＝运行时两层无独立 git 面、只经字节全等传递，见 §11.3 第 8 条）。声明集与 `sync_skill_backup.py` 的 `ROOT_FILES`＋`SHARED_FILES` 做 AST 现读**双向互查**：声明而不属脚本 → FAIL「声明表越界」；属脚本而未声明 → FAIL「漏配」。**现读更新（CG-20261002-001，B 级 PL-112 批）**＝本体 v1.18.0→**v1.19.0**，新增**检查 12「治理文件头部链现读性」**（FAIL 档计 `fail_count`，闭 PL-112）产出 **4 条 [OK]**＝两件治理文件（`standards-index.md`／`change-governance.md`）各两条「头部链批次 ∈ §九 编号集（键闭合，真值源沿用 `collect_cg_log_ids`）」＋「头部链批次 == 该件自身变更日志末行批次」，不等即按 CG 编号「日期＋序数码」字典序判向、两支文案互异（「链滞后＝改了本体未推链」／「链预推＝推了链未登记末行」）；取数口径三支各取结构判据（链＝锚后首个 CG，链行正文会引用历批编号故全行首个不成立；末行＝治理规则首格／索引末格说明列，后者属**语义口径＋防御**——索引 §八 无 CG 列，批次归属在说明列，而**现读全表 37 条数据行「行内首个」与「说明列首个」两口径零分歧**，故不得写成「真实件已现分歧」，该口径的牙在第十七门禁的合成控制例 C2）；末行逐行切块**不经 `iter_md_tables`**（沿检查 7 免疫性口径），小节内表块数 != 1 报「无从判定末行归属」而非猜取某块；存量面＝开工现读零滞后（索引两侧 CG-20261001-005、治理规则两侧 CG-20261001-006）故**不建存量清单、不冻结历史滞后**（对照检查 11 因 16 行存量须配清单之差别，沿 PL-112 处置列 ③）；**通过数 248→252 全额归因本检查、非检测口径放松，警告 25 不变**（本批零改判定单元依据面）。本批零改技能件正文与索引本体⇒不触发冻结基准 v14，v13 不升版。**现读更新（CG-20261002-002，B 级 PL-017 状态字段订正＋检查 12 选行定界批）**＝本体 v1.19.0→**v1.19.1**；**通过 252／警告 25 均不变**＝该批不加 [OK] 也不制造新 WARN，只撤一枚假红（判据面一支＝`header_chain_line_no` 选行由裸子串命中改判「锚在行首、允许引用块前缀」，新增 `HEADER_CHAIN_LINE_RE`；`header_chain_token` 的「锚后首个 CG」行内取数口径逐字未动；FAIL 文案改写为「头部链锚（行首形制）」并补「正文引用锚字面不计入命中」）；动因＝本批把 CG-20261002-001 的链行降级为历史快照后，主门禁与第十七门禁同时报「头部链锚命中 2 行」，第二枚命中系该链行**正文内把锚字面写在反引号里作说明**，即检查 12 上线次日被一次合法的链推进触发假红，根因属《取锚须显式定界符》失效族；不放宽自证＝真实 cgmd 命中由改前 [9, 11] 收为改后 [9]，而两枚行首形制仍计 2 枚（复红面不缩）。同批登记面＝台账 PL-017 状态列由「待处置」转「已闭合」（CG-20260930-003 的 §九 行自述写面含「台账状态字段」而实际未写，属「已登记≠已入库」同族；发现面＝**面甲**（§11.2 行内「状态列待处置 × 处置列完成式声称」），凭据件 `程序文件/脚本/cg20261002_002_closure_claim_scan.py` 对开工前基线 `454f8c5` 实测真残余 1 枚＝PL-017／exit 1、对本批终态真残余 0／exit 0；**面乙**（§九 声称闭合 × 状态列跨节比对，原始读数 17 处＝14 处粗体形制＋3 处否定式或新登）对同一基线实测真残余 0、抓不到 PL-017，初稿以面乙为发现面的表述由该凭据件否证后据实改判（批内翻案留痕），「除 PL-017 外零同族残留」的结论改由面甲独立支持）、新登 **PL-119**（「处置列声称本行已闭合而状态列仍待处置」这一**两列之间**的语义互斥无机算承担者——检查 7 判据均为单列内或跨件键闭合型；其 ① 做法指定采面甲形制，并带三支排除且各有活口实例＝否定式 PL-090／**被引字面** PL-119 自身（若不排除则该判据会把 PL-119 自己判成残余＝自指假信号活例）／该批新登 PL-046）；载体附带订正＝校验器 docstring 一处反斜杠竖线组合改为同件其余五处自 v1.11.0 起即用的双反斜杠形，消 Python 3.14 的 invalid escape sequence `SyntaxWarning`（可证 no-op＝改前改后 `ast.get_docstring()` 逐字节全等，sha 前 16 均 `5515cc01ab521597`；全仓 `程序文件/**/*.py` compile 复扫含 SyntaxWarning 文件数 1→0）。残量登记 records 9202／baseline 3583（目标 6／摘 3／新登 3 全 N，末次 `--dry` 幂等）。本批零改技能件正文与索引本体⇒不触发冻结基准 v14，v13 不升版。**现读更新（CG-20261002-003，B 级 JC/T 60036-2026 正式稿定性入库＋取源通道常设化批）**＝本体 v1.19.1 判据零改⇒**通过 252／失败 0／警告 25 三项全部不变**（本批不加 [OK] 也不制造新 WARN）；残量登记 records 9202→**9222**／baseline 3583 不变（末次实跑＝目标 31／失效摘除 15／新登 16＝A 4＋N 12，末次 `--dry` 幂等＝摘 0／登 0；本批三处批内订正各使单元 id 再漂移，故该读数只作终态、不作过程累加）。写面＝索引本体九处（§三 主表新增序号 77／§三 重要说明一条／§二 分层表一行／推荐性标准抽查核验记录一行／§九 跟踪行判定语改写＋定性补记／§八 变更日志一行／头部链／收录总数 76→77 与推荐性 25→26／§10.1 计数）＋`standards-reasoning-rules.md` 计数一处＋`文档/项目策划方案索引.md` 计数一处（**第四枚手写计数载体，登记时点曾漏推，由检查 4「跨文件计数漂移反查」当场抓出**）＋本文件新增上节。**本批改索引本体⇒行为面非空，冻结基准 v13→v14 升版另批承接＝PL-121**。**批内自身缺陷六处如实登记（其中④⑤ 由 B 级线内独立复核否证本批首述后当日改，⑥ 由收尾复验现读发现，全段见该批执行记录 §五 与 §八）**＝① 首版 §三 序号 77 状态列外层括注开了没闭，被 SRE 门禁 T-B4「状态单元拆分有损」判红——根因在载体不在判据，补 `）` 后以 `sre_reasoner._split_status` 实测回串无损复绿；② 首版核验记录行与两枚 A 类单元的「核验日期／verified_on」填成本批裁定日 2026-10-02，会被读作当日重跑过官方核验，据实改回官方取件日 **2026-09-27**（公告附件1 序号 15 行文本层逐字取得日）并在行内写明该区分；③ 登记面写入脚本 `Doc.undo()` 原就地改 `self.lines`，使「逆操作逐字节复原」自证跑完后把改后态改回原样＝首次 `--dry` 打印「改前 sha == 改后 sha」的**恒真空跑**，改为副本上复原后该自证才可失败；④ 八处新写面把可引用面写成「正文第 1—7 章 121 条」，与本批自己在 §三 重要说明与 PL-120 所写「摘录 128」同批互斥——现算摘录件编号行＝**128 枚、去重 128**（121 系 CG-20260927-008 旧读数、已被 CG-20260928-004 复跑口径取代），八处当日改为 128，历史行内「121 条中 115 条」按快照纪律不改写；⑤ 批凭据脚本 `cg20261002_003_index_patch.py` 常量未随批内订正回流，以 `git show HEAD:` 三件原像重放实测索引件与工作树差 3 行 253 B（rules／cgmd 两件全等）＝「脚本＝本批写面可复算凭据」在索引件上不成立，四处订正回流后重放实测**三件全部字节全等、背离 0**；⑥ §五 标题「（三处）」未与第 4／5 两条补登同批改＝同一载体内「枚举计数」与「被枚举项」不等（与本批所闭 PL-017「状态字段滞后」同族，判据＝枚举计数与被枚举项须同批改、收尾复验须现读两侧），收尾登记时发现、当日订正为「六处」并同批改本行与 `CHANGELOG.md` 该段。**现读更新（CG-20261002-006，B 级 GB 50303-2015 第12.2.3条逐字面核验＋MEP「强弱电间距」错引新登批）**＝本体判据零改⇒**通过 252／失败 0／警告 25 三项全部不变**（登记面批，不加 [OK] 也不制造新 WARN）；残量登记 records 9229→**9233**／baseline 3583 不变（目标 8／失效摘除 4／新登 8 全 N，末次 `--dry` 幂等＝摘 0／登 0）；本批零改技能件正文与索引本体⇒不触发冻结基准 v15，v14 不升版。**批凭据脚本 `cg20261002_006_governance_patch.py` 后置自证一支的取数口径缺陷当日订正三处**（发现面＝本批开工时对 `--dry` 的一手实跑，首跑即被停）＝① `post_check` 把整篇字符串传给 `collect_cg_log_ids(lines: List[str])`，而该函数按行取首列，传 str 时对单个字符判 `startswith("|")` 全落空 ⇒ 恒得空集，实测同一枚 cgmd 传 str 得 **0** 枚、传行列表得 **193** 枚，故该支对任何真实件**恒判红**（假红形，非假绿，且与 docstring 声称的「双口径集合相等」对不上而暴露）；② 真正不可暴露的隐患在同段 `try/except`——若取数件改签名而抛异常，则打印一句提示后把 `rowwise` 置 `None` 并**跳过该支**，后置断言即静默失效＝恒真空跑，故撤除该静默跳过支（异常自然上抛）并另加一条「取数为空集即判恒真空跑」的显式复红；③ `chain = text.index(NEW_LABEL)` 靠未捕获 `ValueError` 隐式失败（退出码非零但无文案），改为 `raise SystemExit('后置失败：头部链未见本批新行')`。六态内存注入自证（T0 改后文本 PASS／T1 抽本批 §九 行复红／T2 抽 PL-123 行复红／T3 本批行多切一格复红／T4 撤头部链新行复红／**C0 控制例＝未变换的改前原像复红**，证该支有牙）全落 `post_check`，见该批执行记录 §三。同批订正该件 docstring：原称后置含「双口径 CG 编号集合相等」与「链批次 == §九 末行批次」两支而实际未实现，改为本件实做四支、其余两支交还常驻检查 12（不重复实现）。**现读更新（CG-20261002-007，A 级技能件正文批＝C 批）**＝本体判据零改⇒**通过 252／失败 0／警告 25 三项全部不变**（本批不新增检查项、不改判据，A 判单元仅新增一枚且带 `verified_on`，故 `A_VERIFY_DATE` 不增）；残量登记 records 9233→**9244**／baseline 3583→**3578**（目标 32＝失效摘除 21／新登 32，**A 1／D 18／N 13**，其中技能件侧 23＝A 1／D 18／N 4、登记面 cgmd 侧 9＝全 N，末次 `--dry` 幂等＝摘 0／登 0）；**本批改 8 件技能件正文⇒行为面非空⇒冻结基准 v14→v15 升版另批承接＝PL-124（第十一次机械触发）**。写面＝`prefab-mep-integration-system` 四件（SKILL／reference／examples／product-solutions）＋`prefab-storage-system` 三件（SKILL／reference／examples）＋`prefab-acceptance-checklist-generator/reference.md`，共 **27 枚替换**，批凭据 `程序文件/脚本/cg20261002_007_skilltext_patch.py`，**以 `git show HEAD:` 前像重放实测八件逐字节全等、背离 0**；登记面＝cgmd 六处（头部链／§九 本行／PL-106 与 PL-122 状态列转「已闭合」＋PL-124／125／126 三行新登）＋`AGENTS.md` 两处（本行与第八门禁 E3 钉值）＋`CHANGELOG.md`＋执行记录。**丙档措辞的边界（本批立判据）**＝带条文号的一枚（MEP `SKILL.md:39`）系确证错挂故撤条文号，只挂标准号的七枚按「S1 断言无条文定位即不成立」降 S1→S2，**不宣布其引用为假**（凭证件 §四 判为高度疑似未确证）；且一律**不写「无官方承载标准」**——该终局结论凭证件 §七 明写取不到（未检索 JGJ 16／地标／企业工艺标准），措辞落「承载标准未经核，见台账 PL-123」；`examples.md:175` 的确定性合规结论由「不满足规范最小间距」改为「不满足本合集最小间距控制值」并显式禁止表述为满足／不满足国家规范条文。**批内自身缺陷四处当日收口**＝(甲) 首版残量登记件把 MEP `SKILL.md:39` 判 D 而不绑来源，被检查 10 当场 `MISSING_SOURCE` 判红——根因＝误读「清单内存在 `source_spans=None` 的 D 记录」为「D 可不绑来源」，实为那些记录属**恰有一枚来源列的表行**由门禁自动绑定，而 `sources` 判空落在 `for span in spans` 循环**之外**（现读 `validate_governance.py:3384—3386`），故任何非 N 片段均须解析出非空来源；段落形制 `source_cells` 恒 0，须显式给绑定字面（先例＝同件 `:38` 的 A 判以偏移 [50,115] 绑定）；(乙) 首稿把 11 处标准内部表行号写成裸「序号 N」，被检查 8 载体①读成索引序号引用而**真漂 7 处判红**，曾拟放宽载体①，按「判据正确性优先」改为补正文「表3」限定，E3 豁免由 4 增至 15（逐枚归因见第八门禁行）；(丙) 残量登记件 docstring 把分类计数写成「A 1／D 17／N 5」而实跑 A 1／D 18／N 4＝同一载体内枚举计数与被枚举项不等（与本仓既有判据同族，当日订正），后随登记面并入再订正为 32 枚／N 13；(丁) 登记面脚本首稿 T3／T4 **只追加闭合注而未转状态列**，正属本仓 PL-017／PL-119 登记的「处置列声称已闭合 × 状态列仍待处置」族，由该件自立的 post_check 状态列断言当场挡下；同件另有三处逆操作与正操作不对称（链行分隔、降级标签多带一枚括号、新登三行撤除后留空行）与一处 §九 格数误吞（CHAIN_LINE 吸收了 S9_ROW 的第 5／6 格），全部由「逆自证逐字符复原改前文本」这一支挡下——**该支本批实跑复红四次，证其非恒真** |
| `python -B 程序文件/verification_policy_test.py` | **Ran 11 tests**，OK；检查 3 专项：两档严格边界、到期 INFO 且 WARN/PASS 集稳定、显式复查任务、缺记录／异常日期 WARN、实际状态漂移 FAIL。**6→11 系 CG-20260927-001～005 批新增五例索引状态表守卫**（同 sid 核验记录行日期回退 FAIL／日期前移 PASS、状态分层表同 sid 多行 FAIL、分层表档位出枚举 FAIL、真实仓三表现读全绿），本行旧读数 `Ran 6` 属该批 AGENTS.md 登记滞后，由 CG-20260927-008 附带收口（C 级载体文字订正，判据与用例零改）。改核验维护规则时与其余门禁一并运行。CG-20260918-010 起「到期 INFO＋全局 WARN 集稳定」那组的钟点由 `latest_verify_date()` **从索引核验记录表现读**（取最新核验日期），不再是硬编码日——硬编码钟点会把该组的跨时点全局集比对隐式耦合到索引最新日期，向核验表补录较新日期即复红（属测试件缺陷，非数据错误）。 |
| `python -B 程序文件/ace_regression_test.py` | **Ran 176 tests，OK**，exit 0。90→105 系 CG-20260923-003 新增 `TestFloorF01Boundary`（FL-F01 收窄守卫，15 项；该批执行记录实读 105，本行旧读数 90 属登记滞后）；105→116 系 CG-20260924-004 新增 `TestFloorF02F03Boundary`（11 项：FL-F02/F03 参数表待定态字面、汇总表「ΔLw 估算」「L'nT,w 达标可行性」禁列名回流、撤回短语计数、选型行口径；clean 态 OK、改前原像重注入 failures=6／exit 1 自证非恒真，见 `记录/2026-09-24_CG-20260924-004_组4FL构造与预测整改执行记录.md` §三）；**116→126 系 CG-20260924-005 新增 `TestM2CoincidenceDocConsistency`**（10 项：ACE＋PW 两件吻合频率文档一致性——fc 范围表 10 行 ±1Hz 包络复算、搭配表 4 行标称∈域∈包络且判定-Δfc 自洽、绝对结论收窄非单调三点、修正因子说明「3-8%」须消失且 70%/29.8%/2961→883/2.6% 须在场、Δfc 非单调；5 常态＋4 负向注入＋1 控制例，clean 态 OK、`ACE_SKILL_DIR`＋`PW_SKILL_DIR` 指向改前原像复注入 failures=6／exit 1 自证非恒真，见 `记录/2026-09-24_CG-20260924-005_组5M2吻合频率整改执行记录.md` §三）；**126→135 系 CG-20260924-007 新增 `TestM6GapBoundary`**（9 项：M6 缝隙整改守卫——ACE 末档边界行「> 1.5%／> 12 dB」在场、PW 封顶式「−10·lg(S_缝)」随面积比变化非定值 20 dB 在场、PW 分层表四档复算链 0.4／3.0／10.4／12.0 dB 吻合、两件单值代入口径声明在场；负向注入＝ACE 旧边界回流、PW 旧「定值 20 dB」封顶回流、PW 档值漂移、口径声明撤除各复红；1 良性控制例证无关编辑不误伤；clean 态 OK、`ACE_SKILL_DIR`＋`PW_SKILL_DIR` 指向改前原像复注入 failures=6／exit 1 自证非恒真，见 `记录/2026-09-24_CG-20260924-007_组7M6缝隙整改执行记录.md` §三）；**135→147 系 CG-20260925-001 新增 `TestM3M4ModelApplicability`**（12 项：组6 M3/M4 模型适用性守卫（PL-066）——M3 约化质量恒等式对任意正质量比精确成立（测试内复算 r=0.1—10 偏差恒 0）＋旧「5-13% 提示区间」撤回锚、5-13% 量级归因近对称近似式 1200/√(d×(m₁+m₂))（r=2 约 −5.7%、r=3 约 −13% 复算）＋PW :318 控制锚、模型外假设五项在场、双空腔三质量-两弹簧耦合判据（对称例 69.1/129.2 Hz 测试内解析复算、恒有一模态 ω²=k/m、两腔分别算 103.6 Hz 反例）＋叠加算法与 PW「额外提升约 5-10 dB」数值出口撤回语境计数守卫；5 常态＋2 数值性质＋4 负向注入＋1 控制例，clean 态 OK、`ACE_SKILL_DIR`＋`PW_SKILL_DIR` 指向改前原像复注入 failures=9／exit 1 且全落新守卫组自证非恒真，见 `记录/2026-09-25_CG-20260925-001_组6M3M4模型适用性整改执行记录.md` §三）；**147→159 系 CG-20260925-002 新增 `TestM7CalibrationExtrapolation`**（12 项：组8 M7 校准外推守卫（PL-067）——Step 2 恒升序控制锚在场、Step 3 位名式「输出区间 [ΔR_low, ΔR_high]」复红＋端点升序声明／中值 −9.03 复算锚、Step 5 下界／上界组装复红、交叉核对四类根因核查锚＋「优先报 M7」受计数守卫（reference.md 恒 0／SKILL.md 恒 1 且唯一命中须在「不得直接」否定语境）、「M7 应优先」零残留、SKILL 恒升序声明撤除复红；r 三态排序（0.5 位名序降序／2 一致／1 退化）与 :431 印值 [−3.0,−1.5] 数值性质独立复算；4 负向注入＋1 良性控制例，clean 态 OK、`ACE_SKILL_DIR` 指向改前原像复注入 failures=10／exit 1 且全落新守卫组，见 `记录/2026-09-25_CG-20260925-002_组8M7校准外推整改执行记录.md` §三）；**159→176 系 CG-20260925-003 新增 `TestM5M7CaliberAndEvidence`**（17 项：组9 参数与证据守卫（PL-068）——R1 m' 排除式跨件字面一致（ACE 口径条↔FL 参数表 m' 行↔FL SKILL 输入参数行）、R2 三个 ΔLw／两个 f₀ 误代后果按文档参数独立复算比对（容差 0.05 dB／1%）、R3 撤回锚＋C 灵敏度复算 2.00／4.00 dB、R4 Σ 端点配对定义与「甲宽于乙」、R5 算例印值复算（[−3.0,−1.5]／[48.0,49.5]／[49.0,51.5]）、R6 演示身份与派生读数承继句、R7 精度面（PL-055／PL-053）字面未被本批改写、R8 组8 判据经 `assert_step5_compatible_with_group8` 兼容复验；9 常态（含 3 条复算锚）＋2 纯数值性质＋5 负向注入＋1 良性控制例，clean 态 OK、`ACE_SKILL_DIR`＋`FL_SKILL_DIR` 指向改前原像复注入 failures=14／exit 1（13 条落本批新组＋1 条组8 注入源锚点在原像态「注入未命中」）自证非恒真，见 `记录/2026-09-25_CG-20260925-003_组9参数与证据整改执行记录.md` §三）。ACE 原有用例与参考函数逐字不变。 |
| `python -B ~/.qoder/skills/prefab-standards-reviewer/sre_regression_test.py` | **【活基线，更新至 CG-20260926-010】Ran 70 tests，`OK`**（既无 expected failures 亦无 unexpected successes），exit 0，缺口信号 0 条、跨轮指纹 `4f53cda18c2baa0c`（连击计数属机器本地状态，不钉数字）；IC-10 v1.9.0（零新字段、零新枚举）、reasoner v1.8、rules v1.2.6、测试模块 v1.10。**66→70 系 CG-20260926-010 新增 `TestNameSotPriority`（4 项，闭 PL-002）**：名称取数优先序＝索引主表 > 登记表 > 模块级硬编码预置——`sre_reasoner.py` 名称支路由 `STANDARD_NAMES.setdefault(std_no, row[i_name])` 改为按表型分桶（:390 `name_buckets`／:438 入桶）后于函数末 `update`（:450-451，登记表先、主表后故主表胜），**预置块（:231 起 AnnAssign 字面量 39 键）、状态双桶支路、:440 适用地区支路、核验台账支路逐字未动**，索引不可达早退保留故兜底层不丢。四例＝主表名覆盖预置／登记表不覆盖主表／**登记表同样覆盖预置**（不留同族遮蔽面，系线内 B 级复核唯一非阻断建议的同批采纳）／删主表行回落预置；注入取 `tempfile` 合成索引＋临时替换 `sre_reasoner.__file__`（宿主无关、自清、不落盘治理件、不改运行时索引），期望值取自注入文本与 AST 现读预置字面量（未把期望值塞进结果），tearDown 回滚 `__file__` 与四字典＋`INDEX_L1_IDS`。「登记表覆盖预置」一例因真实数据取不出该面（预置 39 键全在主表内），以合成预置键 `ZZ 0000-0000` 注入后走真实登记表路径模拟，并在例内自证不与两表任何真实编号相撞。clean 态 OK；改前原像复注入实测 **Ran 4／failures=2／exit 1** 且两条全落本批新组（非恒真）。**本批属结构性加固、当前为 no-op**：开工前探针实测＝预置 39 键全在主表内、名称分歧 0、载入态（84 键）与主表差 0、「仅登记表收录的预置键」0、遮蔽现态 0，与 T-A1 名称差分清零（CG-20260918-001）互证，故不得读作「曾存在错名已被纠正」；T-A1 FAIL 档自此由唯一发现面退为事后兜底。59→66 为维护／依据解耦守卫：GB 55037 第 92／93 天保持完整 item 和确定性、响应内提醒、显式复查任务、缺记录／未确认／异常日期保护，以及未知／已废止／GB 50118 部分替代的独立保护；原分档边界、矩阵成员、契约及防空跑断言继续执行。已确认的确定性对称面排除未知和已废止，废止由专用断言验证。独立验收与故障注入见 CHANGELOG v1.12.15。下方为 CG-20260916-009 历史快照，其版本与计数不作当前基线。 ‖历史快照（-009 时代，不改写）‖ Ran 37 tests，`OK`（**既无 expected failures 亦无 unexpected successes**），exit 0，缺口信号 0 条、跨轮指纹 `4f53cda18c2baa0c`。全文 `^\s*@unittest\.expectedFailure` 现 **0 处**——行为组 T-B1—T-B7 七项已全部转为正向常态断言（T-B1／T-B7 随 CG-20260916-003、T-B2 全条与 T-B4 含 `conversion` 半条随 **CG-20260916-004**、T-B3／T-B5／T-B6 随 **CG-20260916-005** 摘档）。用例数 30→32 系 -005 按 §6.2「摘档须升级为有约束力断言」新增两条收紧用例：`test_TB5_empty_family_negative_path`（合成注入无映射域，因矩阵正例在数据面修净后会恒真空跑）与 `test_TB6_national_and_local_coexist`（逐地点正向期望集，期望值从 `DOMAINS` 现读）。**32→37 随 -009（A 级）**：`test_standard_item_schema` 的 `角色` 断言从「只跑 `reason("住宅","分户墙")` 一组」扩为全 34 组激活对 × 7 地点矩阵遍历（带 `visited`／`checked` 漏组与空跑判据），合法值域从 `~/.qoder/skills/shared/interface-contracts.md` 的 IC-10 `角色` 枚举**现读**；另新增 5 例（图集号命中、索引 §二 编号不降级含 `ZZ 9999-1999` 负向半条、GB 18580-2025 落 `mandatory_check`、08J931 落 `construction_guide`、M4 兜底合成注入），并按「修净后的守卫须仍能失败」做反向注入自证（逐项回退复红 1／2／2、三项合并 6）。测试侧共享 helper `_table()` 已修：数据行必须在首个非表格行截断，否则同小节第二张表（索引 §二 的「官方核验记录」）会被并入首表、其表头单元被当成编号（-009 F-02）。**运行时 `sre_reasoner.py` 版本头自本批起为 v1.3**（-005 遗留 (c) 闭合）。T-B2／T-B4 的前置仍是 IC-10 `时间状态` 枚举由四值扩为与 IC-07 同源的六值（契约 **v1.8.0**）并新增可选 `状态注记`，二者判据现从 `~/.qoder/skills/shared/interface-contracts.md` **现读枚举**，故该契约文件不得落后于运行时消费端。实跑产物 `sre_regression_report.json`（已被 `.gitignore` 收录，机器本地）。历史：7 例挂档见 CG-20260916-002、5 例见 -003、3 例见 -004 |
| `python -B ~/.qoder/skills/prefab-standards-reviewer/sr_ic07_compliance_test.py` | Ran 20 tests，OK。**计数硬编码**（`SR_REDLINE_COUNT`、`REGISTRY_TOTAL_COUNT`），红线注册类变更须回扫 |
| `python -B 程序文件/pending_ledger_test.py` | **【第六门禁，CG-20260918-005 新增】Ran 64 tests，OK**，exit 0。检查 7 专项：负向注入以**合成文本直调** `check_pending_ledger`，不落盘、不改任何治理件；覆盖 19 类结构违法**逐类**注入自证（缺节／缺表／缺表头／缺列、编号形制与非 `PL` 前缀、编号重复、状态出枚举、登记日期与到期日不可解析、非法历法日 `2026-02-30`、待处置缺到期日、登记晚于到期、已闭合／已裁定不做缺依据、来源登记为空、来源与依据列悬空 CG 编号、行列数与表头不符、§九 无真值源）、TTL 边界（到期日＝今天不超期／前一日超期／30 天预警窗口内外各一例）、**到期只 WARN 不计 `fail_count`**、已闭合行过期不计、真实治理件 clean 态断言（`test_real_repo_ledger_is_clean`）、常量↔§11.1 散文字面同值双守卫、PL-016 断行免疫守卫、§九 外 CG 编号不入真值源。**36→39 系 CG-20260919-005（B 级，闭合 PL-021）新增类 `TestEscapeAwareParsing` 三例**：`md_cells` 转义感知的正向断言（含转义竖线的单元解析为 7 列且值内含字面竖线）、台账写转义竖线形不报「行列数」、以及同单元改写未转义裸竖线仍报「行列数」不符 FAIL（证守卫非恒真）。**39→43 系 CG-20260921-005（B 级，闭合 PL-036）新增类 `TestDualCaliberConsistency` 四例**：§九 表块内空行注入复红、跨物理行断行注入复红、clean 态双口径 [OK]、**表块外空行控制例复绿**（证守卫判的是「两口径相等」而非「不得有空行」，非恒真）；同批把 PL-016 断行免疫守卫按新判据改写为「键闭合取数仍见全量＋断块本身复红」两半。**43→57 系 CG-20260927-007（B 级，闭合 PL-093）新增类 `TestLedgerFileEvidence` 十四例**：台账『文件实证』结构锚断言（v1.16.0 检查 7，形制＝`文件实证：<技能目录>/<件名>::`＋反引号定界字面）——正例（tempfile 合成镜像根＋锚命中→[OK]）、零命中／**真前缀在场而全字面不在场**（初版 `[^｜|\s]+` 空白截断缺陷的回归牙，该缺陷由本批复核判 FAIL 后发布前修复）／**锚后说明文字不被吞**／**定界残缺判红**（写锚前缀不写反引号不得静默漏判）／空锚／形制非法／镜像缺件／目录不属 SKILL_DIRS／`_pre` 留痕件拒收九类负向逐类复红、**待处置行带悬空锚不判**与**无锚 clean 不产出该 [OK]**与**镜像根不可达走 WARN 逐项披露**三支控制／降级例、真实仓端到端一例（PL-088 锚在真实 `技能仓备份/prefab-floor-system/reference.md` 命中，默认参数现读 AST 不回落空集）；负向注入全部内存内＋临时目录，不触碰真实镜像。改 TTL 口径、状态枚举、键闭合规则、双口径一致断言、`md_cells` 切格算法或『文件实证』锚判据时须与其余各道门禁一并运行。**57→64 系 CG-20260928-002（B 级，闭 PL-096）新增类 `TestSectionNineColCount` 七例**：§九 列数判据专项——clean 态 [OK]／裸竖线致 7 格复红／缺两格致 4 格复红／转义形控制例（不虚增列数，证非「含竖线即红」）／表头取不到复红／0 数据行复红／真实仓端到端（[OK] 在场且零 FAIL，行数列数不钉值）；同批 `test_wrapped_history_row_does_not_hide_later_ids` 的过滤面由「排除双口径族」扩为「排除双口径族＋行列数族」（断行首物理行只切出 4 格，随新判据复红属预期，键闭合逐行取数仍不漏行）；批注入探针 `程序文件/脚本/cg20260928_002_cols_teeth_probe.py` 对 `1182fdc` 前像实测恰两红落 L529（7 格）／L530（4 格）、工作树零 FAIL＋[OK]、单点还原注入复红三态全 PASS。改 §九 列数判据、`md_cells` 复用口径或防空跑面时与其余各道门禁一并运行。 |
| `python -B 程序文件/cross_layer_eol_test.py` | **【第七门禁，CG-20260919-001 新增】Ran 25 tests，OK**，exit 0。检查 6 (C) 专项：①行尾形态判据本身——五类各一例＋「单行 CRLF 注入」＋「整文件 LF→CRLF」＋**真实内容编辑不得改形态**＋「无行尾分隔符与空文件同类」＋枚举闭守卫；②`git_head_blob` 三态（ok／no_head 认 git 两式字面／git_unavailable 含零提交仓）与真实 HEAD 对象读取；③临时 git 仓端到端——核心例 `test_same_drift_across_layers_still_fails` 复现 CG-20260918-010 ⑩ 事故本体（各副本字节全等故 (A)(B) 结构上必绿、集体偏离 HEAD 时 (C) 仍逐项报红），另含部分漂移只报漂移件、无 HEAD 件只披露不判红、git 不可达走 WARN 分支；④真实仓 clean 态断言（零 FAIL 零 WARN，且**判定项数不钉固定值**＝改按状态判据「被判定数 == 声明副本数 − 按『新增未提交』逐处披露数」，另加「判定数 > 0」下限防空跑。形制数仍钉值并随覆盖面变动：`test_shape_matches_declaration` 设立时 15，CG-20260923-001 把 `data-classification.md` 纳入声明表后为 17）＋防空跑断言（取真实 `change-governance.md` 的 HEAD 前像做 `\n`→`\r\n` 整文件翻转后必红）。临时仓落点由 `程序文件/gate_scratch.py` 单源给出＝工作区 `_整理与清理/<日期>/门禁临时面-cross_layer_eol/`（不落 C 盘、不进运行时技能目录免被 sync 当新增件带进镜像、不给工作区根增常驻目录），跑后自清并回收空日期目录。改行尾判据、五类形态口径或 git 取物三态分类时与其余各道门禁一并运行。 |
| `python -B 程序文件/index_ref_consistency_test.py` | **【第八门禁，CG-20260920-004 新增】Ran 26 tests，OK**，exit 0。检查 8「技能侧索引序号引用一致性」专项：负向注入以**内存内直调** `check_index_ref_consistency`（合成 `FakeFile` 与 `truth_override`／`sync_text_override`），不落盘、不改任何治理件；含真实仓 clean 态基线断言（47 件活 `.md`／判定单元 97＝① 含 ①′ 38／② 35／③ 24／三载体各自真漂 0／NO-ANCHOR 10 值 4 位置／EXEMPT e3 4·e2 11·e6 1，9 条 [OK]）＋**三载体各注入 1 错号复红**（散文／表列／内联）＋**真值表四前置各破坏 1 项复红**（A1 主表空／A2 重号／A3 空号不连续／A4 非哨兵非单射）＋派生表 B0 不符复红＋取数面 D1 两侧不等报「漏配／越界」；**控制例 C1—C6 全通过**证豁免规则不恒真（C1 `(?<!原)` 只免注记形态、C2 E3 由窗口字面非行号驱动、C3 E1 只免词典零命中、C4 成员判据不因锚集扩大恒真、C5 D1 须能失败、C6 F8 多值展开有牙且 E6 刹车不误伤）。改检查 8 判据、载体提取规则、豁免结构判据或声明串展开规则时与其余各道门禁一并运行。 |
| `python -B 程序文件/skill_cross_layer_test.py` | **【第九门禁，CG-20260920-005 新增】Ran 21 tests，OK**，exit 0。检查 9「技能件跨层内容一致性」专项：负向注入以临时目录两镜像层＋内存内 `ignored_override` 直调 `check_skill_cross_layer`（不对临时面建 git 仓、不落治理件、不改运行时技能件）；含真实仓 clean 态断言（[OK] 恰 2 条＝D 自洽＋字节全等／纳入判据 62 件／漂移 0／单层缺失 0）＋字节漂移复红＋单层缺失双向（镜像独有→运行时缺／运行时独有→sync 漏跑）复红＋双向互查（漏配／越界，`shared/` 显式豁免不判越界）＋降级四分型（运行时不可达 WARN／镜像目录缺失 FAIL／`SKILL_DIRS` 读空 WARN／git 不可达与非工作树各 WARN 不判红）＋空跑守卫（内容全被忽略→纳入判据 0 件复红，且此时不产出字节全等 [OK]）；**控制例 C1—C5 全通过**证排除面（C1 把某件移出忽略集即复红）、双向互查（C2 shared 不误判越界）、降级分支与空跑守卫非恒真。临时层落点由 `程序文件/gate_scratch.py` 单源给出＝工作区 `_整理与清理/<日期>/门禁临时面-skill_cross_layer/`（不落 C 盘、不进运行时技能目录免被 sync 当新增件带进镜像、不给工作区根增常驻目录），跑后自清。改检查 9 判据、排除面口径或双向互查规则时与其余各道门禁一并运行。 |
| `python -B 程序文件/data_class_consistency_test.py` | **【第十门禁，CG-20260923-001 新增】Ran 70 tests，OK**，exit 0。检查 10「数据分类与来源一致性」专项，四组：`DataClassTest`（B／C 类来源列命中 S1 档标签或标准编号族 → `BC_SOURCE_LABEL` FAIL；检测方法列的标准号不误伤；A 类缺核验日期 → `A_VERIFY_DATE` **WARN 不 FAIL**，与检查 3 同口径；日期不可解析／未来日／数字型各报 WARN）、`FrozenBaselineTest`（迁移存量按单元内容哈希冻结，命中 baseline 即豁免、该单元字节一变即 `STALE_BASELINE` 复红，禁「批量默认 N 骗绿」）、`UnitIdGranularityTest`（判定单元 id＝`sha256(json([路径,块类型,上下文,本单元引用到的链接定义,单元正文]))`＋同件同指纹出现序，改粒度即复红）、`SelfProducedScopeTest`（扫描面自产件豁免由 `sync_skill_backup.py` 的 AST 现读推出，非文件名白名单；脚本改名或停止写盘即失效，自产名与治理声明重叠须报冲突而非静默豁免）。**登记记录载体＝L1 `_专题_技能合集策划/数据分类复核清单.json`**（`records` 已判定单元／`baseline` 待迁移存量，段区间须从 0 连续无重叠覆盖单元全文，否则 `SEGMENT_COVERAGE` FAIL）。**本门禁与 `validate_governance.py` 的 `--data-*` 参数读同一清单**：编辑 `change-governance.md`／`data-classification.md` 等在册件会使单元 id 变化，故**同批**须跑残量登记脚本补登新单元（该脚本属批登记脚本，落点＝`程序文件/脚本/`；其原工作面 2026-09-25 已随 `_tmp-scripts/` 撤销归档至工作区 `_归档/_tmp-scripts-20260925/数据分类门禁_20260922_c17c636d/`，复用前按落点纪律迁入 `程序文件/脚本/`），否则复红属预期而非缺陷。改检查 10 判据、类别枚举、baseline 语义或自产件豁免推出方式时与其余各道一并运行。 |
| `python -B 程序文件/storage_anchor_guard_test.py` | **【第十一门禁，CG-20260923-005 新增】Ran 19 tests，OK**，exit 0。收纳锚固承载面收窄专项守卫（PL-061）：R1—R5 五规则守卫运行时 `prefab-storage-system/` reference.md（§1.2 壁挂式柜体表＋§3.1 接口表）、SKILL.md（§2.2 承载力行＋Step 2）、examples.md（示例 2 固定件行）——① 撤出的 6 项无条件承载数值（单点≥50kg／≥30kg／≤20kg 每点／安全系数≥2.0／≥1.5 倍额定荷载／锚栓直径档）**不得复现**；② `FORBIDDEN_COLUMNS=('承载力参考',)` 列名不得回流（现名＝承载确定方式）；③ 11 条正向锚点（`ANCHORS` 元组现读：reference.md 的「有效埋深／边距／受力方向／偏心」四项核查参数＋「停止确定性承载结论」＋「不提供通用单点承载值」＋列名「承载确定方式」；SKILL.md 的「结构验算」＋「停止确定性承载结论」＋「不得以通用倍数或单点经验值替代验算」；examples.md 的「结构验算确定的锚固承载要求」）须在场；**（CG-20260929-005 附带订正本行旧述）** 原写「JGJ 145-2013 未收录于合集标准索引仅作方向性指引」两处失实——该标准**已在索引**（序号 72，2026-09-25 效力面官方核验），且该字面不在 `ANCHORS` 内（`grep "未收录"` 对该门禁与 storage 件均 0 命中，改前态 `34c1e6a` 即滞后）；现行口径＝CG-20260925-004／PL-069 改定的**内容性质基**（索引 :206 明写其引用边界为拉拔试验方法依据、不创设无条件承载数值），载体是 `reference.md:71` 的 S2 长句式而非某条锚点字面；④ 控制例证守卫非恒真；⑤ 真实件端到端注入自证（旧表注入失败、修后与控制例通过）。改收纳锚固面判据、禁止列名或正向锚点集时与其余各道门禁一并运行。 |
| `python -B 程序文件/wetzone_construction_guard_test.py` | **【第十二门禁，CG-20260924-001 新增】Ran 16 tests，OK**，exit 0（**15→16 系 CG-20260926-001**：新增正向锚 P7＝GB 55030-2022 第6.0.12条第4款的两面字面——reference 工序第 10 步「饰面层完成后蓄水试验」＋SKILL □4「饰面层完成后须二次蓄水」——及合成注入例 `test_dropped_second_water_retention_fires`；`git archive HEAD` 取批前 BK 件经 `--runtime-dir` 实跑 Ran 16／failures 2 自证非恒真）。厨卫湿区构造层序与工序专项守卫（PL-062）：R1—R4 四规则守卫运行时 `prefab-bathroom-kitchen-system/` reference.md（§2.2 干法层序图＋§3.2 地漏节点行＋§5.2 工序）、SKILL.md（验证执行清单 □4／□9）、examples.md（示例 1 适用性注）——① **R1** 地面层序块五层锚（饰面板／保护层／防水层／找坡层／结构楼板）须按物理序出现，锚取**结构匹配**（行首 `[层名`）而非子串首命中（找坡行的条件从句含「结构楼板」字面，子串法会假绿）；② **R2** 工序覆盖序 `embed<wp<bt<prot<fin<grate`（预埋本体／法兰→防水层→闭水→保护层→饰面→末端篦子）；③ **R3** 闭水试验须晚于地漏预埋（防回归到「闭水早于地漏」的宣称验收未形成接口态）；④ **R4** 预埋本体与末端附件分列＋节点行须含「先于防水层」与「饰面完成后」；⑤ 正向锚 P1—P6（体系边界三字面／覆盖口径「不得宣称已验」／SMC 适用性注／闭水时点字面／§5.2 标题字面／**数值本体字面**——坡度≥1%、淋浴区≥1.5%、蓄水≥20mm、≥24h 任一撤除即 P-MISS 复红）；⑥ 控制例 5 组证守卫非恒真（SMC 与 §5.3 块不入 R2／R3 判据、墙面无序块不误伤、清空任一目标件必报红）；⑦ 端到端自证：`--runtime-dir <改前原像目录>` 实跑 **exit 1／failures=2**（`test_real_runtime_files_pass`＋`test_copy_is_clean`），改后 clean 态 exit 0。层序块取**全部**围栏块（`_fenced_all`）而非首块，故追加式注入不漏判。改湿区层序／工序判据、正向锚点或数值本体字面守卫时与其余各道门禁一并运行。 |
| `python -B 程序文件/frozen_baseline_guard_test.py` | **【第十三门禁，CG-20260926-007 新增，闭 PL-083】Ran 29 tests，OK**，exit 0（约 5 秒，仅标准库＋git 可达；28→29 系 CG-20260926-009 新增取版接线守卫）。现行冻结基准件（`_专题_技能合集策划/行为与专业证据层冻结基准_v<N>.md`，**当前 v15**；该指向自 CG-20260926-009 起由取数件按版本序机械取最高版，不再写死版本号）§二 判据的常驻承担者——此前该节全部判据只由批登记脚本 `程序文件/脚本/cg20260926_005_h1_recompute.py` 承载，而该件不在门禁清单内、也不被 `validate_governance.py` 调用，即**判据正确但无人跑**（与 PL-049「判据在跑但恒真」同族而方向相反，属本仓登记的「条文存在≠机制生效」失效族）。跑三件事：**(1) ①复算命中**＝按登记配方复算 H-1a，与基准件 §二 2A **现读**登记值逐字比对；冻结基 commit 另按 §二 2B 现读对账（取数件内 `FROZEN` 是该行的人抄副本，失配即复红）。**(2) ②双向互查**＝§二 2A-补 第 4 步归类基线表完备性，判定域＝**H-1a ∪ H-1b 键集**内的治理层件（技能目录侧走 `SKILL_DIRS` 机械判据、不需表行），漏一行报「漏配」、表内件已不在管辖面报「越界」。**(3) ③反向注入**＝以**合成态直调**承担（把取数件所读的基准件路径对象（现名 `BASELINE`）换成内存内合成文本、把基线表换成合成字典、以参数改取物基准），不落盘、不改治理件与基准件；另有批凭据 `程序文件/脚本/cg20260926_007_gate_teeth_probe.py` 跑五种破坏态（T1 冻结基副本失配／T2 表漏一行／T3 表多一行／T4 `h1b` 键集接线回退／T5 判定域退步为只看 H-1a 一侧），实测全被捕获、末态复绿。**复用而非重写**：门禁按路径 import 取数件，并自我钉死两条＝本件命名空间内出现 `hashlib`／`aggregate`／`h1a`／`collect_scope` 等取数符号即复红、本件源码内出现**任何 64 位十六进制字面**即复红（登记值一经手抄，配方与载体脱钩后门禁仍会对旧值报绿，属「手抄副本漂移」失效族）。**随批订正取数件两处**＝(a) `h1b()` 键集原写 `scope(FROZEN)`，与该函数自身 docstring 首行及 v4 §二 2A H-1b 行「当次 `sync_skill_backup.py`（工作树现版）`collect_scope()`」相反，两枚同取一份脚本声明表时工作树一新增 `SHARED_FILES` 项即**两侧同盲**、②判定域随之失明；改 `scope_worktree()` 后实测对当前读数为 **no-op**（工作树脚本与 `36dee02` blob 字节全等，sha256 前 12 均 `805ab15641c6`），接线由 `test_h1b_keyset_wired_to_worktree_script` 钉住（换源即报「72 != 71」）；(b) 该件 import 期无条件重绑宿主 `sys.stdout`／`stderr` 的进程级副作用收进 `__main__` 入口（自本批起该件被常驻门禁 import）。**不覆盖面（披露而非机算）**＝①**不判 H-1b 与 H-1a 的字节差**——H-1b 按基准件 §二 2A 明写「不钉固定值」，其实跑时点差异归类属阶段 1 实跑判据（§2A-补 第 5 步触发口径），常驻判「两枚相等」会在任何一次合法治理批之后恒红；本批收尾实测＝带平后 H-1b 由 `70581d1b…` 漂为 `aa4488d8…`（1 件＝`shared/change-governance.md`，按 §2A-补 第 3 步落**登记面**、归因本批）而 H-1a 复算与本门禁终态不变，即该边界为实测成立而非宣称；②不判冻结基该不该推进（属 §一 第 2 条批次裁定）；③不判差异件的 CG 归因（实跑期工作树必然含未提交改动，以 `git log base..HEAD` 判归因对在途批次产假红）；④不判单件**档位改判**（§2A-补 第 3 步显式禁用「命中数>0 即行为面」这一机械代理量并要求逐件引用命中行原文落判，无真值源可断言，改判本身是人工面）。**CG-20260926-009（基准升 v5）随批订正三处**＝(a) 本门禁与取数件的基准件指向由写死 `_v4.md` 改为 `current_baseline()` 按版本序机械取现行最高版（判据＝基准件 §一 第 2 条「修订须另批并留前版」使最高版即现行版；不按文件时间戳猜、取不到即抛错停批），并由新增例 `test_baseline_face_is_the_highest_version` 钉住——**写死版在下一次升版时会继续对旧版现读而全组报绿，正属本门禁要防的那族失效**，此即 28→29 的唯一增量；(b) 件内所有把判据写成「v4 §二」的散文与用例名改版本中性（`V4`→`BASELINE`、`gov_table_from_v4`→`gov_table_from_baseline`、`test_frozen_base_commit_matches_v4_2b`→`…_baseline_2b` 等），**判据语义、注入例集合、上面四条不覆盖面一字未动**；(c) 取数件 `--selftest` 的 N3b 由钉死「漂移 36 件／新增 1 件」改为性质判据（漂移件集非空＋撤件为空＋新增件按名判定），因该两数是「旧基线 blob vs 当次运行时」的**开放全集计数**、随任何一次合法技能批浮动，钉死即下一批后自证转红并报出与缺陷无关的读数；另新增 N7 链式自证（换回 v4 基 `36dee02` 即逐字复现 v4 登记值 `75116480…`，证「换基线」与「改配方」可分离），实测十项全 PASS。**本批收尾带平后读数**＝H-1a 复算仍逐字命中 v5 登记值 `0e1c3f0a…`（72 件、缺 blob 0），H-1b 由 `0e1c3f0a…` 漂为 `8c08504c…`、差异 1 件＝`shared/change-governance.md` 落**登记面**并归因本批（与上面 ① 那条边界同类，属实测而非宣称；该句「本批」＝CG-20260926-009 批时点快照，按快照纪律不改写）。**CG-20260926-011（基准升 v6）＝本门禁件零改**：v6 系 §二 2A-补 第 5 步「行为面非空 ⇒ 另批升版重新冻结」的**第二次机械触发**（动因＝CG-20260926-010 改了两件运行时 SRE 件 `prefab-standards-reviewer/sre_reasoner.py`＋同件 `sre_regression_test.py`，以 v5 冻结基 `14e3f2e` 的 blob 对当次运行时作差得行为面 2 件非空），本批据此把取数件 `FROZEN` 推进到 `8d9dbf8`、H-1a 登记值换为 `d3550d32…`（72 件、缺 blob 0，**键集与 v5 逐件相同**、差异全在字节侧）。**门禁件本身一字未改**：其基准件指向由 -009 批订正的 `current_baseline()` 自动跟随到 v6，并由 `test_baseline_face_is_the_highest_version` 现读钉住——这是那次「消费端不写死版本号」订正的**首次实际收益**（否则本批须同批改门禁件与全组散文）。取数件另三处＝(i) 新增 `V5_BASE`／`V5_H1` 常量并把 `--selftest` 的 N7 由单环扩为**链式两环**（换回 v5 基 `14e3f2e` 与 v4 基 `36dee02` 均须逐字复现各自登记值，实测两枚 MATCH 且本版值与两枚皆不等 ⇒「换冻结基」与「改配方」在读数上可分离）；(ii) docstring 的「跑七项负向注入」订正为「跑十项（N1—N7，其中 N2／N3／N4 各含 a／b 两支）」（原数与实际打印项数不符，属载体文字滞后，不改任何判据）；(iii) 按 §二 第 3 步复核建议③④ 再订正 N7 两面＝**(甲) 逐环断言键集**（`ring_keys[v]` 排序后与本版键集逐件相同，否则「键集与 v5 逐件相同」只是宣称而无判据）＋**(乙) 环表 `CHAIN` ↔ `archived_h1a_versions()` 双向对账**（后者从留档基准件按与 `registered_value()` 同一条正则现读同一二元组，漏环／多环／两侧值不等三面各自报红，故「升版忘了加环」与「留档件被改写」都不靠有人记得）。N7 的牙另有独立六态探针 `程序文件/脚本/cg20260926_011_n7_teeth_probe.py`（T0 clean rc=0／T1 删 v5 环 rc=1「漏环」／T2 加 v3 环 rc=1「多环」／T3 v5 登记值改假值 rc=1「两侧值不等」／T4 v4 环键集少一件 rc=1「键集同本版＝False」／T5 还原 rc=0；六态实跑全部符合预期，取数件 sha256 前后一致＝纯只读注入）。**本批（-011）收尾带平后读数**＝H-1a 复算逐字命中 v6 登记值 `d3550d32…`（72 件、缺 blob 0），H-1b 为 `d8c6de4e…`、差异 1 件＝`shared/change-governance.md` 落**登记面**并归因本批（登记面首次写入后按复核建议⑤新登 PL-086 并回退重写重跑，故终态 H-1b 由复核取证时点的 `0b261e88…` 变为该值；此读数只对「当次带平后」成立，不留作可复现断言）。**该 H-1b 读数自本批起收窄写面**：唯一载体＝v6 基准件与本批执行记录（两者经实测均**不在** H-1b 键集内，故写入不自指；本行属 `AGENTS.md`、亦不在同步范围内），**不得写进 `change-governance.md`**——v5 批曾把它写进该件 §九 -009 行，而该件正是 H-1b 与 H-1a 的唯一差异来源，值自写入一刻即不可复现（v6 §七 与本批 §九 行 ⑤ 据实登记此教训；v5 件与 §九 历史行按 §一 第 2 条留档纪律**不回改**）。**CG-20260928-001（基准升 v7，闭 PL-094）＝本门禁件再次零改**：v7 系 §二 2A-补 第 5 步「行为面非空 ⇒ 另批升版重新冻结」的**第三次机械触发**（动因＝CG-20260927-001～008 改了 8 件运行时内容件＝`prefab-ceiling-system/SKILL.md`＋同目录 `reference.md`、`prefab-floor-system/SKILL.md`＋`examples.md`＋`reference.md`、`shared/standards-index.md`、`shared/standards-reasoning-rules.md`、根 `standards-index.md`；以 v6 冻结基 `8d9dbf8` 的 blob 对当次运行时作差得全等 63／字节漂移 9／新增 0／撤件 0，行为面 8 件非空、登记面 1 件、**未归因 0 件**），本批据此把取数件 `FROZEN` 推进到 `422812d`、H-1a 登记值换为 `135512da…`（72 件、缺 blob 0、**键集与 v6 逐件相同**）。**门禁件本身一字未改、Ran 29 不变**，其基准件指向由 `current_baseline()` 自动跟随到 v7 并由 `test_baseline_face_is_the_highest_version` 现读钉住——这是 CG-20260926-009 那次「消费端不写死版本号」订正的**第二次实际收益**（首次＝-011 批）。取数件另两处＝新增 `V6_BASE`／`V6_H1` 两常量、`CHAIN` 环表加 v6 一环，`--selftest` 的 N7 链式自证由两环扩为**三环**（v6／v5／v4 三基各自复现其留档登记值，期望值均自留档件现读并与常量互校，非手抄；实跑打印「环表 [4, 5, 6] ↔ 留档件现读 [4, 5, 6]（本版 v7 除外）」），v3 基的复现另由 N2b「跳过支＝漏检」自证承担（取数件 `:329`，其 docstring `:87` 明写此分工）；环表 ↔ `archived_h1a_versions()` 双向对账沿用 -011 批接线，故漏环／多环／两侧值不等三面仍各自报红。**四环链式自证（v6／v5／v4／v3 四基各自复现其留档登记值）与五版读数两两分离（集合基数断言 5）不在取数件内，在批登记脚本 `程序文件/脚本/cg20260928_001_build_baseline_v7.py:89—:94`**（属批凭据而非常驻门禁，跑一次即随批入库）。**一处判据担保方式订正（v7 新立）**＝v6 以「两 commit 的 `sync_skill_backup.py` blob 逐字节全等」担保键集不变，该前提经 CG-20260926-012／-013 **已不成立**（两批改的是 `SCRIPT_VERSION` 单源与 `--check` 落款核对，均未触 `ROOT_FILES`／`SHARED_FILES`／`SKILL_DIRS`／`collect_scope()`，实测该件 blob sha256 前 12 由 `805ab15641c6` 变 `f81109b97aec`）；v7 把担保改钉在**键集本体**上（两 commit 各自 `collect_scope()` 逐件相同＋排除面恰 1 件机器本地件＋`SKILL_DIRS` 现读 15 目录）并**另加断言两 blob 不等**——若二者再度相等则 v7 散文失实，停批而非静默通过。**四条不覆盖面一字未动**（不判 H-1b 与 H-1a 的字节差／不判冻结基该不该推进／不判差异件的 CG 归因／不判单件档位改判）。**H-1b 读数写面沿 v6 纪律**＝只写 v7 基准件与本批执行记录（两者均不在 H-1b 键集内），**不写进 `change-governance.md`**（该件是 H-1b 与 H-1a 的唯一差异来源，写入即自指失效）；本行属 `AGENTS.md`、亦不在同步范围内，故本段只引可复现的 H-1a 字面、不引任何 H-1b 字面。**CG-20260928-005（基准升 v8，闭 PL-097）＝本门禁件再次零改**：v8 系 §二 2A-补 第 5 步「行为面非空 ⇒ 另批升版重新冻结」的**第四次机械触发**（动因＝CG-20260928-003／-004 两批改 3 件行为面件＝`scanned-standard-clause-verify/SKILL.md`〔批 A，`6090eac`〕＋`shared/standards-index.md`＋根 `standards-index.md`〔批 B，`1cac19e`〕；以 v7 冻结基 `422812d` 的 blob 对当次运行时作差得全等 **68**／字节漂移 **4**／新增 0／撤件 0，未归因 **0** 件），本批据此把取数件 `FROZEN` 推进到 `1cac19e`、H-1a 登记值换为 `23549397…`（72 件、缺 blob 0、**键集与 v7 逐件相同**）。**门禁件本身一字未改、Ran 29 不变**，基准件指向由 `current_baseline()` 自动跟随到 v8 并由 `test_baseline_face_is_the_highest_version` 现读钉住——「消费端不写死版本号」订正的**第三次实际收益**（首次＝-011 批 v6、二次＝-001 批 v7）。取数件另两处＝新增 `V7_BASE`／`V7_H1` 两常量、`CHAIN` 环表加 v7 一环，`--selftest` 的 N7 链式自证由三环扩为**四环**（v7／v6／v5／v4 四基各自复现其留档登记值，期望值均自留档件现读并与常量互校），v3 基复现仍由 N2b「跳过支＝漏检」自证承担（沿 -001 分工）；环表 ↔ `archived_h1a_versions()` 双向对账沿用，漏环／多环／两侧值不等三面仍各自报红。**一处担保方式再订正（v8 新立）**＝v7 曾断言两基 `sync_skill_backup.py` blob **不等**（`805ab15641c6`→`f81109b97aec`）；本版两基（`422812d`／`1cac19e`）该件字节**全等**（sha256 前 12 均 `f81109b97aec`，-003／-004 两批均未触该件），故据实改回「两 blob 相等」断言＋键集本体逐件比对（73／73）双钉——担保钉在被担保物（`collect_scope()` 键集）本体上，两向前提都写死、哪一版前提失实都当场停批。**一处读数时点订正**＝v7 段「第 3 步反例复算＝无行号平移」系该批时点快照：sscv 件四命中行随批 A 改版平移（`:59/:97/:148/:155`→`:88/:131/:182/:190`，行文逐字未动、序列相等），本批按 §一 第 2 条留档不改写、以本批读数为现读（cgmd 命中 13 处、注释行 `prefab-standards-reviewer/sre_reasoner.py:276` 无平移沿用）。**四条不覆盖面仍一字未动**。**H-1b 读数写面沿 v6／v7 纪律**＝只写 v8 基准件与本批执行记录（两者均不在 H-1b 键集内；复核报告转录件另含复核者独立现算的同一枚，属记录面、同不在键集），**不写进 `change-governance.md`**；本行属 `AGENTS.md`、亦不在同步范围内，故本段只引可复现的 H-1a 字面、不引任何 H-1b 字面。**CG-20260929-001（基准升 v9，闭 PL-098）＝本门禁件再次零改**：v9 系 §二 2A-补 第 5 步「行为面非空 ⇒ 另批升版重新冻结」的**第五次机械触发**（动因＝CG-20260928-006／-007 两批改 **11 件行为面件**＝批 D 改运行时 7 件技能件〔`0f09520`〕＋批 E 改 AC 两件正文与两索引件〔`3969fca`〕；以 v8 冻结基 `1cac19e` 的 blob 对当次运行时作差得全等 **60**／字节漂移 **12**／新增 0／撤件 0，未归因 **0** 件），本批据此把取数件 `FROZEN` 推进到 `796abba`、H-1a 登记值换为 `5e3770f7…`（72 件、缺 blob 0、**键集与 v8 逐件相同**）。**门禁件本身一字未改、Ran 29 不变**，基准件指向由 `current_baseline()` 自动跟随到 v9 并由 `test_baseline_face_is_the_highest_version` 现读钉住——「消费端不写死版本号」订正的**第四次实际收益**（首次＝-011 批 v6、二次＝-001 批 v7、三次＝-005 批 v8）。取数件另两处＝新增 `V8_BASE`／`V8_H1` 两常量、`CHAIN` 环表加 v8 一环，`--selftest` 的 N7 链式自证由四环扩为**五环**（v8／v7／v6／v5／v4 五基各自复现其留档登记值，期望值均自留档件现读并与常量互校），v3 基复现仍由 N2b「跳过支＝漏检」自证承担（沿 -001／-005 分工）；环表 ↔ `archived_h1a_versions()` 双向对账沿用，漏环／多环／两侧值不等三面仍各自报红。**担保方式本版无方向反转**＝v8 立的「两 blob 相等」断言续写（两基 `1cac19e`／`796abba` 该件 sha256 前 12 均 `f81109b97aec`，区间内各批均未触该件）＋键集本体逐件比对（73／73）双钉；**另加一条 v6 基 ↔ v7 基 blob 不等断言**（`805ab15641c6` ≠ `f81109b97aec`），使 v7 段「该 blob 自 CG-20260926-012／-013 起与 v6 冻结基不等」的叙述在升版后仍有实物对照而不沦为无从核的历史宣称——**该断言必须钉在 v7 叙述自身的两基上**：初稿误钉「v7 基 vs 本版基」，而两基同在该改动之后、blob 必然相等，实跑即 AssertionError 停批（那一写法既与实物相反、又会在该件真被改动时反而报绿＝恒真空跑），已按实物订正。**一处读数反向**＝v8 段「sscv 件四命中行有平移」系该批时点快照：本版该件自 v8 冻结基起**字节全等**（190 行不变），四枚字面的行号表与行文序列逐枚相等即「无平移」，两处读数各自成断言、方向按实测写实（cgmd 命中仍 13 处、注释行 `prefab-standards-reviewer/sre_reasoner.py:276` 仍无平移、基线表命中数区间仍 8—43）。**四条不覆盖面仍一字未动**。**H-1b 读数写面沿 v6—v8 纪律**＝只写 v9 基准件与本批执行记录（两者均不在 H-1b 键集内），**不写进 `change-governance.md`**；本行属 `AGENTS.md`、亦不在同步范围内，故本段只引可复现的 H-1a 字面、不引任何 H-1b 字面。**CG-20260929-003（基准升 v10，闭 PL-101）＝本门禁件再次零改**：v10 系 §二 2A-补 第 5 步「行为面非空 ⇒ 另批升版重新冻结」的**第六次机械触发**（动因＝CG-20260929-002 一批改 **2 件行为面件**＝AC `prefab-acceptance-checklist-generator/SKILL.md`＋同目录 `reference.md`（PL-099 残余 60 行收窄＋4 行图例定义，提交 `4616b1e`）；以 v9 冻结基 `796abba` 的 blob 对当次运行时作差得全等 **69**／字节漂移 **3**／新增 0／撤件 0，未归因 **0** 件），本批据此把取数件 `FROZEN` 推进到 `80e9102`（＝CG-20260929-002 收尾登记提交态；该提交只改 `CHANGELOG.md` 与该批执行记录、二者均不在 `collect_scope()` 范围内，故 H-1a 与 `4616b1e` 同值系实测而非推定）、H-1a 登记值换为 `1fa8daef…`（72 件、缺 blob 0、**键集与 v9 逐件相同**）。**门禁件本身一字未改、Ran 29 不变**，基准件指向由 `current_baseline()` 自动跟随到 v10 并由 `test_baseline_face_is_the_highest_version` 现读钉住——「消费端不写死版本号」订正的**第五次实际收益**（首次＝-011 批 v6、二次＝-001 批 v7、三次＝-005 批 v8、四次＝CG-20260929-001 批 v9）。取数件另两处＝新增 `V9_BASE`／`V9_H1` 两常量、`CHAIN` 环表加 v9 一环，`--selftest` 的 N7 链式自证由五环扩为**六环**（v9／v8／v7／v6／v5／v4 六基各自复现其留档登记值，期望值均自留档件现读并与常量互校），v3 基复现仍由 N2b「跳过支＝漏检」自证承担（沿 -001／-005／CG-20260929-001 分工）；环表 ↔ `archived_h1a_versions()` 双向对账沿用，漏环／多环／两侧值不等三面仍各自报红。**七环链式自证（v9—v3 七基各自复现其留档登记值）与八版读数两两分离（集合基数断言 8）不在取数件内，在批登记脚本 `程序文件/脚本/cg20260929_003_build_baseline_v10.py`**（属批凭据而非常驻门禁，跑一次即随批入库）。**担保方式本版无方向反转**＝v8／v9 立的「两 blob 相等」断言续写（两基 `796abba`／`80e9102` 该件 sha256 前 12 均 `f81109b97aec`，-002 批未触该件）＋键集本体逐件比对（73／73）双钉，另保持 v6 基 ↔ v7 基 blob 不等断言（`805ab15641c6` ≠ `f81109b97aec`，使 v7 段叙述的实物对照常驻）与 v3 基 `8b59ee48218f` 不等断言。**两处反例读数沿用 v9 无变化**＝cgmd 在 15 技能目录命中仍 **13** 处（含注释行 `prefab-standards-reviewer/sre_reasoner.py:276` 无平移）、基线表命中数区间仍 8—43；sscv 件自 v8 冻结基起持续字节全等（190 行不变），四枚字面的行号表与行文序列逐枚相等即「无平移」。**本版无任何载体文字改动**（对照 v9 曾随批补 §2C S-3 行一句非判据注记），写面＝§二 局部＋§4.3 第 8 条版本枚举＋§六 第 6 条 v10 注＋§七 新条＋头部定位段。**先后判据本次无时序偏离**＝v9 冻结基之后到本批开工之间只有触发批 CG-20260929-002 自身，其后无任何批改技能件正文或索引本体（对照 v8／v9 各登记一处后顾读法偏离）。**四条不覆盖面仍一字未动**。**H-1b 读数写面沿 v6—v9 纪律**＝只写 v10 基准件与本批执行记录（两者均不在 H-1b 键集内），**不写进 `change-governance.md`**；本行属 `AGENTS.md`、亦不在同步范围内，故本段只引可复现的 H-1a 字面、不引任何 H-1b 字面。**CG-20260929-006（基准升 v11，闭 PL-105）＝本门禁件再次零改**：v11 系 §二 2A-补 第 5 步「行为面非空 ⇒ 另批升版重新冻结」的**第七次机械触发**（动因＝CG-20260929-005 一批改 **6 件行为面件**＝`prefab-storage-system/SKILL.md`＋同目录 `reference.md`、`prefab-ceiling-system/reference.md`、`prefab-bathroom-kitchen-system/reference.md`、`prefab-wall-surface-system/examples.md`、`prefab-mep-integration-system/examples.md`（PL-104 的 16 行 S1 无锚存量修净，提交 `85ff76c`）；以 v10 冻结基 `80e9102` 的 blob 对当次运行时作差得全等 **65**／字节漂移 **7**／新增 0／撤件 0，未归因 **0** 件），本批据此把取数件 `FROZEN` 推进到 `5f2ca1e`（＝CG-20260929-005 收尾登记提交态；该提交只改该批执行记录一件、不在 `collect_scope()` 范围内，故 H-1a 与 `85ff76c` 同值系实测而非推定）、H-1a 登记值换为 `b6ce647e…`（72 件、缺 blob 0、**键集与 v10 逐件相同**）。**门禁件本身一字未改、Ran 29 不变**，基准件指向由 `current_baseline()` 自动跟随到 v11 并由 `test_baseline_face_is_the_highest_version` 现读钉住——「消费端不写死版本号」订正的**第六次实际收益**（首次＝-011 批 v6、二次＝-001 批 v7、三次＝-005 批 v8、四次＝CG-20260929-001 批 v9、五次＝CG-20260929-003 批 v10）。取数件另两处＝新增 `V10_BASE`／`V10_H1` 两常量、`CHAIN` 环表加 v10 一环，`--selftest` 的 N7 链式自证由六环扩为**七环**（v10／v9／v8／v7／v6／v5／v4 七基各自复现其留档登记值，期望值均自留档件现读并与常量互校），v3 基复现仍由 N2b「跳过支＝漏检」自证承担（沿 -001／-005／CG-20260929-001／-003 分工）；环表 ↔ `archived_h1a_versions()` 双向对账沿用，漏环／多环／两侧值不等三面仍各自报红。**八环链式自证（v10—v3 八基各自复现其留档登记值）与九版读数两两分离（集合基数断言 9）不在取数件内，在批登记脚本 `程序文件/脚本/cg20260929_006_build_baseline_v11.py`**（属批凭据而非常驻门禁，跑一次即随批入库）。**担保方式本版无方向反转**＝v8／v9／v10 立的「两 blob 相等」断言续写（两基 `80e9102`／`5f2ca1e` 该件 sha256 前 12 均 `f81109b97aec`，CG-20260929-004／-005 两批四次提交均未触该件）＋键集本体逐件比对（73／73）双钉，另保持 v6 基 ↔ v7 基 blob 不等断言（`805ab15641c6` ≠ `f81109b97aec`，使 v7 段叙述的实物对照常驻，其钉法仍须在 v7 叙述自身的两基上——本版基与 v7 基该 blob 实测相等，钉「v7 基 vs 本版基」仍恒真空跑）与 v3 基 `8b59ee48218f` 不等断言。**两处反例读数沿用 v10 无变化**＝cgmd 在 15 技能目录命中仍 **13** 处（含注释行 `prefab-standards-reviewer/sre_reasoner.py:276` 无平移）、基线表命中数区间仍 8—43；sscv 件自 v8 冻结基起持续字节全等（190 行不变），四枚字面的行号表与行文序列逐枚相等即「无平移」。**本版无任何载体文字改动**（沿 v6／v7／v8／v10，写面与 v10 同型），写面＝§二 局部＋§4.3 第 8 条版本枚举＋§六 第 6 条 v11 注＋§七 新条＋头部定位段。**先后判据本次无时序偏离**＝v10 冻结基之后到本批开工之间只有 CG-20260929-004（检查 11 门禁批，零改技能件正文与索引本体、实测未进本版差异件集）与触发批 CG-20260929-005 自身，其后无任何批改技能件正文或索引本体（对照 v8／v9 各登记一处后顾读法偏离；v10／v11 两版为该判据的零偏离者）。**四条不覆盖面仍一字未动**。**H-1b 读数写面沿 v6—v10 纪律**＝只写 v11 基准件与本批执行记录（两者均不在 H-1b 键集内），**不写进 `change-governance.md`**；本行属 `AGENTS.md`、亦不在同步范围内，故本段只引可复现的 H-1a 字面、不引任何 H-1b 字面。**CG-20261001-002（基准升 v12，闭 PL-109）＝本门禁件再次零改**：v12 系 §二 2A-补 第 5 步「行为面非空 ⇒ 另批升版重新冻结」的**第八次机械触发**（动因＝CG-20260930-002／-003 与 CG-20261001-001 三批改**索引本体两副本**＝`shared/standards-index.md`＋根 `standards-index.md`（序号 12／13 状态转级与效力面补登）；以 v11 冻结基 `5f2ca1e` 的 blob 对当次运行时作差得全等 **69**／字节漂移 **3**／新增 0／撤件 0，**未归因 0 件**），本批据此把取数件 `FROZEN` 推进到 `4b522a2`（＝CG-20261001-001 收尾登记提交态；区间七提交 `5d2495f→5f5618d→bbbca09→54c296a→eeec543→35129ce→4b522a2` 中 docs 收尾提交 3 枚均不在 `collect_scope()` 范围内）、H-1a 登记值换为 `0f64e056c4fb…`（72 件、缺 blob 0、**键集与 v11 逐件相同**）。**门禁件本身一字未改、Ran 29 不变**，基准件指向由 `current_baseline()` 自动跟随到 v12 并由 `test_baseline_face_is_the_highest_version` 现读钉住——「消费端不写死版本号」订正的**第七次实际收益**（首次＝-011 批 v6、二次＝-001 批 v7、三次＝-005 批 v8、四次＝CG-20260929-001 批 v9、五次＝CG-20260929-003 批 v10、六次＝CG-20260929-006 批 v11）。取数件另两处＝新增 `V11_BASE`／`V11_H1` 两常量、`CHAIN` 环表加 v11 一环，`--selftest` 的 N7 链式自证由七环扩为**八环**（v11／v10／v9／v8／v7／v6／v5／v4 八基各自复现其留档登记值，期望值均自留档件现读并与常量互校），v3 半环复现仍由 N2b「跳过支＝漏检」自证承担（沿 -001／-005／CG-20260929-001／-003／-006 分工）；环表 ↔ `archived_h1a_versions()` 双向对账沿用，漏环／多环／两侧值不等三面仍各自报红。**九环链式自证（v11—v3 九基各自复现其留档登记值）与十版读数两两分离（集合基数断言 10）不在取数件内，在批登记脚本 `程序文件/脚本/cg20261001_002_build_baseline_v12.py`**（属批凭据而非常驻门禁，跑一次即随批入库）。**担保方式本版无方向反转，另新增一枚本体侧物证**＝v8—v11 立的「两 blob 相等」断言续写（两基 `5f2ca1e`／`4b522a2` 该件 sha256 前 12 均 `f81109b97aec`）＋键集本体逐件比对（73／73）双钉，另保持 v6 基 ↔ v7 基 blob 不等断言（`805ab15641c6` ≠ `f81109b97aec`，其钉法仍须在 v7 叙述自身的两基上——本版基与 v7 基该 blob 实测相等，钉「v7 基 vs 本版基」仍恒真空跑）与 v3 基 `8b59ee48218f` 不等断言；**本版据实补一枚「担保对象本体」侧证据**＝`git log 5f2ca1e..4b522a2 -- 程序文件/sync_skill_backup.py` 输出**空**（脚本内成 `SYNC_LOG == []` 断言，`rev-list --count` 同面为 0）——「两 blob 相等」只是代理量，「改了又改回」同样得到相等，故键集不变的担保须钉在被担保物（`collect_scope()` 键集本体＋该件区间内零提交）上。**一枚代理量断言被否决（本版新立判据）**＝初稿拟钉「归类基线表命中数**区间上界不动**」，经核 `ref_hits()` 数的是**技能件内**对治理件名的引用，而本批只改索引本体、二者无因果 ⇒ 该断言近似恒真、属「担保钉在代理量上」的失效族，**不采**；替代为三枚具体判据＝上界件名单钉死三件字面（`shared/interface-contracts.md`／`shared/standards-index.md`／`standards-index.md`）／行为面 ⊆ 名单／索引两副本命中数相等且同处上界且 `GOV_CLASS` 均判行为面（使「两副本同批同步改」的叙述有牙）。**落档支路本版反向**＝行为面 2 件**全走归类基线表内档支**，`SKILL_DIRS` 机械判据支为**空集**（与 v9 批同型、与 v10／v11 相反；据实登记空集而非省略该支）。**冻结基落点首次以甲乙双向钉住**＝甲 `h1a(35129ce)==h1a(4b522a2)`＝True（收尾登记提交不必更早、只需 blob 全等）、乙 `h1a(eeec543)`＝`a5dff6ab9910…` ≠ 本版＝True（不能更早），使「取哪一提交作冻结基」不靠叙述而靠两枚可失败断言。**两处反例读数沿用 v11 无变化**＝cgmd 在 15 技能目录命中仍 **13** 处（含注释行 `prefab-standards-reviewer/sre_reasoner.py:276` 无平移）、基线表命中数区间仍 8—43；sscv 件自 v8 冻结基起持续字节全等（190 行不变），四枚字面的行号表 `[88, 131, 182, 190]` 与行文序列逐枚相等即「无平移」。**登记面计数订正一枚（据实披露）**＝登记面初稿把区间提交数写成「四提交」，`git rev-list --count` 实测为 **7**，由 `程序文件/脚本/cg20261001_002_commit_count_fix.py` 按唯一锚＋命中数断言＋逆变换逐字符全等自证订正三层 cgmd 与 v12 件（**本批作者侧自查订正共五处**，全集与两载体枚举面补齐经过见执行记录 §四 第 4 条与复核报告 §6.2；其中一处在**提交后复验**时才被实测否证＝执行记录 §九 ① 对检查 6 (C) 面的声称，v12 件与四脚本不在 `CROSS_LAYER_SET` 声明的 8 件内、提交前后均不入 (A)(B)(C) 任何一面）。**本版无任何载体文字改动**（沿 v6／v7／v8／v10／v11），写面＝§二 局部＋§4.3 第 8 条版本枚举＋§六 第 6 条 v12 注＋§七 新条＋头部定位段。**先后判据本次登记一处后顾偏离（按更宽读法）**＝v11 冻结基之后到本批开工之间只有 CG-20260930-002／-003 与 CG-20261001-001 三批（均改索引本体或登记面、零改技能件正文），其中 CG-20261001-001 的改动并入本版差异件集，故据实登记为一处后顾读法偏离（对照 v10／v11 两版的零偏离）。**四条不覆盖面仍一字未动**。**H-1b 读数写面沿 v6—v11 纪律**＝只写 v12 基准件与本批执行记录（两者均不在 H-1b 键集内；复核报告转录件另含复核者独立现算的同一枚，属记录面、同不在键集），**不写进 `change-governance.md`**；本行属 `AGENTS.md`、亦不在同步范围内，故本段只引可复现的 H-1a 字面、不引任何 H-1b 字面。改基准件 §二 判据口径、归类基线表形制或取数件取物接线时与其余各道门禁一并运行。**CG-20261001-006（基准升 v13，闭 PL-118）＝本门禁件再次零改**：v13 系 §二 2A-补 第 5 步「行为面非空 ⇒ 另批升版重新冻结」的**第九次机械触发**（动因＝CG-20261001-005 一批改 **10 件行为面件**＝AC `prefab-acceptance-checklist-generator/reference.md`＋PW `prefab-partition-wall-solution/SKILL.md`＋同目录 `reference.md`＋SRE `prefab-standards-reviewer/reference.md`＋storage 三件 `SKILL.md`／`reference.md`／`examples.md`＋索引本体三副本 `shared/standards-index.md`／`shared/standards-reasoning-rules.md`＋根 `standards-index.md`；以 v12 冻结基 `4b522a2` 的 blob 对当次运行时作差得全等 **61**／字节漂移 **11**（行为面 **10**＋登记面 **1**）／新增 0／撤件 0，**未归因 0 件**），本批据此把取数件 `FROZEN` 推进到 `f1f3a74`（＝CG-20261001-005 收尾登记提交态；该提交**自身含 mirror 行为面 sync**——4 件 AC/storage 镜像＋同步器自产清单＋3 件索引本体等共 12 件 `技能仓备份/` 改动，与 CG-20261001-005 feat 提交 `1fb0f4b` 不等，**甲** `h1a(FROZEN) != h1a(FEAT)` 与 v12 甲等乙不等的方向**反转**；**乙** `h1a(FEAT1) != h1a(FROZEN)` 与 v12 同方向同语义；两枚合钉「新冻结基已覆盖全部行为面变化（含 mirror sync）」）、H-1a 登记值换为 `64e267a2bf9cc6717c392d0f323104a7425da911b4ff2a4207288b667d313574`（72 件、缺 blob 0、**键集与 v12 逐件相同**）。**门禁件本身一字未改、Ran 29 不变**，基准件指向由 `current_baseline()` 自动跟随到 v13 并由 `test_baseline_face_is_the_highest_version` 现读钉住——「消费端不写死版本号」订正的**第八次实际收益**（首次＝-011 批 v6、二次＝-001 批 v7、三次＝-005 批 v8、四次＝CG-20260929-001 批 v9、五次＝CG-20260929-003 批 v10、六次＝CG-20260929-006 批 v11、七次＝CG-20261001-002 批 v12）。取数件另两处＝新增 `V12_BASE`／`V12_H1` 两常量、`CHAIN` 环表加 v12 一环，`--selftest` 的 N7 链式自证由八环扩为**九环**（v12／v11／v10／v9／v8／v7／v6／v5／v4 九基各自复现其留档登记值，期望值均自留档件现读并与常量互校），v3 半环复现仍由 N2b「跳过支＝漏检」自证承担（沿 -001／-005／CG-20260929-001／-003／-006／CG-20261001-002 分工）；环表 ↔ `archived_h1a_versions()` 双向对账沿用，漏环／多环／两侧值不等三面仍各自报红。**十环链式自证（v12—v3 十基各自复现其留档登记值）与十一版读数两两分离（集合基数断言 11）不在取数件内，在批登记脚本 `程序文件/脚本/cg20261001_006_build_baseline_v13.py`**（属批凭据而非常驻门禁，跑一次即随批入库）。**担保方式本版两向前提都写死**＝v8—v12 立的「两 blob 相等」断言续写（两基 `4b522a2`／`f1f3a74` 该件 sha256 前 12 均 `f81109b97aec`，CG-20260930-002／-003 至 CG-20261001-005 七次提交无一触该件——`git log 4b522a2..f1f3a74 -- 程序文件/sync_skill_backup.py` 命中 **0**）＋键集本体逐件比对（73／73）双钉，另保持 v6 基 ↔ v7 基 blob 不等断言（`805ab15641c6` ≠ `f81109b97aec`，使 v7 段叙述的实物对照常驻，其钉法仍须在 v7 叙述自身的两基上——本版基与 v7 基该 blob 实测相等，钉「v7 基 vs 本版基」仍恒真空跑）与 v3 基 `8b59ee48218f` 不等断言。**落档支路本版与 v12 反向、与 v10／v11 同型**＝行为面 10 件中 **7 件**走「路径首段 ∈ `SKILL_DIRS`」机械判据支（AC／PW／SRE／storage 四目录 7 件正文）、**3 件**走归类基线表内档支（索引本体三副本均在表内明列为行为面），两支各自据实写死——v12 段「与 v10／v11 相反」的叙述仅对 v12 自身成立、对 v13 失效。**落档支路不立「区间上界不动」**＝v12 立的「区间上界不动」代理量断言被否决（沿 v12 批同型理由：本批改的是技能件正文与索引本体自身、与 `ref_hits()` 数技能件内对治理件名的引用无因果），改钉四件字面上界名单（`shared/interface-contracts.md`／`shared/standards-index.md`／`shared/standards-reasoning-rules.md`／`standards-index.md`）＋行为面 ⊆ 该名单 ∪ 技能目录并集＋索引三副本命中数相等且各自档位为行为面。**冻结基落点首次甲乙双向均为不等**＝v12 甲等乙不等、本版甲不等乙不等（两枚均为不等，合钉「新冻结基已覆盖全部行为面变化（含 mirror sync）」这一性质），**纯 docs 提交断言本版相应收紧**＝v12 的「区间内纯 docs 提交恰 3 枚且 FROZEN 在内」改为「恰 1 枚（CG-20261001-005 收尾登记自身 `5e0c308`）且 FROZEN 不在内」（FROZEN 在区间内含 mirror 改动非纯 docs，FEAT 在区间内行为面改动非 docs，FEAT1 在区间外更早；脚本内由 `git show --name-only` 逐枚现算取物）。**两处反例读数沿用 v12 无变化**＝cgmd 在 15 技能目录命中仍 **13** 处（含注释行 `prefab-standards-reviewer/sre_reasoner.py:276` 无平移）、基线表命中数区间仍 8—43；sscv 件自 v8 冻结基起持续字节全等（190 行不变），四枚字面的行号表 `[88, 131, 182, 190]` 与行文序列逐枚相等即「无平移」。**本版无任何载体文字改动**（沿 v6／v7／v8／v10／v11／v12），写面＝§二 局部＋§4.3 第 8 条版本枚举＋§六 第 6 条 v13 注＋§七 新条＋头部定位段。**先后判据本次无时序偏离**＝v12 冻结基之后到本批开工之间只有触发批 CG-20261001-005 自身（其含 mirror 改动合入本版差异件集、故据实登记为「含 mirror 后顾读法偏离」、但甲乙两枚语义同钉故不算偏离），其后无任何批改技能件正文或索引本体（对照 v8／v9／v12 三版各登记一处后顾偏离）。**软项 S-1 非零偏移 / S-2 S-3 零偏移**＝本版落盘当次实跑 S-1 读数与 v12 落盘当次**不等**（v12 警告 26→v13 警告 25，CG-20261001-005 把 AC `prefab-acceptance-checklist-generator/reference.md` 四行由「判 A 而不带条文级核验日期」改 D 类），S-2／S-3 与 v12 落盘当次**逐字相同**。**批内自身缺陷如实登记**＝v13 基准件 L7／L284「即索引本体两副本」→「三副本」（括号内已列三件＝shared/standards-index.md＋shared/standards-reasoning-rules.md＋根 standards-index.md，但尾随字数仍写「两副本」，与 v13 重立面索引三副本叙述不一致）、L47「PW `prefab-wall-surface-system/SKILL.md`」→「PW `prefab-partition-wall-solution/SKILL.md`」（系 CG-20261001-005 的建议 2-4 改 PW 件、目录名应为 `prefab-partition-wall-solution` 而非 `prefab-wall-surface-system`，后者是另一技能目录）、cgmd L9「PW `prefab-partition-wall-system/SKILL.md`」→「PW `prefab-partition-wall-solution/SKILL.md`」（多余 `-system` 后缀），均由 `程序文件/脚本/cg20261001_006_textual_defect_fix.py`（v13 基准）与 `cg20261001_006_cgmd_defect_fix.py`（cgmd ＋ mirror）按唯一锚＋命中数断言＋反变换 hash 等值自证批内订正，**逐字 reverse 后 SHA-256 等于订正前**（自证非溢出）；cgmd 同步写入运行时层与 `技能仓备份/shared/`（检查 6 (A)(B) 双闭环）、`shared/change-governance.md` 单元 ID 因内容变化触发 `数据分类复核清单.json` STALE_REVIEW，由 `cg20261001_006_register_residual.py` 重登 1 条 N 类。**四条不覆盖面仍一字未动**。**H-1b 读数写面沿 v6—v12 纪律**＝只写 v13 基准件与本批执行记录（两者均不在 H-1b 键集内；复核报告转录件另含复核者独立现算的同一枚，属记录面、同不在键集），**不写进 `change-governance.md`**；本行属 `AGENTS.md`、亦不在同步范围内，故本段只引可复现的 H-1a 字面、不引任何 H-1b 字面。**CG-20261002-004（基准升 v14，闭 PL-121）＝本门禁件再次零改**：v14 系 §二 2A-补 第 5 步「行为面非空 ⇒ 另批升版重新冻结」的**第十次机械触发**（动因＝CG-20261002-003 改**索引本体三副本**＝`shared/standards-index.md`＋`shared/standards-reasoning-rules.md`＋根 `standards-index.md`（该批另改本文件所在登记面与 `AGENTS.md` 取源通道节，登记面不触发升版）；以 v13 冻结基 `f1f3a74` 的 blob 对当次运行时作差得全等 **68**／字节漂移 **4**（行为面 **3**＋登记面 **1**）／新增 0／撤件 0，未归因 **0** 件），本批据此把取数件 `FROZEN` 推进到 `47275df`（＝CG-20261002-003 收尾登记提交态；该提交改动路径四枚＝`AGENTS.md`／`CHANGELOG.md`／`记录/` 一件／同步器自产清单 `技能仓备份/同步说明.md`，**逐枚不在 72 件键集内**，故其对 72 件的 blob 与该批 feat 提交 `cbaea7c` 逐件全等）、H-1a 登记值换为 `5e3a10ae9222855a684addd7efd560d2090a2f9c60b3c25d221140472f687174`（72 件、缺 blob 0、**键集与 v13 逐件相同**）。**门禁件本身一字未改、`Ran 29` 不变**，基准件指向由 `current_baseline()` 自动跟随到 v14 并由 `test_baseline_face_is_the_highest_version` 现读钉住——「消费端不写死版本号」订正的**第九次实际收益**（首次＝-011 批 v6、二次＝CG-20260928-001 批 v7、三次＝CG-20260928-005 批 v8、四次＝CG-20260929-001 批 v9、五次＝CG-20260929-003 批 v10、六次＝CG-20260929-006 批 v11、七次＝CG-20261001-002 批 v12、八次＝CG-20261001-006 批 v13）。取数件另两处＝新增 `V13_BASE`／`V13_H1` 两常量、`CHAIN` 环表加 v13 一环，`--selftest` 的 N7 环表由九环扩为**十环**（v4—v13 十基各自复现其留档登记值，期望值均自留档件现读并与常量互校），v3 半环复现仍由 N2b 承担；环表 ↔ `archived_h1a_versions()` 双向对账沿用，漏环／多环／两侧值不等三面仍各自报红。**十一环链式自证与十二版读数两两分离（集合基数断言 12）由本版批登记脚本 `程序文件/脚本/cg20261002_004_build_baseline_v14.py` 承担**（属批凭据而非常驻门禁），取数件 `--selftest` 的 N7 环表为 v4—v13 十环（v3 半环由 N2b 承担），两侧由 `CHAIN ↔ archived_h1a_versions()` 双向对账钉住。**本版四处与 v13 不同型，据实登记而非套叙述**＝(甲) **落档支路反向**：行为面 3 件**全部**走归类基线表内档支、「路径首段 ∈ `SKILL_DIRS`」机械判据支为**空集**（与 v12 同型、与 v13 的「7 机械＋3 内档」相反；v12 段「与 v10／v11 相反」与 v13 段「与 v12 相反」两句各自只对自身版本成立，本版为第三度反向，故该面**不得沉淀为固定叙述**）；(乙) **冻结基落点甲枚方向反向**：本版甲 `h1a(FEAT) == h1a(FROZEN)`（收尾登记提交改动全在键集外）＝与 v13 的「甲等乙不等（两枚均不等）」相反，回到 v12 的「甲等乙不等（甲相等）」形制；(丙) **乙枚读数落在本版值与 v13 值之外**：`h1a(87c27e3) = e87a1eb8…` 既非本版 `5e3a10ae…` 也非 v13 `64e267a2…`，因 v13 基之后 CG-20261002-001／-002 两批改过登记面 cgmd，本版脚本据实断言三面互不相等而不把它读成「回落 v13 值」；(丁) **软项 S-1 偏移／S-2 偏移／S-3 零偏移**（S-1 校验器本体 v1.18.0→v1.19.1、S-2 常驻测试门禁十四项→十五项（第十七门禁随 CG-20261002-001 上线）、S-3 同步范围仍 73），三态各自成断言。**担保方式本版无方向反转并另加一枚本体侧断言**＝两基 `sync_skill_backup.py` blob 相等（前 12 均 `f81109b97aec`）＋`git log f1f3a74..47275df -- 该件` 命中 **0** 枚＋`collect_scope()` 键集本体逐件相同（73／73）三钉，**另加「FROZEN 改动路径逐枚不在 72 件键集内」**（甲＝相等的理由须钉在被担保物上，不以「两枚 H-1a 相等」这一代理量独担）；v9 立的 v6 基 ≠ v7 基断言与 v3 基不等断言沿用，其钉法前提自证同批沿用。**两处反例读数沿用 v13 无变化**＝cgmd 在 15 技能目录命中仍 **13** 处（含注释行 `prefab-standards-reviewer/sre_reasoner.py:276` 无平移）、基线表命中数区间仍 8—43；sscv 件自 v8 冻结基起持续字节全等（190 行不变），四枚字面行号表 `[88, 131, 182, 190]` 逐枚相等即「无平移」。**先后判据本版无时序偏离，但批次枚数按实测写四批**＝v13 冻结基 `f1f3a74` 之后到本批开工之间`git log` 实测 **7 枚提交／四批**＝CG-20261001-006（v13 升版批自身的收尾提交 `7750674`）＋CG-20261002-001／-002／-003，前三批零改索引本体与技能件正文、触发批的索引本体写面已全部并入本版差异件集。**批内自身缺陷一处如实登记**＝本批登记面初稿把该枚举写成「CG-20261002-001／-002／-003 三批」，漏计 v13 批自身（根因＝把「冻结基提交」误读成「v13 批的最后一枚提交」，而 `f1f3a74` 是 CG-20261001-005 的收尾登记、v13 件由其后的 `7750674` 落盘），由本版批脚本 `cg20261002_004_range_commits_fix.py` 当日订正两处载体（§九 本批行与 PL-121 闭合格），与本仓既有「枚举计数与被枚举项须同批改」判据同族。**四条不覆盖面仍一字未动**。**H-1b 读数写面沿 v6—v13 纪律**＝只写 v14 基准件与本批执行记录（两者均不在 H-1b 键集内），**不写进 `change-governance.md`**；本行属 `AGENTS.md`、亦不在同步范围内，故本段只引可复现的 H-1a 字面、不引任何 H-1b 字面。**CG-20261002-008（基准升 v15，闭 PL-124）＝本门禁件再次零改**：v15 系 §二 2A-补 第 5 步「行为面非空 ⇒ 另批升版重新冻结」的**第十一次机械触发**（动因＝CG-20261002-007 改 **8 件技能件正文**＝`prefab-mep-integration-system` 的 SKILL／reference／examples／product-solutions 四件（撤 GB 50303-2015 第12.2.3条错挂，采丙档措辞）＋`prefab-storage-system` 的 SKILL／reference／examples 三件与 `prefab-acceptance-checklist-generator/reference.md` 一件（GB/T 3324-2024「已读面」限定语 16 行改齐）；以 v14 冻结基 `47275df` 的 blob 对当次运行时作差得全等 **63**／字节漂移 **9**（行为面 **8**＋登记面 **1**）／新增 0／撤件 0，未归因 **0** 件），本批据此把取数件 `FROZEN` 推进到 `6a26b6e`（＝CG-20261002-007 收尾登记提交态；该提交改动路径**仅 `记录/` 一件**、不在 72 件键集内，故其对 72 件的 blob 与该批 feat 提交 `eec7d99` 逐件全等）、H-1a 登记值换为 `2adb916ce50c245708064b5706d8b92f9fba51e46b85f2deb11d42b8f8214419`（72 件、缺 blob 0、**键集与 v14 逐件相同**）。**门禁件本身一字未改、`Ran 29` 不变**，基准件指向由 `current_baseline()` 自动跟随到 v15 并由 `test_baseline_face_is_the_highest_version` 现读钉住——「消费端不写死版本号」订正的**第十次实际收益**（首次＝-011 批 v6、二次＝CG-20260928-001 批 v7、三次＝CG-20260928-005 批 v8、四次＝CG-20260929-001 批 v9、五次＝CG-20260929-003 批 v10、六次＝CG-20260929-006 批 v11、七次＝CG-20261001-002 批 v12、八次＝CG-20261001-006 批 v13、九次＝CG-20261002-004 批 v14）。取数件另两处＝新增 `V14_BASE`／`V14_H1` 两常量、`CHAIN` 环表加 v14 一环，`--selftest` 的 N7 环表由十环扩为**十一环**（v4—v14 十一基各自复现其留档登记值，期望值均自留档件现读并与常量互校），v3 半环复现仍由 N2b 承担；环表 ↔ `archived_h1a_versions()` 双向对账沿用，漏环／多环／两侧值不等三面仍各自报红。**十二环链式自证与十三版读数两两分离（集合基数断言 13）由本版批登记脚本 `程序文件/脚本/cg20261002_008_build_baseline_v15.py` 承担**（属批凭据而非常驻门禁）。**本版四处与 v14 不同型，据实登记而非套叙述**＝(甲) **落档支路反向**：行为面 8 件**全部**走「路径首段 ∈ `SKILL_DIRS`」机械判据支、归类基线表内档支为**空集**（与 v14 的「3 件全走内档支、机械支空集」相反，回到 v13 的形制）——该面自 v12 起已**第四度反向**（v12 内档／v13 混合／v14 内档／v15 机械），故「哪一支为空」既不得沉淀为固定叙述、也不得作为预期；(乙) **FROZEN 属不属于「只改 `记录/`」提交集合反向**：本版 FROZEN `6a26b6e` 改动路径仅 `记录/` 一件故**在内**，v14 的 FROZEN `47275df` 另触三枚键集外文件（`AGENTS.md`／`CHANGELOG.md`／同步器自产清单）故**不在内**；甲枚 `h1a(FEAT) == h1a(FROZEN)` 的方向与 v14 相同而**理由的枚数不同**，脚本对「FROZEN 在内」「feat 不在该集合内」各成断言（后者防该判据恒真）；(丙) **乙枚读数落在本版值与 v14 值之外**：`h1a(f8c53af) = 80b9be91d978…` 既非本版 `2adb916ce50c…` 也非 v14 `5e3a10ae9222…`，因 v14 基之后 CG-20261002-005／-006／-007 三批改过登记面与技能件正文，本版脚本据实断言三面互不相等而不把它读成「回落 v14 值」；(丁) **软项 S-1／S-2／S-3 三项零偏移**（本批不触校验器本体、不增减门禁项、不改同步范围，三枚读数与 v14 落盘当次逐字相同，由本版批脚本自 v14 件现读串逐项比对、不采宣称式），与 v14 段的「S-1 偏移／S-2 偏移／S-3 零偏移」反向。**担保方式本版无方向反转**＝两基 `sync_skill_backup.py` blob 相等（前 12 均 `f81109b97aec`）＋`git log 47275df..6a26b6e -- 该件` 命中 **0** 枚＋`collect_scope()` 键集本体逐件相同（73／73）三钉，另沿 v14 立「FROZEN 改动路径逐枚不在 72 件键集内」的本体侧断言（本版该路径一枚）；v9 立的 v6 基 ≠ v7 基断言与 v3 基不等断言沿用，其钉法前提自证同批沿用（本版基与 v7 基该 blob 实测相等，钉「v7 基 vs 本版基」即恒真空跑）。**两处反例读数沿用 v14 无变化**＝cgmd 在 15 技能目录命中仍 **13** 处（含注释行 `prefab-standards-reviewer/sre_reasoner.py:276` 无平移）、基线表命中数区间仍 8—43；sscv 件自 v8 冻结基起持续字节全等（190 行不变），四枚字面行号表 `[88, 131, 182, 190]` 逐枚相等即「无平移」。**先后判据本版无时序偏离**＝v14 冻结基 `47275df` 之后到本批开工之间 `git log` 实测 **10 枚提交／四批**＝CG-20261002-004（v14 升版批自身 feat `5d61f18`＋收尾 `c9d9ecd`）＋CG-20261002-005（四枚）／-006（两枚）／-007（feat `eec7d99`＋收尾 `6a26b6e`），前三批零改被测面、触发批的 8 件技能件正文写面已全部并入本版差异件集；区间内「只改 `记录/`」提交 **3 枚**＝`8d468c3`／`f8c53af`／`6a26b6e`（本版 FROZEN 在其中，与 v14 反向）。**批内自身缺陷三处如实登记**＝(甲) 本批三层带平首跑漏了 L1→运行时一层（`sync_skill_backup.py` 只做运行时→镜像、不推 L1→运行时），写完 L1 cgmd 直接跑 sync 得「一致 73｜更新 0」而检查 6 (A) 报 2 项 FAIL 暴露该缺口，由主门禁当场挡下后以字节级 `write_bytes` 推平 L1→运行时再跑 sync 方得带平——根因＝把同步器当成三层全链路工具，属既有「三层结构」纪律的执行侧漏层，非新缺陷也非判据放松；(乙) 本批 §九 行初稿把「v14 冻结基之后到本批开工之间」的批次枚数写成**五批**，而区间实测 10 枚提交／**四批**（根因＝把提交枚数误读成批次枚数的邻近量，与 CG-20261002-004 那批「漏计 v13 批自身」同族而方向相反），由 `程序文件/脚本/cg20261002_008_range_batches_fix.py` 当日订正三层 cgmd 并**把四枚批凭据与登记脚本的相应字面同批回流**（回流后以 `git show HEAD:` 前像重放登记面四变换，须与订正后 L1 逐字节全等，该支实跑通过）；该枚数此后由本版批基线构造脚本按提交主题现解析并断言（`N_BATCHES == 4`，区间首／末批各成一枚断言），(丙) 同批另处＝§九 行「写面」列把本批批凭据脚本枚数钉成**两枚**而入库枚数为五枚（枚数随批内订正浮动），按 CG-20261002-004 §九 行自身写法（该列只写载体类别不钉枚数）改由 `程序文件/脚本/cg20261002_008_carrier_face_fix.py` 换为按路径形态给出的自更新指称，不再钉数；甲乙丙三处的发现面均为**落笔前的脚本自证与主门禁实跑**（检查 6 (A) 挡下甲、枚数复算挡下乙丙），非事后复查。不再手抄——与本仓「枚举计数与被枚举项须同批改」判据同族。**四条不覆盖面仍一字未动**。**H-1b 读数写面沿 v6—v14 纪律**＝只写 v15 基准件与本批执行记录（两者均不在 H-1b 键集内），**不写进 `change-governance.md`**；本行属 `AGENTS.md`、亦不在同步范围内，故本段只引可复现的 H-1a 字面、不引任何 H-1b 字面。改基准件 §二 判据口径、归类基线表形制或取数件取物接线时与其余各道门禁一并运行。 |
| `python -B 程序文件/sscv_precondition_guard_test.py` | **【第十四门禁，CG-20260928-003 新增，闭 PL-095】Ran 19 tests，OK**，exit 0。SSCV（scanned-standard-clause-verify）条文级核验**三道硬前置**专项守卫（PL-095 的机算承担者）——① 硬前置节（封面页身份三要素强制目视／「文本层不可用」类宣称须附最小验证三件／授权读法须回读既有否证）在**核验流程之前**的运行时面；② 机算预检工具 `程序文件/sscv_identity_precheck.py` 的机筛纯函数与 CLI 退出码语义。**工具与门禁均落 `程序文件/`、不在技能目录新增文件（Design A——避开冻结基准 H-1a 键集因新增件而变动）**。四组用例：① `TestSkillMdPreconditions`（8 例）＝真实件全过＋六类负向注入逐类复红（缺节 `### 前置二`／版本 1.0.0 低于下限 1.2.0／撤工具引用＝漏配／撤 `U+FFFD` 短语／撤验收清单项「采信类授权已回读既有否证」／**P0 节后置化**——`## P0 硬前置` 移到 `## 步骤` 之后即红）＋无关编辑控制例；② `TestToolPureFunctions`（6 例）＝事故型封面（CG-20260927-008 原件形态）三要素全命中、干净封面零命中、**控制例两枚**（单 x `300x300mm` 与真实日期 `2026-09-28` 不得误报，证正则不恒真）、空文本不崩、`text_layer_verdict` 三态文案互异；③ `TestToolEndToEnd`（3 例）＝fitz 合成 PDF 双封面试样经工具 CLI 实跑（exit 0／四节标题／命中／PNG 恰 1 张非空；输入缺失 **exit 2** fail-closed）；PyMuPDF 缺失时该组响亮 SKIP 并降级披露；④ `TestRealFileEndToEnd`（2 例）＝运行时 SKILL.md 干净＋**工具接线双查**（SKILL.md 引用 `sscv_identity_precheck.py` × 仓内该件存在性，漏配／悬空引用各自报红）。固定面常量＝`REQUIRED_SECTIONS` 4 项（P0 节＋三前置节名）／`REQUIRED_PHRASES` 9 条（工具件名、控制台编码自查、U+FFFD、回读、p001、目视、dpi≥150、「执行本步前先跑『P0 硬前置』」、「须附『前置二』最小验证三件」）／`REQUIRED_CHECKLIST` 3 项／版本下限 1.2.0（frontmatter 现读、非钉死）。负向注入以内存文本直调 `check_skill_md`（不落盘、不改技能件）；端到端经 `--runtime-dir` 可指向改前原像。**牙＝批凭据 `程序文件/脚本/cg20260928_003_teeth_probe.py` 三态实跑全 PASS**（T0 clean Ran 19／失败 0／exit 0；T1 以运行时留痕件 `SKILL.md_pre20260928CG003`（v1.1.0 原像）注入临时面 Ran 19／**失败 5**／exit 1 且 5 红全落 SKILL.md 判据面两组；T2 还原复绿）。改 SSCV P0 硬前置面、预检工具机筛正则或工具退出码语义时与其余各道门禁一并运行。 |
| `python -B 程序文件/s1_anchor_guard_test.py` | **【第十五门禁，CG-20260929-004 新增，闭 PL-103】Ran 29 tests，OK**，exit 0。检查 11「技能件 S1 标注行锚点结构」专项，三组：`PureClassify`（12 例）＝`s1_table_headers` 表识别（标准表须紧跟分隔行才认表头／headers 映射覆盖表块全部行含分隔行、孤儿行映射 None）＋锚形（标准号族／条文定位符「第n.n条·表n.n·附录X」，「第5章」类非定位符）＋S1 词边界（S10／SB1 不误伤）＋豁免四族正反例（E1 表头含「等级」／E2 行首格规则编号 `^[A-Z]{1,8}-R-…\d`／E3 行内短语（只认连字符形 S1-S3，斜杠形 S1/S3 不豁免）／E5 表头含「模式」且含「示例」）＋判序（E2 先于 E3：红线条行含「S1-S4」叙述短语仍按行首格规则编号落 E2；E1/E5 先于 E3）；`Injection`（14 例）＝内存内直调 `check_s1_anchor_evidence`（合成扫描面＋合成清单＋monkeypatch `collect_skill_md_files`／`extract_py_literals`，不落盘、不改治理件）：clean 三 [OK]／空 units＝合法全净态（末支「存量清单为空且现读零无锚行」可达，防死分支）／新增无锚行复红且与 `s1_bare_lines` 单源交叉验证／改行与删行悬空双复红／有锚行编辑不误伤／清单缺失、schema 非法、units 非法、字段非法、重复键、越界（file 不在扫描面）各 fail-closed 复红／扫描面空 WARN 不判／缺镜像目录 WARN／空 SKILL_DIRS WARN 不静默；`RealRepo`（3 例）＝真实仓 clean 三 [OK]＋真实件改行→悬空＋新增双复红＋**源码零 64 位哈希字面自守卫**（登记值一经手抄、判据与载体脱钩后门禁仍对旧值报绿，沿第十三门禁「手抄副本漂移」同族判据）。**CG-20260929-005（闭 PL-104）随批改取态**：存量清单由 16 单元带平至 0 后，`test_real_repo_clean` 的第三支 [OK] 不再钉「存量清单对账」字面，而按清单在册单元数取态（非空＝「存量清单对账」／空＝「存量清单为空」，两支都必须恰一条且缺支即红）；`test_real_file_stale_injection` 在全净态改以**真实件撤锚行**为注入底（现读真实 S1 有锚行→撤锚成 bare 形→用 `s1_classify_row` 自证确为 bare→按该行自身哈希**现算**登记值→先自证对账绿再改字节自证悬空），登记值不落本件字面、不手抄。**用例数 29 不变（判据零改，仅取态与注入底随存量清单状态适配）**；本批破坏态实跑＝还原前 `Ran 29 / FAILED(failures=1, errors=1)` 两条全落 RealRepo、修后 Ran 29 OK。防空跑 fail-closed；夹具表头用中性词——含「等级」会被 E1 豁免，该形态属真实仓实测 12 行的合法豁免面而非测试缺陷。改检查 11 判据、豁免结构判据、bare 口径或存量清单 schema 时与其余各道门禁一并运行。 |
| `python -B 程序文件/header_chain_guard_test.py` | **【第十七门禁，CG-20261002-001 新增，闭 PL-112】Ran 26 tests，OK**，exit 0（**24→26 系 CG-20261002-002** 随检查 12「选行」判据订正加两例，判据语义见本行末段）。检查 12「治理文件头部链现读性」专项，三组（例数系 CG-20261002-002 终态现读）：`PureFunctions`（9 例）＝`header_chain_token`（**锚后取数**而非全行取数——链行正文引用历批编号，全行首个会落到被引旧批上）＋无锚／锚后无编号各返 None＋`header_chain_line_no` 零／一／二计数＋`md_table_blocks` 空行切块＋`changelog_last_token` 两支口径互异（控制例 C2：同一条**合成**末行「首格」取不到而「末格」取到，证索引侧采末格的口径有牙——非「真实件已现分歧」，真实 §八 全表 37 条数据行两口径现读零分歧）＋末行无归属报因；`Injection`（12 例）＝内存内合成文本直调 `check_header_chain`（`index_text`／`cg_text` 两支覆写，不落盘、不改治理件，运行期零文件读）：clean 四绿／链锚 0 行／链锚多行／锚后无 CG／链 CG 悬空（键闭合支与末行一致支各自独立）／滞后与预推两向文案互异／小节表块数偏离／末行无归属／§九 编号集空 fail-closed，**控制例 C1**＝只让索引一支滞后则治理规则两支仍绿（证判据不是一句「全红」）、**C3**＝合法单表块不红（对照两块复红）；`RealRepo`（5 例）＝真实仓 clean（零 FAIL 零 WARN、恰 4 条 [OK]）＋**期望值现读不手抄**（[OK] 内批次字面须等于真实文件现读值）＋真实件改链复红（取 §九 内更早批次）＋真实件链指无登记批复红＋**判据单源守卫**（本件源码除该守卫例自身外不得出现 `re.compile`／`CG_ID_SHAPE`／`HEADER_CHAIN_ANCHOR`／`SEP_ROW_RE`，判据另立一份即成第二事实源；切分点唯一性由例内断言钉住、方法名以拼接给出免自撞，另按 CG-20261002-001 复核建议 1 加「本例之后不得再有用例」断言——否则日后在本例后追加的用例静默逃出被扫面）。**存量面**＝本批开工现读两件各自「链 == 末行」（索引两侧 CG-20261001-005、治理规则两侧 CG-20261001-006）⇒按 PL-112 处置列 ③ 从「零滞后」起算，**不建存量清单、不冻结历史滞后**（对照检查 11 的 16 行存量须配清单）。批凭据反向注入＝`程序文件/脚本/cg20261002_001_teeth_probe.py` 七态 17 项全 PASS（T0 clean／T1 索引链退一批＝「链滞后」／T2 治理规则链退一批＝载体切换且索引不受牵连／T3 撤链／T4 链指无登记批／T5 末行撤归属／T6 表块内插空行／T7 还原复绿且与真实 L1 读数逐字相同），临时面由 `gate_scratch.py` 单源落 `_整理与清理/<日期>/门禁临时面-cg20261002_001/` 并进程退出自清。**不覆盖面（披露而非机算）**＝不判头部链正文文字内容的正确性（批次要点摘述属人工裁量面）、不判索引 §7.1 空表态的现读性、各件下游副本（运行时层／`技能仓备份/`）的头部链一致不经本检查（由检查 6 (A)(B) 字节全等传递，本检查只判 L1 层自洽）、**不判「该不该有新的一行」**（某批改了索引本体却既未追加 §八 末行也未推链时，链与末行仍相等、本检查不红——该形态属「变更日志完整性」面，立判据须先定「改了哪些面就必须登记」的真值源，属另批裁定，据实披露不另立）。**判据面订正（CG-20261002-002，B 级）＝「选行」一支加显式定界符**＝`header_chain_line_no` 原按裸子串 `HEADER_CHAIN_ANCHOR in line` 选行，本批把 CG-20261002-001 的链行降级为历史快照后主门禁与该门禁同时报「头部链锚命中 2 行」，第二枚命中系该链行**正文内把锚字面写在反引号里作说明**（检查 12 上线次日即被一次合法的链推进触发假红，根因属《取锚须显式定界符》失效族：不钉边界时两向皆生——正文含锚而不在行首＝多判假红，锚前另有正文而行内取数落点错位＝漏判假绿）。改法＝新增常量 `HEADER_CHAIN_LINE_RE`，选行只认锚在**行首**（允许引用块前缀 `> ` 的空白浮动）；`header_chain_token` 的「锚后首个 CG」行内取数口径**逐字未动**，两支判据互不替代；FAIL 文案改写为「头部链锚（行首形制）」并补「正文引用锚字面不计入命中」。**不放宽自证**＝真实 cgmd 命中由改前 [9, 11] 收为改后 [9]，同一夹具下两枚行首形制仍计 2 枚（复红面不缩，证非「只数第一条」这一新的猜法），主门禁通过数 252 不变。随批加两例（两支均落 `PureFunctions`，该类 7→9；`Injection` 12／`RealRepo` 5 不变）＝`test_line_no_ignores_anchor_quoted_in_body`（负向＋同例内两枚行首控制面）与 `test_body_quoted_anchor_does_not_fire_clean_carrier`（经 `run()` 直调的整链复算，即「合成载体含正文引用锚时四支断言仍全绿」）。改检查 12 判据、两支取数口径或方向判据时与其余各道门禁一并运行。 |
| `python -B 程序文件/sync_skill_backup.py` | 把 `~/.qoder/skills/` 运行时技能回写 `技能仓备份/` 镜像。**基线已验证**（CG-20260916-006 ④ 实跑）：清掉两层 `__pycache__` 后为「范围 122｜一致 122｜新增 0｜更新 0｜移除 0」，`同步说明.md` 哈希清单随之刷新（CG-20260829-001 ⑤ 的「失准、待重跑」已闭合）。**本行判据是「范围 73 ＋ 新增 0 ＋ 移除 0 ＋ `--check` exit 0」**（`--check` 的 exit 0 面自 **CG-20260926-013** 起含第二条非零退出支＝落款版本失配／落款行取不到版本字面／清单缺失，三支文案互异且全部指向「跑一次写模式带平」；**增删差异仍不改退出码**，即本行「一致/更新两数随批浮动、不得按固定数字判回归」的既有口径未动）（范围数自 CG-20260921-004 起为 72，CG-20260923-001 把 `shared/data-classification.md` 纳入 `SHARED_FILES` 后为 **73**；原值 122 系 `walk_files` 留痕判据失效（字面 `"_pre_"` 对实际命名 `_pre<日期>CG<序号>` 命中 0）而虚高，含 50 件 CG 留痕件，见 PL-035。本行以下所有「范围 122」历史读数按快照纪律**不改写**，读作判据订正前态）；一致/更新两数随批浮动（改了哪几件就更新几件），不得按固定数字判回归。**CG-20260917-009** 首跑「范围 122｜一致 116｜新增 0｜更新 6｜移除 0」，末次同步与只读检查见 CHANGELOG v1.12.15；使用 `python -B` 避免新生 `.pyc`，同步前检查范围与差异，出现未知新增／移除须停。以下为历史读数（CG-20260917-006）**首跑**为「范围 122｜一致 119｜新增 0｜更新 3｜移除 0」，更新件＝`sre_reasoner.py`／`sre_regression_test.py`／机器本地 `sre_regression_report.json`（＝本批三件运行时改动带平）；**收尾复跑**为「范围 122｜一致 121｜新增 0｜更新 1｜移除 0」，唯一更新件＝机器本地 `sre_regression_report.json`（前三件已一致，report.json 因复跑门禁被重写）——两次读数差即「本批改了哪几件」，正是本行不得钉固定数字的原因。**排除面缺口已机算收口（CG-20260919-004，C 级，闭合 PL-011）**：v1.4 起 `walk_files` 源侧收集加跳 `.pyc`／`__pycache__`，目标侧扫描故意不跳以便镜像清理删除历史遗留的孤儿 `.pyc`（自愈），故「跑前须先手工删两层 `.pyc`」这一人工步骤自此由脚本承担；`--check` 实测对 clean 态为 no-op（当前两层 0 个 `.pyc`，范围 122／新增 0／移除 0）。**反向缺口（-009 实测）**：范围是固定的「15 个技能目录 ＋ 根治理文件 ＋ shared 7 文件」，落在 `技能仓备份/` 内但不属于该范围的件会被当差异**移除**——本批放在 `技能仓备份/shared/` 的 `_pre20260916CG009` 备份首跑即被删（读数「移除 1」）。故仓内镜像侧**不是** `_pre*` 备份件的留存位置，回退判据取 `git show HEAD:<path>` 前像，运行时侧备份件仅机器本地保险。**CG-20260921-004（v1.5，闭合 PL-035）订正该判据**：留痕跳过由字面 `"_pre_"` 改为结构文法 `_pre_?\d{8}`（`TRACE_ARTIFACT_RE`）并扩至路径任一段，范围由 122 降为 **72**；源侧与目标侧共用该分支，故镜像层既有 50 件留痕件两侧皆不可见——**既不被带平也不被判孤儿删除**（实测「范围 72｜一致 72｜新增 0｜移除 0」），-009 那条「放在镜像侧即被移除」的行为对留痕命名件自此不再发生；该 50 件系 gitignored 未跟踪件，删除不可逆，本批不删、清理须另批裁定。检查 9 自枚举取数、不经 `walk_files`，其纳入判据读数不受本批影响（120／58／62 不变）。**CG-20260921-005 处置该 50 件镜像层留痕件**（发起人裁定「先仓外归档再删」）：先按 `技能仓备份/` 相对路径整体归档至与本仓同级的仓外归档目录 `_archive-20260921-traces\`（源↔归档 sha256 集合全等自证＋逐件 `MANIFEST.txt`），删除前无唯一内容审计＝50 件在运行时层 `~/.qoder/skills/` 均有字节全等副本、其中 42 件内容同存于 git 历史 blob、唯一内容 0，审计通过后才删原件；删后镜像层该文法残留 0、`技能仓备份/` 文件数 123→73、`--check` 复跑仍「范围 72｜新增 0｜移除 0」，该清理面补登台账 PL-037 并同批闭合）。**CG-20260926-012（B 级，闭合 PL-086）＝该件版本自称收为单源**：`SCRIPT_VERSION` 由手抄常量（改前 `:101` 值 `1.5`，而 docstring 已自称 v1.6，旧号经写盘模板发布到自产件 `技能仓备份/同步说明.md:3`）改为 `_docstring_version()` 自本件 docstring 头部「sync_skill_backup.py v<X.Y>」现读（`:109`—`:121`，正则带 `(?!\.\d)` 故三位号不被静默截断、取不到即抛错停批），写盘模板消费点（改前 `:227`／改后 `:247`）与 `collect_scope()`／`walk_files()`／`ROOT_FILES`／`SHARED_FILES`／`SKILL_DIRS`／`TRACE_ARTIFACT_RE`／`--check` 输出格式**逐字未动**，故本行判据「范围 73＋新增 0＋移除 0」不受影响（实测范围仍 73、H-1 键集仍 72、取数件 N7 两环「键集同本版＝True」）。五态内存注入自证（原像／头部改 v9.9 跟随／撤除头部字面抛错／历史区插全前缀字面仍取头部／头部改三位号抛错）见该批执行记录 §3.2。**本行不钉该件版本号**——版本字面的单源在 docstring，抄进本行即成第二事实源。**残留面（另登 PL-087，未闭）**＝docstring 升版后忘复跑写模式 sync，会使自产件 `同步说明.md:3` 的落款版本继续落后且无任何门禁报红（`walk_files` 跳过清单自身、检查 6 显式不读该自产件以免自指、`--check` 不核落款），现仍靠「登记面编辑后必须复跑 sync」这条人工纪律承担。**CG-20260926-013（B 级，闭合 PL-087）＝该人工纪律自此有机算承担者**：`--check` 增 `check_manifest_version()`——现读该自产件、按**行首锚** `MANIFEST_STAMP_PREFIX`（`= "> 最后同步："`，**写盘模板与核对函数共用同一常量**，故核对侧不另抄前缀字面、不再造一处手抄副本漂移）定位落款行、以 -012 批既有的 `DOC_VERSION_RE` 取版本字面与 `SCRIPT_VERSION` 比对，失配即 **exit 1**；四条失败支（清单缺失／落款行缺失／落款行内无版本字面／版本不等）文案互异且**全部 fail-closed**。核对**只挂 `--check`**（写模式每次重写清单，两值按构造必然一致）；写盘模板的前缀字面改为读该常量属**纯等价改写**（复核者以 `od` 逐字节比过 HEAD 前像与新常量全等），`collect_scope()`／`walk_files()`／`ROOT_FILES`／`SHARED_FILES`／`SKILL_DIRS`／`TRACE_ARTIFACT_RE` 与写模式输出格式仍**逐字未动**，故范围判据仍 73、H-1 键集仍 72。**正交性系实测而非宣称**＝本批把 docstring 升版 v1.7→**v1.8**，升版后、写模式复跑前的真实中间态即失配态，实测 `--check` exit **1** 而同一次实跑范围读数为「范围 73｜一致 73｜新增 0｜移除 0」（差异面全绿而退出码 1）；带平后复跑 exit **0**。守卫非恒真由批凭据 `程序文件/脚本/cg20260926_013_check_teeth_probe.py` **八态**承担（T0 常态／T1 落款落后／T2 无版本字面／T3 清单缺失／T4 三位号不被静默截断／**T5 落款正确但镜像有孤儿件时不误伤＝控制例**／T6 落款行整行缺失／T7 落款行下移到第 30 行仍 OK 即证不钉行号），八态全 PASS、exit 0；T1—T7 以合成清单＋临时 DST 内存内直调 `sync(True)`，不触碰真实镜像、不落治理件，临时面由 `gate_scratch.py` 单源落工作区 `_整理与清理/<日期>/` 并进程退出自清。**本批不新建门禁件、十三道门禁清单零增减**＝采 PL-087 处置列 ① 的产生侧支路（该件是同步器自产件，由同步器自己核最贴近产生侧），处置列显式不采「写进某道常驻门禁」的支路；故**本行（门禁表内）就是该断言的常驻消费面**，判据字面已按上句订正为含 `--check` exit 0。**波及面实测**＝全仓无任何脚本以 subprocess 调 `--check` 并依赖其退出码（校验器检查 6／9／10 与第八门禁只 AST／文本现读声明表、不执行该件也不读 `SCRIPT_VERSION`；取数件 exec 后只调 `collect_scope()`、不调 `sync()`），唯一语义波及面＝§4.3 第 6 条「每题 `sync --check`＋`git status` 双验」（PL-031 实跑规程）——其判据取**读数**而非退出码且 FAIL 文案可区分，故不误判。**本行仍不钉该件版本号**（版本字面的单源在 docstring）。同批按复核建议合并 docstring 内重复的两行 `v1.5` 历史条目（载体文字缺陷、不触判据、脚本 docstring 不受 CG 行快照纪律冻结） |

> **SRE 门禁转红时的正确动作（设计方案 §6.2，不是故障）**：若 `sre_regression_test.py` 报 `FAILED (unexpected successes=N)` 并 exit 1，说明对应缺陷已被真实修复——须摘掉该用例的 `@unittest.expectedFailure` 装饰器、把断言转为正向常态断言，**禁止回退或注释 `sre_reasoner.py` 的修复来让用例重新"预期失败"**。

`validate_governance.py` 从本体算数不硬编码计数；`sr_ic07_compliance_test.py` 等硬编码计数的脚本是盲区，红线注册类变更须回扫。
