返回板块

G12 治理件强制交付物断言技术标准

V1.1.02026-09-25行政法规 · 技术标准
源文件:C:/Users/xub/.workbuddy/spec/3.行政法规/范式/G12_治理件强制交付物断言技术标准_V1.1.0_2026-09-25_1520.md

版本:V1.1.0 | 编制日期:2026-08-26 | 本次修订:2026-09-25 | 状态:正式基准(已发布)· 全域强制
文件路径:C:\Users\xub\.workbuddy\spec\3.行政法规\范式\G12_治理件强制交付物断言技术标准_V1.1.0_2026-09-25_1520.md
文件路径:C:\Users\xub\.workbuddy\spec\3.行政法规\范式\G12_治理件强制交付物断言技术标准_V1.1.0_2026-09-25_1520.md
题名与文件名变更(2026-09-25):随受控对象由「四件套」改为「1 件套治理件」(单文件离线 HTML · 四分区合体,见 §1),本标准题名同步由《四件套强制交付物断言技术标准》改为《治理件强制交付物断言技术标准》,文件名同步改为 G12_治理件强制交付物断言技术标准_V1.1.0_2026-09-25_1520.md。全域引用(S06 两处闸门段、逻辑图生成器两处、工作流架构图 SKILL.md、《文档登记表》)已同步。
适用范围:全域所有触发「skill/专家迭代升版治理件」交付的场景——含 B1 更新 Skill、B2 更新专家(Agent)、S06 skill专家迭代SOP 闭环,以及 MEMORY §三.4 单报告配套治理件兜底路由。
上位关系:本标准与《全域文件工作流规则技术标准》(W1)第 3.4 节「工具链硬闸门」原则一致,为其治理件存在性断言的实现基准;W1 为顶层框架,本标准独立受控于 spec\3.行政法规\范式\,冲突时以 W1 总则为准。
权威实现:~/.workbuddy/_tools/assert_onefile.py(全域硬闸门工具,拒绝静默失败);旧名 assert_fourpiece.py 保留为兼容转发件,断言口径与本标准完全一致。
配套规范:命名约束见《全域文件命名规则技术标准》(N1);字体与版式约束见《HTML 治理件版式》(G22);生成约束见 W1/W2 + S06 迭代 SOP(fourpiece.emit_onefile())。

1 目的与定位

1.1 改前(V1.0.0 口径 · 已废)

四件套(技术规范要求 Word / 摘要 Word / 变更履历 Excel / 版本清单 Excel)是 W1/W2 全域文件规范 + S06 迭代 SOP 施加给 B1/B2 的外部强制交付物。四件(2 docx + 2 xlsx)分装同一批信息,生成与校验链路长、依赖重(python-docx + openpyxl)、失败面大。

1.2 改后(V1.1.0 口径 · 现行)

1 件套治理件=单文件离线 HTML,四类内容以「四分区」合体于同一文件:

分区 id 承载内容 对应改前四件
sec-spec 技术规范要求(所依据范式文件名与要点/新增规则/升级要求/迭代 SOP) 技术规范要求 Word
sec-summary 当前进展 + 遗留问题摘要(进展/已完成/遗留/下一步) 摘要 Word
sec-changelog 变更履历表(日期时间/变更文件/变更类型/变更说明/遗留问题) 变更履历 Excel
sec-version 版本清单表(交付物/类型/版本/状态) 版本清单 Excel

壳层四件(缺一不合规):header.docmeta(页眉)/nav.toc(目次)/main.article(正文)/footer.doc-foot(页脚)。

命名:<主题>_<YYYY-MM-DD_HHMM>_治理件.html(原「类型」四值合一为单值 治理件)。

本标准将「治理件存在性+四分区齐备+结构合规+字体声明合规」从一个隐含、可被跳过的约定,升级为可被工具链自动校验、不合规即拦截的硬闸门,纳入 W1 统一管控。

依据:炳哥 2026-09-25 裁定①(批准「四件套 → 1 件套」结构性改造 · 含双认期 1 轮)+《S06改单件_定标请求件_2026-09-25_1418》。

2 问题场景(明确化)

编号 场景 现象
S1 存在性不可见 在专家包/技能包业务上下文里天然查不到治理件,易误判"无需处理"
S2 静默失败 闭环仅判"产出目录存在"即放行,治理件未生成/未合规却无声过关
S3 异步时序差 治理件由生成器异步生成,可能晚于断言时机,被误判缺失
S4 双端漂移 workspace 端有、canonical 端无(或反向),单侧通过掩盖不一致
S5 静默空转(2026-09-25 新增) 字体闸对非 docx 对象(如 HTML)经 except 路返回 None,被调用侧读作「通过」——失去对象却不报错、也不干活

