M03 STD-Z 冲突裁决自动化规范
C:/Users/xub/.workbuddy/spec/3.行政法规/范式/M03_STD-Z_冲突裁决自动化规范.md文件编号:MASTER-RULE-ANNEX-Z-001
版本:V1.0.0 | 发布日期:2026-08-29 | 状态:附属工具文档(STD-Z-002 扩展模式,不改母规则正文)
上位基准:《MASTER RULE · 技术标准成文规范》V1.0.1(STD-Z 组 7 条款)
裁决器:~/.workbuddy/_tools/conflict_arbiter.py
冲突记录:~/.workbuddy/_tools/conflicts/conflict_log.jsonl(追加式,可回滚)
1 目的与范围
将自检清单中标注 [MANUAL] 的 STD-Z 冲突裁决流程(Z1/Z2/Z3)自动化,消除「新规则与母规则是否冲突」对人工语义判断的依赖,使裁决结果可追踪、可回滚。
适用对象:拟新增/修订的技术标准、规范、范式、SOP 类文档中的规则条款(编号 R、STD-、或自定编号)。
2 裁决触发条件
| 触发场景 | 说明 |
|---|---|
| T1 新规则登记 | 新规则 R 提交登记/发布前,自动触发裁决 |
| T2 升版新增条款 | 既有标准升版时新增 STD-X-NNN 或 R* 条款,触发 |
| T3 阈值修订 | 既有条款修订量化阈值(≥ 95% → ≥ 90%),触发 |
| T4 人工主动裁决 | 人工对某规则存疑时调用裁决器复核 |
| T5 定期巡检 | 每次母规则升版 / 每季度全量对已登记规则复裁(防漂移) |
3 冲突判定规则(四类)
3.1 结构冲突(C1)
定义:新规则 R 与母规则条款 S 存在「覆盖 / 替代 / 以本条为准」表述,且未走 STD-Z-004 升版流程。
判定式:R.text ∈ /覆盖|替代|以本条为准|推翻/ 且 ∄ 升版记录 → 冲突
3.2 语义冲突(C2)
定义:R 与 S 管辖同一成文对象(命名/章节/模态词/引用/附录/排版)但要求相反。
判定式:R.topic == S.topic 且 R.polarity ≠ S.polarity → 冲突
(polarity:必须/禁止 为强极性,应/宜/可 为弱极性;强 vs 弱、正 vs 反 均视为极性不同)
3.3 阈值冲突(C3)
定义:R 的量化阈值放宽了 S 的既有阈值(STD-Z-002「阈值不得放宽」)。
判定式:R.threshold < S.threshold(同方向比较,如达成率)或 R.threshold > S.threshold(反向比较,如误差率) → 冲突
放宽识别表:
| 方向 | 母规则阈值 | 新规则阈值 | 判定 |
|---|---|---|---|
| 下限(≥) | ≥ 95% | ≥ 90% | 放宽 → 冲突 |
| 上限(≤) | ≤ 2% | ≤ 5% | 放宽 → 冲突 |
| 下限(≥) | ≥ 95% | ≥ 97% | 收紧 → 合规(细化) |
| 上限(≤) | ≤ 2% | ≤ 1% | 收紧 → 合规(细化) |
3.4 词法冲突(C4)
定义:R 使用母规则 STD-D-008 黑名单词(原则上/按惯例/视情况/适当/酌情/等等/若干)或表外模态词(务必/一定要/尽量/最好),且处于非引述语境。
判定式:R.text ∩ 黑名单 ≠ ∅ 且 ∄ 引述豁免标记(STD-D-011 60 字窗口) → 冲突
4 默认策略(歧义时退回)
| 场景 | 默认策略 |
|---|---|
| R 与 S 冲突(C1/C2/C3/C4 任一命中) | 拒绝登记,返回「母规则优先」裁决结论(STD-Z-001) |
| R 为扩展(新增编号,无冲突条款) | 放行(STD-Z-002a) |
| R 为细化(阈值收紧 / 实施细节,未放宽) | 放行(STD-Z-002b) |
| R 与 S 关系不明确(判定器无法判定) | 退回人工,标记 NEED_REVIEW,不自动放行 |
| 人工裁决为「豁免」(如领域特殊性) | 需在冲突记录中写入豁免理由 + 批准人,方可登记 |
5 冲突记录输出格式(JSONL,可回滚)
每条冲突/裁决记录为 JSON 单行,追加写入 conflict_log.jsonl:
{
"seq": 1,
"ts": "2026-08-29T04:15:00+08:00",
"trigger": "T1",
"rule": {"id": "R20", "text": "文件流转时限按惯例 3 天", "topic": "时限", "threshold": null},
"clauses": [{"id": "STD-C-005", "text": "禁止出现「按惯例」等无锚点表述", "threshold": null}],
"conflicts": [{"type": "C4", "detail": "命中黑名单词「按惯例」,无引述豁免标记"}],
"verdict": "REJECT",
"strategy": "STD-Z-001 母规则优先",
"rollback": {"undo": "拒绝登记,R20 未入库", "redo": "删除登记即可回滚"},
"reviewer": null
}
字段说明:
| 字段 | 必填 | 说明 |
|---|---|---|
seq |
是 | 自增序号(唯一) |
ts |
是 | 裁决时间(ISO 8601 带时区) |
trigger |
是 | 触发场景 T1–T5 |
rule |
是 | 被裁规则(id/text/topic/threshold) |
clauses |
是 | 命中的母规则条款列表 |
conflicts |
是 | 冲突判定明细(type/detail) |
verdict |
是 | PASS / REJECT / NEED_REVIEW |
strategy |
是 | 采用的默认策略 |
rollback |
是 | 回滚动作描述(undo/redo) |
reviewer |
否 | 人工裁决人(NEED_REVIEW 必填) |
可回滚机制:
- 每条记录独立一行,删除对应 seq 行即撤销该裁决;
- REJECT 记录回滚 = 重新允许登记(redo 描述);
- 文件为追加式(append-only),不覆盖历史;每季度归档轮转。
6 裁决器 CLI(conflict_arbiter.py)
python conflict_arbiter.py check --rule "R20: 文件流转时限按惯例 3 天" --topic 时限
# 输出:裁决结论 + 命中条款 + 默认策略 + JSONL 记录号
python conflict_arbiter.py check --rule-file rules.json # 批量裁决
python conflict_arbiter.py log --tail 10 # 查看最近记录
python conflict_arbiter.py log --seq 3 --rollback # 回滚某条裁决
退出码:0 = PASS;1 = REJECT(存在冲突);2 = NEED_REVIEW(无法判定);3 = 参数错误。
7 验收标准
| 检查项 | 判定 |
|---|---|
| 触发条件 T1–T5 已定义 | ✅ |
| 四类冲突判定(C1 结构/C2 语义/C3 阈值/C4 词法)有判定式 | ✅ |
| 默认策略含「母规则优先 / 扩展放行 / 细化放行 / 人工退回」 | ✅ |
| JSONL 格式含 seq/ts/trigger/rule/clauses/conflicts/verdict/strategy/rollback/reviewer | ✅ |
| 裁决结果可回滚(按 seq 撤销) | ✅ |
| conflict_arbiter.py 已实现并自测通过 | ⏳ 待实现 |
8 修订记录
| 版本 | 修订日期 | 修订人 | 修订内容 |
|---|---|---|---|
| V1.0.0 | 2026-08-29 | 全域文件治理工作组 & 技术标准委员会 | 首版发布:STD-Z 冲突裁决自动化规范(触发条件/判定规则/默认策略/JSONL 格式) |
9 标准评审机制
本文件为母规则附属工具文档,随母规则升版周期同步评审。评审周期 ≤ 12 个月,发起主体为全域文件治理工作组。评审要点:冲突判定规则是否覆盖新增冲突形态、JSONL 格式是否满足追踪需求、裁决器基准表(BASE_THRESHOLDS)是否与母规则阈值同步。
10 定稿校核结论
本文件为裁决自动化规范附属文档,技术内容已达定稿条件。发布前未闭环行政事项:审核与批准签字(见 §11 审批记录,待定)。裁决器 conflict_arbiter.py 已实现并通过七组自测(C1/C2/C3/C4 冲突命中、扩展放行、引述豁免、JSONL 落盘与回滚)。
11 审批记录
| 角色 | 姓名 | 签字 | 日期 |
|---|---|---|---|
| 编制 | 全域文件治理工作组 & 技术标准委员会 | 2026-08-29 | |
| 审核 | (待定) | 须于发布前完成 | |
| 批准 | (待定) | 须于发布前完成 |
宪法 > 基本法 > 行政法规 > 地方法规 > 地方规章