AGENTS.md · git:20261002.5d61f18 · 2026-10-02 · sha256 84dd708b070f1fde
AGENTS.md git:20261002.5d61f18A
Immutable. This exact content never changes and is served at /api/v1/blob/84dd708b070f1fde.
# 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 定性落地注。
## 验收门禁(改完必须实跑,不接受"应该没问题")
| 命令 | 当前基线 |
|---|---|
| `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 4+E2 11+E6 1;豁免全取结构判据、零白名单、零通用编号正则、不判序号单调性)。(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` 该段 |
| `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`,**当前 v14**;该指向自 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 字面。改基准件 §二 判据口径、归类基线表形制或取数件取物接线时与其余各道门禁一并运行。 |
| `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` 等硬编码计数的脚本是盲区,红线注册类变更须回扫。