scanned-standard-clause-verify · v1.2.0 · 2026-09-28 · sha256 7fc909b82fcb9243
scanned-standard-clause-verify v1.2.0A
Immutable. This exact content never changes and is served at /api/v1/blob/7fc909b82fcb9243.
--- name: scanned-standard-clause-verify description: 扫描版/文本版规范标准 PDF 的身份核验与条文原文核验流水线(S1 置信度核验)。当用户要求核验标准条文、官方核验、原文核对、标准入库核验、清除"待官方核验"标注、或给出标准编号/标准 PDF 要求确认其内容真实性时使用。不适用于技能文件内引用表格的复核(那由 prefab-standards-reviewer 负责)。 version: 1.2.0 --- # 标准条文核验流水线(scanned-standard-clause-verify) ## 定位 把"某标准某条文"从"声称存在"核验到"S1 级确认属实"的可重复流水线。源于装配式装修技能合集的官方核验实践(T/CECS 1018-2022、SJG 159-2024、DB33/T 1259-2021 等案例)。 S1 判定两要素:**官方发布 + 官方文本核验**。两要素齐备才标 S1;缺任一要素只能标"待官方核验",且不得单独支撑安全类 pass 结论。 ## 输入 - 标准编号(必需) - 本地官方出版物 PDF 或官方发布渠道线索(必需其一) - 待核验引用点清单(条文号/术语/限值/公式,可后续补充) ## P0 硬前置(先于 Step 1 执行,不可跳过) 三道硬前置是 `SSCV-R-P0-2` 对账步的前置面,**任何核验动作之前必须先执行**;机算预检由仓内工具 `程序文件/sscv_identity_precheck.py` 产出记录(四节:控制台编码自查/封面三要素机筛/文本层可用性实测/既有否证回读),记录随核验报告保存。 ### 前置一:封面页身份三要素硬前置 任何 PDF 进入核验流程,**p001(封面页)必须强制渲染(dpi≥150)并逐字目视**,三要素缺一不可: 1. **编号**:逐字读出标准编号;为占位符(如 `JC/T ××××—202×`)⇒ 该件非正式发布稿,不得作发布稿替代凭据。 2. **稿别自标**:封面自标"征求意见稿/送审稿/报批稿/草案"⇒ 该件为过程稿,**不得采信为发布稿**,即使其他页面内容看似完整。 3. **日期**:发布/实施日期为占位符(如 `202X-XX-XX`)⇒ 与 1、2 同判。 **不得自 p002 起渲染**(跳过封面=跳过本前置;CG-20260927-008 事故根因:渲染范围自 p002 起、封面页从未进入目视面)。工具机筛命中只是警示信号、**零命中不等于已核验**——已核验的唯一判据是核验报告中记录的逐字目视结果。 ### 前置二:「文本层不可用」类宣称的最小验证 任何"文本层不可用/乱码/cmap 缺陷"类判定在落档前**必须**附最小验证三件: 1. **抽取器实跑**:至少一种抽取器(PyMuPDF/pdfplumber 等)实跑全份或代表页,报告可提取字符数; 2. **U+FFFD 命中计数**:全份替换字符计数(为 0 才支持"不可用"结论); 3. **控制台编码自查**:先捕获 `sys.stdout.encoding` 再判——Windows 控制台 GBK 会把可提取的中文显示为乱码,**乱码表象不得径判 PDF 缺陷**(CG-20260927-008 事故根因:GBK 乱码被误诊为 PDF cmap 缺陷)。 ### 前置三:授权读法须回读既有否证 收到"可以采信某副本"类授权时,落档前**必须**对该件既有否定性判定逐条回读并显式处置(采信/不采信+理由);回读面=核验报告与仓内既有记录(`成果/`、`记录/`、`_专题_技能合集策划/`,工具按 sha256 指纹检索)。**授权改变的是采信口径,不解除文件自身缺项的登记义务**(CG-20260927-008 事故根因)。 ## 步骤 ### Step 1 身份核验 从官方出版物核验六要素:公告号(如有)、发布机构、发布日期、实施日期、主编单位、出版信息。 - **执行本步前先跑「P0 硬前置」**:封面页(p001)未经强制渲染与三要素逐字目视,本步不得开始;预检工具与记录要求见该节。 - **日期优先级**:PDF 封面 > 官方在线平台(如 openstd、全国标准信息公共服务平台)。封面与在线冲突时以封面为准。 - 扫描版 PDF 用 PyMuPDF 渲染(dpi≥150)后用 Read 视觉读取封面/公告页;文本版直接提取。 ### Step 2 版本形态判定 - 强水印重复出现 ≥3 次 → 判扫描版;辅助判据:可提取中文字符数异常低、机构名比例异常。 - 文本版注意:**目录顺序可能与正文不一致**,引用条目编号以正文实际出现位置为准。 ### Step 3 提取路径选择 「文本层不可用」类判定须附「前置二」最小验证三件(抽取器实跑/U+FFFD 命中计数/控制台编码自查),不得以乱码表象径判。 | 形态 | 路径 | |---|---| | 文本版 | pdfplumber 直接提取 | | 扫描版 | PyMuPDF dpi≥150 渲染 + Read 视觉读取(首选,T/CECS 案例验证有效);大篇幅再考虑 OCR 分块 | | 目次页偏移 | 目录页码常与 PDF 物理页不一致:先用一条已知条文定位实际页,算出偏移量再批量定位 | ### Step 4 官方文本缺失时的二手源降级链 仅当无官方文本可用时启用,且**须两源印证**: - 知乎转载页:WebFetch 返 403 → `chrome.exe --headless=new --dump-dom` + UA 伪装 + `--virtual-time-budget` 抓全文 - 建标库:WebFetch 重定向死循环 → `curl -A <UA>` 直抓 - 头条系:反爬严格,WebFetch 只返回验证脚本 → 浏览器自动化(open tab → navigate → get_page_text) - 地方标准:优先找住建局官方发布 PDF(SJG 159-2024 案例即此路径,官方发布 PDF 即满足 S1 两要素) ### Step 5 引用点逐条核对 每个待核验点输出核对表:条文号 | 核验内容 | 原文摘录 | 页码/位置 | 结论(一致/不一致/不存在)。"不存在"的条文号(如臆造条文)必须显式记录并全链删除。 ### Step 6 分级标注与登记 - 结论写入 standards-index(项目仓 `_专题_技能合集策划/standards-index.md`):核验记录表新增行 + 状态字段更新 + §八变更日志。 - 在 change-governance.md 登记变更编号(CG-YYYYMMDD-序号),级别按该文件第一节判定。 - 入库/重编号须按 prefab-governance-sync 技能的发布流程同步三层(项目仓 → 运行时根 → shared 镜像)。 ### Step 7 标注全链清除(核验完成后) 对活跃文件(combined_reference / SKILL.md / examples.md / 运行时技能文件)按下列变体模式清单逐一 grep 并清除;技能升版号(x.y.z 第三位)。 **变体模式清单**(实测出现过的变体,须全部执行,漏一项即残留): | 模式 | 实际形态示例 | |---|---| | 待官方核验 | 〔待官方核验〕降级标注 | | 条文号待核验 | 〔S1·条文号待核验〕 | | 待核验条文号 / 待补录标准 | "未决事项"表行 | | 未对全文核验 | "条文号/表号/具体条文未对全文核验" | **清除边界**:Step 7 只清技能内容文件中的降级标注;standards-index 的核验状态字段与备注(如"待核验""待补充官方来源")属索引记录,由 Step 6 更新,不在清除范围。裸词"待核验"不得作为清除模式——它是索引 schema 的合法状态枚举值(interface-contracts verification_status),裸匹配会误伤治理文件。 **零断言验收**:清除后对清单中每个模式在活跃文件范围重新 grep,须全部零命中;任一残留即视为清除未完成。 **历史草稿与过程报告不改写**(draft A/B 层、阶段报告、策划方案保持原样)。 ## 已知错误库(交叉验证锚点) 核验与复核时高频复现的错误,遇到直接对照: - GB 55030 实施日期是 2023-04-01,勿写成 2021 - 整体浴室应引 GB/T 36491-2018,非 CJ/T 164 - 耐火极限表出自 GB 50016-2014(2018年版) 表 5.1.2,非 GB 55037 - JC/T 882-2001 已废止;GB 45671-2025 代替 JC 1066(2025-11-01 实施) - T/CSUS 03-2019 / T/CSUS 48-2022 名称以官方封面为准(曾因 QA 误改全链回归) - GB 55030 优先范围限于其公告所称现行工程建设标准 - 封面自标「(征求意见稿)」的副本不得作发布稿凭据(CG-20260927-008:98 页征求意见稿曾被首轮误登为条文级核验;封面三要素见 P0 硬前置) - Windows 控制台 GBK 乱码不得径判文本层缺陷(CG-20260927-008:四抽取器实跑全份可读、U+FFFD 命中 0;先查控制台编码) ## 验收清单 - [ ] 封面页 p001 已强制渲染(dpi≥150)并逐字目视,三要素记录在案(预检记录已产出) - [ ] 「文本层不可用」类判定附最小验证三件(抽取器实跑/U+FFFD 命中计数/控制台编码自查) - [ ] 采信类授权已回读既有否证并逐条显式处置 - [ ] 六要素完整且标注核验来源(封面/公告页/官方平台) - [ ] 每个引用点有核对表记录(含原文摘录与页码) - [ ] S1 或"待官方核验"标注已落到 standards-index 对应行 - [ ] change-governance.md 变更日志已登记 CG 编号 - [ ] 活跃文件按 Step 7 变体模式清单 grep 零残留(若核验通过) - [ ] 三层同步完成(转 prefab-governance-sync 验收) ## 接口契约(IC-11 接收方) 本技能是 `interface-contracts.md` **IC-11(标准复核工具/任何技能 → 标准条文核验流水线)** 的接收方。 - **请求(发起方传递)**:标准编号(必填)、官方来源线索(必填,本地官方出版物 PDF 路径或官方发布渠道线索,二者必需其一)、待核验引用点(可选,条文号/术语/限值/公式清单)、项目所在地(可选)。 - **响应(本技能返回)**:身份核验(六要素 + 版本形态)、条文核对表(条文号|核验内容|原文摘录|页码位置|结论)、核验结论(S1 确认属实/待官方核验/无法核验)、核验报告路径、未决事项(条件必返回)。 - 字段约束与 IC-11-Request JSON Schema 见 `../shared/interface-contracts.md` §4.4 IC-11。 - 官方来源线索缺失时返回"参数不足",不得仅凭二手源发起核验(SSCV-R-P0-3)。 ## 红线约束(禁止行为) 本技能红线已在全局注册表 `../shared/redlines-registry.md` §十五注册(SSCV 标识,10 条:P0×3 + P1×4 + P2×3)。摘要如下,完整定义以注册表为准: | 编号 | 级别 | 红线 | |------|------|------| | SSCV-R-P0-1 | P0 | 严禁未核验即标 S1(两要素齐备方可标 S1,缺任一只能标"待官方核验",且不单独支撑安全类 pass) | | SSCV-R-P0-2 | P0 | 严禁提取结果未经复核对账即作核验原文(OCR/视觉提取须与原文影像逐条对账) | | SSCV-R-P0-3 | P0 | 严禁二手源结论升级为 S1(二手源仅限"待官方核验"或参考级) | | SSCV-R-P1-1 | P1 | 严禁跳过身份核验(六要素须从官方出版物取得并标注来源) | | SSCV-R-P1-2 | P1 | 严禁单一二手源采信(降级链须两源印证) | | SSCV-R-P1-3 | P1 | 严禁仅凭目录页码批量定位(须先定位实际页算偏移量) | | SSCV-R-P1-4 | P1 | 严禁静默跳过不存在的条文(疑似臆造须显式记录"不存在"并全链删除) | | SSCV-R-P2-1 | P2 | 必须记录原文摘录与位置(含核验来源标注) | | SSCV-R-P2-2 | P2 | 必须登记并同步(standards-index + change-governance + 层级同步) | | SSCV-R-P2-3 | P2 | 必须零残留验收(按变体模式清单 grep 复检零命中) | ## 环境依赖声明 本技能流水线依赖以下运行环境,缺失时须降级并明示: | 依赖 | 用途 | 缺失时降级 | |------|------|-----------| | PyMuPDF(fitz) | 扫描版 PDF 渲染(dpi≥150)为影像供视觉读取;身份预检工具(`程序文件/sscv_identity_precheck.py`)的封面渲染与文本层实测同赖本依赖 | 无法处理扫描版,仅能处理文本版或转人工;预检工具退出码 2 fail-closed | | Read 视觉读取 | 对渲染影像识别封面/公告页/条文 | 同上 | | pdfplumber | 文本版 PDF 直接提取 | 改用 PyMuPDF 文本提取或转人工 | | chrome headless(`--dump-dom`) | 知乎等反爬页面二手源抓取 | 换用其他二手源或标注无法核验 | | curl / WebFetch | 建标库等二手源直抓 | 同上 | | 浏览器自动化 | 头条系等强反爬二手源 | 同上 | 二手源依赖仅在无官方文本时启用(见 Step 4),且结论受 SSCV-R-P0-3 约束。 ## 输出物路由 核验产出统一路由,避免散落在临时目录: - **核验报告**:写入项目仓 `成果/标准核验/标准编号_核验报告_YYYYMMDD.md`(含六要素、条文核对表、结论、未决事项)。 - **索引登记**:核验结论写入 `_专题_技能合集策划/standards-index.md` 核验记录表与状态字段(见 Step 6)。 - **治理登记**:在 `_专题_技能合集策划/change-governance.md` 登记 CG 编号。 - **预检记录**:工具 `程序文件/sscv_identity_precheck.py`(仓内程序文件)产出的身份预检记录随核验报告保存至 `成果/标准核验/`;封面渲染影像落工具 `--out` 目录。 - 过程性中间产物(渲染影像、抓取原文)不进入 `成果/`,核验完成后按文件管理规范处置。 ## 协同边界 - 本技能管"从标准 PDF 取真";技能文件内引用表格的对表复核由 prefab-standards-reviewer 负责。 - 入库发布的三层同步与 git 提交由 prefab-governance-sync 负责。 - 核验发现引用错误后的修复定级(S/A/B/C)按 change-governance.md 执行。