3 根因分析方向

方向 表现 本标准对策
异步加载时序 生成晚于校验时机 → 误判缺失 生成侧同步落盘 + 断言侧显式报「不存在」
条件判断错误 仅判目录存在 → 漏检分区/命名/空文件 分区存在性 + 命名正则 + 非空 + 列头逐字 + 时间戳唯一
权限过滤 只读致落盘失败但无异常上抛 读取包 try,权限异常显式报错
查询条件不匹配 命名未走 deliverable 正则 → "有文件但类型不对" 复用 deliverable 同款命名正则 ONEFILE_RE
契约三态混淆 None 同时表示「通过」与「不适用」 契约三态化:错误串 | None(通过)| NotApplicable(不适用);判读走 gb_font_state()

4 适用场景(触发边界)

满足任一即触发本标准断言:

  • T1:B1 更新 Skill 完成升版,准备 register / 发布前;
  • T2:B2 更新专家(Agent)完成升版,准备 register_expert.py 前;
  • T3:S06 skill专家迭代SOP 闭环进入「治理件生成→校验→注册」环节;
  • T4:MEMORY §三.4 单报告配套治理件兜底路由完成生成后。

触发后必须在下游动作(register / 发布 / 归档)之前运行本标准断言,非零退出即阻断下游。

5 核心规则(断言六要素)

对任意产出目录,硬闸门按以下顺序断言,任一不过即失败:

  1. 目录合规(双认期):有 Class B 件则该主题须「四件套齐全(存量口径)」或「治理件 1 件套(新制口径)」二者之一;由 deliverable.check_dir() 判。切勿写成「有 A/B 件则 1 件套必齐全」——那会让全部历史产出目录瞬间判不合规。
  2. 命名合规:治理件须命中 <主题>_<YYYY-MM-DD_HHMM>_治理件.html(与 deliverable.ONEFILE_RE 同款正则)。
  3. 分区齐备:sec-spec/sec-summary/sec-changelog/sec-version 四个 section[id] 必现,缺一即不合规(等价原「4 件必齐」)。
  4. 列头逐字:变更履历 5 列头、版本清单 4 列头逐字比对(等价原 Excel 列约束)。
  5. 非空 + 时间戳唯一:分区去标签后仍含正文;页眉 docmeta 标注时间戳 = 文件名时间戳,且页眉内不出现第二个时间戳(等价原「同批时间戳一致」)。
  6. 结构合规 + 字体声明合规:过 html_onefile_gate.py(零外链/零脚本/壳层四件/目次锚点对账/标签良构);字体层判「存在内联 font-family 声明 且 中文字体 ∈ 白名单」(白名单见 G22)。

双端一致(可选):canonical 端与 workspace 端同名件 sha256 相等;不一致即失败。载体为 _tools/check_dual_end.py(原 assert_fourpiece.py --dual 口径已随改造收窄)。

6 约束条件

  • C1(强制闸门位):断言必须置于 register_expert.py / 发布 / 归档之前串联,不得后置或省略。
  • C2(非零即阻断):退出码 ≠ 0 必须阻断下游并修复重跑,禁止以"目录存在"或"历史曾过"替代本次断言。
  • C3(禁止静默):任何缺失/不合规必须显式 ERROR 日志 + 非零退出,严禁吞异常、严禁空状态默认通过;禁以「返回 None 即通过」读字体闸(须走 gb_font_state() 三态判读)。
  • C4(命名唯一权威):治理件命名须由 deliverable.build_paths(..., onefile=True) 生成,不得手敲;本断言正则与 deliverable 同源。
  • C5(双端同源):Agent 型专家/跨端交付必须校验 canonical 端,根除 S4 漂移。
  • C6(闸门不自备标准):字体/版式判据真源在 G22《HTML 治理件版式》,脚本只实现、不自备标准(宪法第 16 条)。

7 执行要求

调用命令(B2 示例,建议串接 register):

python ~/.workbuddy/_tools/assert_onefile.py "<产出目录>" \
&& python ~/.workbuddy/plugins/marketplaces/workbuddy-builtin/skills/expert-manager/scripts/register_expert.py <expert-dir>

参数:

