> 执行细节(0 个章节 / 1 个代码块)已外置,执行前照读:references/implementation-details.md(grep: 实现细节)
法律/标准检索(zfl-legal-standard-retrieval)
六轴框架(总监理工程师 / 工作流优化 / 技能协作 / 数据 / 编排 / 法律检索)中唯一此前空缺的轴。本技能把它补上,定位为「监理业务的法规/标准底座」。
两种模式
模式 A · 离线引用校验(默认,确定性,零幻觉)
- 输入:任意文本/文档(审核报告、技能说明、公众号文章、标准引用段落)。
- 机制:
scripts/check_citation.py扫描文本中的标准号、法规文号、关键判定短语(如"90%达标率""10Ω接地""安全生产费"),对照references/standard_corpus.json已纠正基准库。四层核验:① 标准号(误引/旧版/未收录)② 关键短语提及但未引依据 ③ 法规文号存在性与时效(幽灵文号防线 + 超龄提醒;部门令「X令第N号」形态已并入本层判定——此前已登记令文号恒报 unknown,2026-09-30 修复)④ 条款级核验——第X条(N)的项号与上下文关键词一致性(基于clause_index,仅作提示,宁漏报不误报)。 - 历史编制时间维度(2026-09-26,--as-of):
--as-of YYYY-MM-DD按编制时点判定现行性——编制时已废止→stale、尚未实施→premature(提前引用)、当时有效→ok;缺省按当前日期。corpus 的impl_date/obsolete_date已从《有效通信工程建设标准名录(2026-01)》速查表灌入(2026-09-26 灌入;2026-10-01 两轮补强后 77/140 条带日期,null=无日期信息不参与判定)。 - 退出码(2026-09-26 修复):0=无 violation(含仅提醒项);1=检出 violation(硬错,供 if $? 把关);2=参数/读取错误。不再「打印❌却 exit 0」。
- 输出:每条引用给出 状态(现行/废止/误引/待确认) + 依据 + 修正建议。
- 适用:写报告/改技能/发文前「标准引用体检」,防止 AI 顺口编造年份/版本号;历史项目文档按编制年份加
--as-of复核,避免按 2026 年现行性误拦 2020 年项目。
模式 B · 在线现行性核验(需联网,走工作流)
- 输入:一个具体标准号(如
JGJ 80-2016)。 - 机制:
scripts/verify_standard.py先查离线库;未知或「待人工确认」时,输出推荐检索式 + PF 守卫清单(见references/pf_rules.md),由 Agent 执行 WebSearch/WebFetch。 - 铁律(来自 standard_watchdog 实证):
1. 两层计时器:库级"扫过"标记 ≠ 条级"核验过"标记,核验必须回写条级时间戳。
2. NA 禁刷戳:网络/权限无法核验时禁止写"已核验",必须判「待人工确认」;刷戳=伪造可信度。
3. 核验入口优先级:WebSearch「<标准号> 现行/废止/替代」> 官方源直接核验(openstd / std.samr 高级搜索精确接口,见下「官方源核验矩阵」)> 官方公告原文页 > 领域经验兜底。公共库站点模糊检索(gbQueryPage 全文检索等)返回空壳/错配页,不作首选入口;但高级搜索精确接口已逆向实证可用(2026-09-11),是官方确定性源。
4. 可数结论必须回发布机关公告原文:二手来源会增删条目、多次转载形成伪交叉验证,必须纠偏。
5. 公共库零结果 ≠ 不存在:收录边界≠存在边界(如 YD/T 5217/5218-2018 行业内部备案),判"待人工确认"不判"不存在"。
官方源核验矩阵(2026-09-11 逆向实证,web-app lib/standard_verify.js 已落地)
| 源 | 精确查询方式 | 返回 | 覆盖 | 注意 |
|---|---|---|---|---|
| openstd.samr.gov.cn 国家标准全文公开 | std_list_type?p.p1={1强制|2推荐}&p.p2={标准号} |
HTML 表格(tds[1]=标准号/tds[3]=名称/tds[4]=状态,tds[2] 空列) | 工农业类国标(含废止条目) | 不含工程建设类(GB 503xx/506xx/511xx 住建部归口)与 YD/T 行标;"未找到相关标准"=不覆盖(notCovered),不打扰本地库 |
| std.samr.gov.cn 全国标准信息公共服务平台 | ⚠️ 高级搜索 gbAdvancedSearchPage?tid=2&std_p4={标准号} 2026-09-23 实测已 404(站点改版,勿再依赖) |
详情页 HTML | 国标 + 行标(HB 通道) | 实测可用入口:国标详情 /gb/search/gbDetailed?id={id}、行标详情 /hb/search/stdHBDetailed?id={id}、按归口单位批量 /search/orgOthers?q={归口单位}(如「国家消防救援局」一次返回归口标准/计划/行标三张表)。详情页含时间线「废止 于 YYYY-MM-DD」+ 面板「被以下标准替代」「全部代替标准」;gbQueryPage 全文检索不精确(子串撞 PROJECT_ID,如搜 50319 返回 GB/T 17656-2008) |
| hbba.sacinfo.org.cn(YD/T 备案子平台) | /stdQueryList POST |
30634 固定蜜罐页(反爬) | — | 放弃;YD/T 现行性走工信部标准平台(查询带验证码)→ 人工核对 |
| 河南省平台 bz.hnsi.com.cn | — | robots 明确禁止自动访问 | — | 仅人工查询 |
| 工标库 gongbiaoku.com | /search?keyword= |
分词模糊匹配 | — | 目标标准无法精确定位(搜 GB/T 50319-2013 返回 GB 50300-2013),不可自动 |
收录边界铁律:工程类 GB 5xxxx 与 YD/T 行标,两个官方源均明示未收录(openstd help / samr tooltip「未纳入本系统,请咨询相关部委」)——官方零结果 ≠ 不存在,判「待人工确认」不判「不存在」。
被替代 ≠ 废止:废止以官方公告为准。GB/T 20269/20271/20282-2006 曾被误标"2019-08-30 废止",官方实际现行(已被 GB/T 22239-2019 技术替代但未废止)——底表按官方公告口径,替代≠废止,两字段分开记(replaced_by ≠ abolished)。
参考实现:web-app lib/standard_verify.js 的 onlineVerifyOpenstd(HTML 解析)/onlineVerifySamr(JSON 列表+详情增强)/mergeOnline(双源交叉、notCovered 不打扰、degraded 降级、asOfDate 编制回溯);验证脚本 scripts/verify_openstd_probe.mjs(60 条样本)/verify_samr_adapter.mjs(6 标准 6/6)/verify_asofdate_online_fix.mjs(5 场景)。
基准库结构(文号级 → 条款级 → 情形级)
references/standard_corpus.json 三级下沉,逐级回答更细的问题:
| 层级 | 字段 | 粒度 | 用途 |
|---|---|---|---|
| 文号级 | standards[] / doc_numbers{} |
一个标准/文号 | 存在性、现行性、替代关系、误引语境触发(misref) |
| 条款级 | clause_index[文号].clauses[第X条] |
一条 | 条款主题、项数 |
| 情形级 | clause_index[文号].clauses[第X条].items[] |
一项((X)=一种义务/情形) | 每项存 head(官方原文首句,已回原文校验)+ keywords,供「项号—上下文关键词一致性」提示 |
> 纪律:head 只放官方原文片段、keywords 只放判定高频词,绝不臆造;新增条款须回官方原文逐项校验后入库(本库 工信部通信〔2025〕51号 第八条 17 项已回 gov.cn 附件 PDF 全文逐项校验,pypdf 提取)。
> keywords 设计要点:不得含跨项通用词(如"作业审批"同时属于 (十一)(十二),会把误挂判成正常)——keywords 必须对该项有区分度,否则第 4 层形同虚设。
> status 第四态:现行 / 已公布未生效 / 被替代 / 废止 / 待人工确认。「已公布未生效」用于过渡期双轨(标准已公布而施行日未到,施行前仍执行旧版)——引用前先判文书日期,如 AQ 3067-2026 自 2026-09-30 起施行。
> 自测:python scripts/selftest_clause_layer.py(7 组正负样本)——条款层或 keywords 改动后必跑。
已知纠正基准(节选自 standard_corpus.json)
| 易错点 | 正确依据 | 错误依据(须拦截) |
|---|---|---|
| 光缆测试 90% 达标率 | YD/T 3328-2023 | YD/T 2400-2012 |
| 接地电阻 10Ω | GB 51158-2015 | GB 50847-2012 |
| 安全生产费 2% | 财资〔2022〕136号 | — |
| 监理规划/细则 | GB/T 50319-2013 | — |
| SDH 验收 | YD/T 5044-2014 | — |
标准全文库(离线条文检索)
references/standards_fulltext/(38 部)+ references/standards_excerpt/(10 部摘录)=离线条文库,
索引 references/standards_index.json。用途:把「引用条文」从凭记忆改为回原文——
corpus 管「标准号/文号对不对」,全文库管「条文内容/条款号对不对」,两者互补。
三档可信度(引用纪律,硬约束)
| 档位 | 数量 | 含义 | 引用纪律 |
|---|---|---|---|
fulltext |
37 | 干净全文、章节骨架完整 | 可直接引用条文(强制性条文仍须先核现行性) |
punct_broken |
0 | 汉字可读,标点错位(PDF 提取所致,条款号被写成「1.0 。 4」) | 现存 0 部(2026-09-23 已全部换源治理);新入件若落此档,引用前须回官方原文核对标点 |
excerpt |
10 | 摘录/残件(文件名带 摘要_ 前缀) |
不得作为条文引用依据,仅可答「是否对此有规定」 |
- 每件内嵌
<!-- meta -->头自述档位与引用纪律,脱离索引单独被读也不会被误用。 src_tier标来源等级(official官方源 /secondary二手站 /other/unknown)——
引用优先级:官方源 > 二手。二手来源件关键参数须交叉核对。- ★ 通信核心标准 5 部的来源限制(引用前必读):
GB 50689-2011/GB 51158-2015/
GB 51171-2016/GB 51194-2016/GB 51215-2017文字取自 gf.cabr-fire.com
(非官方汇编站,记other),另用 zhulouren.com 对抽样条文做双源逐字核对(一致)。两条硬限制:
① 表格仅存表题、表体为空(源站表格是图片、无文字层)——引用表格数据一律不可用;
② 非 T1 官方原文,引用条文(尤其强制性条文)前须回 std.samr.gov.cn / 工信部核对。
T1 通道实测不可得:openstd 不收录工程建设类国标、住建部公告页只有公告文字无全文附件、
建标库正文 JS 动态加载且文本同款错位。 - 源站每节末尾附「条文说明」,需纯条文时可按
条文说明标记截断。 - 缺口清单
references/standards_gaps.md:登记 10 部不可读/缺失标准(6 乱码 + 3 占位 + 1 空文件)。
引用前先查清单;命中缺口的引用判「待人工确认」,不得凭空补条文。
校验(改动全文库后必跑)
fulltext_quality.py 是判据单一真源(净化与校验共用,防「判定一套、校验另一套」分叉),
校验器内置正反样本自证(坏库必报红、干净件不报红)并比对索引声明与实测档位。
它另带 html_residue 判据专抓抓取件的 HTML 残渣(裸 <div、&Omega; 类实体)——
注意该规则必须容忍裸标记无闭合符,否则 0 命中会被误读成「零残留」。
换源重抓入库(SOP)
库内某件被判 punct_broken / garbled / excerpt,或现行性复核发现来源不可用时,
按 references/fulltext_refetch_sop.md 六步执行:
摸清旧件坏法 → 先实测排除 T1 再换源 → 归一到库内既有惯例(口径不由你定)→
截断审计(必做) → 备份 + 富化头部 + 索引改写 → 五道验收(含端到端双向)。
铁律速记:能读 ≠ 能定位 ≠ 能引用(三档分别设闸);
零命中必配「必然命中」的负样本(0 findings 有两种含义,日志只印数字);
降级 = 记真实分级 + 把限制写到每个消费点(文件头/索引/SKILL.md/缺口清单)+ 给最佳用途边界。
判据分工:den(常用规范词密度)分「可读/提取失败」;punct 分「干净/标点错位」;
rare 仅告警不判档(页眉乱码会污染占比,曾误伤 5 部真全文)。
现行性状态(2026-09-23 全库联网核验)
standards_index.json 每条含 status / replaced_by / note 三字段;核验口径记录在 _meta.verify。
「已入库」不等于「现行」——引用前先看 status:
| status | 数量 | 含义与引用纪律 |
|---|---|---|
现行 |
48 | 可用。⚠️ 但若 note 标注「部分强条被 GB 550xx 废止」,则该条文不得再作强制性依据(见 standards_gaps.md §1.1) |
已废止 |
6 | 禁止引用,须改引 replaced_by(GB 50500-2013 / GB 50281-2006 / GB 5725-2009 / GB 24539-2021 / GB 12011-2009 / GB 50462-2008) |
现行有效 |
1 | 应急管理部令第19号(2026-06-01 起施行) |
不存在(错录) |
1 | GB 8959-2022——官方三库均无此号,源包编造,禁止引用 |
核验通道(2026-09-23 实测,按可行性排序):
- 工农业类国标(GB/GB/T、非 5xxxx 号段)→
openstd状态列,一手且可自动(模板见上表)。 - 工程建设类 GB 5xxxx(住建部归口,含全部通信国标)→ openstd 与 std.samr 均明示不收录;
走住建部公告原文(mohurd.gov.cn/gongkai/zc/wjk/)+ 中国政府网政策文件库。 - 通信行标 YD/T → 工信部 / 中国通信标准化协会(CCSA)/ 全国标准信息公共服务平台 HB 详情页。
- 法规(部令) → 发布机关官网(如 mem.gov.cn)公告原文。
> ⚠️ 本领域已被 AI 生成内容污染:搜索「某标准是否已出新版」会命中大批虚构标准号与虚构公告号,
> 实测样本:GB 55036-2026、GB 55037-2026、GB/T 50319-2024/2025/2026、GB 50053-2025、
> GB 50168-2025、GB 50169-2025、GB 50300-2025、GB 50325-2025、GB 25201-2026、
> GB 6722-2025、GB 51158-2026、GB/T 50319-2025、GB 50300-2026、GB 50325-2026 —— 全部无官方公告支撑(2026-10-01 复核再次复现同款污染)。
> 判据:①官方源无发布记录 ②其公告号与真实号段冲突 ③文本含「常见问题解答」等非国标体例章节。
> 凡见「新版已发布 / 旧版已废止」,一律回公告原文核验后方可落笔。
失效标准自动拦截:13 条废止/被替代旧号已在 standard_corpus.json 登记替代关系,其中 12 条带语境触发的误引拦截规则(GB 50500-2013、GB 50281-2006、GB 5725-2009、GB 24539-2021、GB 12011-2009、GB 50462-2008、GB 2894-2008、GB 2893-2008、GB 7231-2003、JGJ 46-2005 等),
check_citation.py 会在引用时直接报 violation 并给出应引新号(改动后跑 --selftest 防回归)。
★ 下游知识库批量体检:对下游技能的 references / 清单 / 模板做全量「正面引用失效号」排查与批量修复,
按 references/batch_audit_workflow.md(七步)执行。工具:scripts/batch_citation_audit.py
(★内置正负样本自证,未过即拒出结论)+ scripts/ctx_extract.py(回原文抽上下文)。
三条硬纪律:①体检按 (文件, 号) 去重会低估规模 ⇒ 修复前先取全量计数;②定性必须看上下文
(实测 HARD 中约 85% 是「否定 / 替代说明」);③批量替换须带「按行极性跳过」
(否则会改掉「某标准替代了旧号」的说明行)。
政策线索(制度动态,非法源)
references/policy_signals/ 登记制度演进线索(如 PS-001 监理委托方式改革 2+N 方案),
索引在 standards_index.json 的 policy_signals 段——刻意与 standards / excerpts / gaps 分离。
为什么单列一段:doc_numbers 是「已核验存在性的法源」;政策线索是「待核验的信号」。
若把未核验内容混进 doc_numbers,check_citation.py 会对它产出 ok 判定——等于给未核实内容背书,
且一旦线索被误当法源引用,后果比"漏报"严重得多(漏报只是少查,误信是错引)。
铁律:
1. 禁作条文引用。线索只能用于判断"是否需要回官方核实",不能作为结论依据。
2. 多家转载 ≠ 独立信源交叉。3 篇自媒体解读同一政策事件,证据等级仍是 secondary_tertiary——
转载数不提升可信度(PF-639 只认正证据)。
3. 线索须列待核事项清单(文号 / 施行日期 / 适用范围),核验齐备才可升 evidence_tier=official。
4. 核验前,不得将该线索写入对客户的正式意见、投标文件或合同审查结论。
核验状态查询:standards_index.json 的 policy_signals[].verified 段记录confirmed(已核实项) / still_unverified(待核项)/ corrections(历次纠正)。evidence_tier 为 mixed 表示部分项已官方核实、部分项仍待核——此时可引用已核实部分,但须逐项对照 confirmed 清单,不可整体当作已核实。
已核实的官方文号(可作法源引用):鲁建质安字〔2024〕4号(山东省级部署)、东建字〔2025〕55号(东营落地,含不可竞争费比例)、济建发〔2026〕28号(济南,含"不得降低监理工作标准")——三条已入 doc_numbers,src_tier=official(2026-10-08 核)。
机检不读本段(check_citation.py 刻意不解析 policy_signals)——这是设计,不是遗漏。
与其他技能关系
- 被
zfl-report-verifier/zfl-telecom-completion-audit等审核类技能在「标准号防幻觉」环节调用(模式 A)。 - 审核类技能需核对条文内容/条款号时,读
references/standards_index.json定位全文库文件(模式 C)。 - 与
zfl-common标准映射保持单向引用,不重复维护;corpus 是唯一真源,技能升级只改 corpus。 - 是六轴里"法律检索"轴的入口;条文全文检索已落地,判例检索待建。
- 引用前须过提问前置校验(@see
zfl-common/references/socratic_probe.md):「该标准现行且适用」本身就是一条默认成立的前提,不得直接采信。引用任何标准号前先质询三项——①现行性是否已核(废止/被替代/未发布)②适用性是否已核(行业/地域/版本年代是否匹配本项目)③层级是否已核(国标/行标/企标冲突时以何为准)。三项任一未核 ⇒ 该引用不得进入结论区,须降级为「仍不确定」并写明关闭条件。
版本与来源一致性
SKILL.md / VERSION / CHANGELOG.md 版本号须一致(当前 0.6.22);standard_corpus.json 另有独立 _meta.version(当前 0.7.4,本轮 corpus 有改动故同步)。corpus 变更须在 CHANGELOG 记「现象/修复」句式。
约束与错误处理
- 本技能仅处理其声明范围内的任务,不越界执行未授权操作。
- 错误处理:输入不合法时返回明确错误说明,不静默跳过;依赖缺失时降级提示并给出替代路径。
不适用场景
- 不适用于需要实时交互或外部 API 调用的场景。
- 不适用于超出本技能声明范围的任务类型。
自检与成功标准
- 成功标准:输出满足任务声明的全部要求,关键信息完整无遗漏,视为完成。
- 输出前自检:核对输出是否覆盖全部要求项、数据是否准确、格式是否符合规范。