参数 必填 说明
<产出目录> ... 是 一个或多个 workspace 端产出目录(位置参数,可多传)
--root <工作区根> 否 递归该根下所有「产出」目录(跳过 .git/.workbuddy/.sync_snapshots/_archive)

旧名兼容:assert_fourpiece.py 为转发件,旧的命令行用法与 import 用法一律照旧可用,断言口径与 assert_onefile.py 完全一致。

8 可观测性与错误处理

日志层级:INFO 逐目录状态(✓/✗)、ERROR 含原因 + 现场文件。绝不静默。

退出码语义(V1.1.0 收窄:原 2/3/4/5 分级码随实现收窄为 1):

退出码 含义 处置
0 断言全部通过(含 --root 下全部目录) 放行下游
1 存在缺失:目录不合规 / 缺分区 / 列头不符 / 时间戳不唯一 / 未过结构闸 / 字体声明不合规 按打印的具体条目逐项修复后重跑
2 用法错误(未给目标目录) 补参数

边界覆盖清单:目录不存在、空目录、缺分区、命名错、列头不符、时间戳混装、结构闸不过、字体声明缺失或字体不在白名单——均已显式覆盖,无盲区。

9 与 W1 关系(统一管控)

  • 本标准与 W1 第 3.4 节「工具链硬闸门」 原则一致,为 W1 治理件断言的工具实现基准;本标准独立受控于 spec\3.行政法规\范式\,由 S06 迭代 SOP / B2 闭环脚本串联生效,不反向绑定 W1 具体条款号。
  • 工具链归属:本标准实现脚本 assert_onefile.py(+转发件 assert_fourpiece.py)与 naming_audit.py / check_deliverables.py / check_dual_end.py / expert_spec_gate.py 同列 W1 第 3.4 节"工具链硬闸门",为全域唯一权威。
  • 版本联动:本标准随 W1 工具链硬闸门相关修订而同步更新说明;变更在本文「版本变更记录」登记。

10 存量历史件与迁移策略

  • 读旧兼容:deliverable.check_dir() 保留对存量四件套(docx/xlsx)的识别,历史产出目录不因改制而误报「不合规」。
  • 写新统一:新制只出 1 件套治理件 HTML;不得再新增四件套。
  • 不追溯改写:不批量转换历史四件套为 HTML(避免二次风险与巨大改动面);如需,另立专项。
  • 过渡期:双认期 1 轮(读旧认 4 件、写新出 1 件),收窄时点由脑定。

版本变更记录

版本 日期 变更说明 编制人
V1.0.0 2026-08-26 首版发布:针对四件套"看不到/静默失败"问题,确立存在性硬闸门标准,绑定 assert_fourpiece.py,受 W1 3.4 工具链硬闸门管控(独立受控于 spec\3.行政法规\范式\,不反向绑定具体条款号) 全域文件治理工作组
V1.1.0 2026-09-25 「四件套 → 1 件套」改造:受控对象由四件套(2 Word + 2 Excel)改为 1 件套治理件(单文件离线 HTML · 四分区合体);断言内核改为「目录合规(双认期)+ 命名合规 + 四分区齐备 + 列头逐字 + 时间戳唯一 + 过结构闸 + 字体声明合规」;权威实现迁 assert_onefile.py(旧名转发);新增 S5「静默空转」场景与契约三态化(NotApplicable);退出码收窄为 0/1/2;字体判据真源外置至 G22《HTML 治理件版式》。依据:炳哥 2026-09-25 裁定① +《S06改单件_定标请求件_2026-09-25_1418》。题名与文件名同步改为《治理件强制交付物断言技术标准》(2026-09-25 炳哥裁定 · 原「改名另案待裁」已销项) 手(施工)· 裁定:炳哥

本轮同步(2026-10-01 · PP03 落地)

依据 PP03 M4(闸门语义)与 §8.3,治理件强制交付物断言增两项:

  1. 交付报告四字段断言:报告头必须含 标准版本/工具SHA256/成件SHA256/产物闸状态(PASS|FAIL(n)|SKIP(附理由));缺任一即判断言不通过。
  2. 双结论断言:交付报告必须分列「任务完成度」与「产物合格度」两个独立结论;合并为一句「全部通过」即判不通过。
  3. 批次新引入项断言:每批次收尾须报「本批自己引入的新缺陷数」,目标值为 0;非 0 须逐条说明。
利衡辨 · 全域资料站 | 全域七链元路由 · 一进一出
宪法 > 基本法 > 行政法规 > 地方法规 > 地方规章