---
name: sop-generation-reference
description: "SOP生成详细参考 — 生成步骤(Step3-6+Phase Gate A/B/C)+模板选择规则引擎(13种环节类型)+SOP格式规范(14章金标准)+中断续传。从sop-generation-rules拆分而来，通过instruction字段引用按需读取，不直接注入system prompt。"
version: 1.8.0
author: MG-01 SOP编排专家
category: SOP生成
internal: true
triggers:
 - SOP生成参考
 - sop-generation-reference
keywords:
 - sop
 - generation
 - reference
 - 参考
---

# sop-generation-reference — SOP生成详细参考

## 触发条件

由 MG-01 SOP编排专家 `q1-step-02a~02d`（4个分片生成步骤）的 instruction 字段引用。在 SOP 生成过程中按需读取本文件获取详细步骤指导。

## 核心使命

提供 SOP 生成的详细过程性规则：生成步骤(Step3-6+Phase Gate)+模板选择规则引擎(13种环节类型)+SOP格式规范(14章金标准)。本文件从 sop-generation-rules 拆分而来，仅通过 instruction 字段引用，不直接注入 system prompt。

## Instructions

━━━━━━━━━━ sop-generation-steps ━━━━━━━━━━

# sop-generation-steps — SOP生成步骤与Phase Gate

## 触发条件

由 MG-01 SOP编排专家通过 `linkedSkillNames` 自动注入。在 workflow 执行阶段全程可用。

## 核心使命

SOP生成核心步骤 — Step4创建操作性SOP(含增强+锚点V3.0对齐)、Step5创建总纲SOP-000(含校验+全量清单检查)、Step6创建配套模板(含版本号统一规则)、Phase Gate A/B完成度检查、收尾格式抽查、逐文件写入前验证清单(8项SOP+5项模板)。

## 详细规则

**Step 4** 创建操作性 SOP（时间片：共享）

🚨🚨 **Step 4 章节结构强制约束（阻断级·V2.2.0新增）** 🚨🚨

> **核心规则**：所有操作性 SOP **必须使用标准 14 章骨架**，与框架型 SOP 完全一致。章节编号必须使用阿拉伯数字（`## 1.` / `## 2.` ... `## 14.`）。

**绝对禁止的 9 章精简格式**（Round-01 中 28 个操作性 SOP 的错误格式）：
```
❌ 1. 概述与目的          ← 应拆为"1.文档信息"+"2.目的与适用范围"两章
❌ 2. 适用范围            ← 应合并到"2.目的与适用范围"
❌ 3. 角色与职责          ← 应为"5.角色与职责"（前面需有§3术语+§4前置条件）
❌ 4. 流程节点与活动描述  ← 应拆为"6.任务架构"+"7.操作步骤详解"
❌ 5. 输入与输出物清单    ← 应分入"4.前置条件与输入"+"9.输出物与模板"
❌ 6. 业务差异化规则      ← 无对应标准章节，内容应融入§2.2/§7/§13
❌ 7. 关键控制点与合规要求 ← 应拆为"8.质控标准"+"12.合规与风险"
❌ 8. 异常处理与回退规则  ← 应为"13.例外处理"
❌ 9. 附件：模板引用      ← 应为"9.输出物与模板"
```

**✅ 唯一合法的 14 章结构（所有SOP类型通用）**：
```
## 1. 文档信息（| 属性 | 内容 | 表格，紧跟标题无独立标题行）
## 2. 目的与适用范围
### 2.1 目的
### 2.2 适用范围（含业务线完整定义）
## 3. 术语定义
### 3.1 流程核心术语
## 4. 前置条件与输入
## 5. 角色与职责
### 5.1 角色清单
### 5.2 RACI矩阵
## 6. 任务架构（操作性SOP）/ 规则架构（框架型）/ 任务架构（条件分支型）
## 7. 操作步骤详解
## 8. 质控标准
## 9. 输出物与模板
### 9.1 输出物清单
### 9.2 模板清单
## 10. 度量指标
## 11. 上下游衔接
## 12. 合规与风险
## 13. 例外处理
## 14. 版本与审批
```

🚫 **禁止省略任何一章**：即使是§3术语定义（可从SOP-000引用）和§10度量指标（可引用全局编号池），也必须作为独立章节存在。
🚫 **禁止使用引用块（`>`）作为元数据载体**：§1 文档信息必须使用 `| 属性 | 内容 |` 表格格式。
🚫 **禁止使用中文数字章节**：`## 第一章` / `## 第N章` 全部禁止，必须用 `## N.` 阿拉伯数字。
📌 此约束解决 Round-01 中完整性扣 -1.5 分（28个操作性SOP缺§10~§14）的核心根因。

🚨🚨 **Step 4 增强** 🚨🚨

🚨 **Step 3.5 ↔ Step 4 ↔ Step 7.8 接口契约表** 🚨

| 锚点字段 | 应用位置 | 约束强度 | 缺失降级策略 |
|:---------|:---------|:--------:|:-------------|
| roleDictionary | SOP §5 角色与职责 | MUST（强制） | 使用 SOP-000 §5 原始角色 + ⚠️ 警告 |
| terminologyDictionary | SOP §3 术语定义 | MUST（强制） | 保留空定义 + ⚠️ 警告 |
| businessLines | SOP §2.2 适用范围 | SHOULD（建议） | 使用通配符"全部业务线" + ⚠️ 警告 |
| versionBaseline | SOP §1 版本号 | MUST（强制） | 使用 SOP-000 §1 版本号 + ⚠️ 警告 |
| chapterStructureBaseline | SOP 章节骨架 | MUST（强制） | 使用标准 14 章模板 + ⚠️ 警告 |
| businessLineBaseline | SOP §2.2 业务线定义 | MUST（强制） | 使用简化定义 + ⚠️ 警告 |
| chapterFormatTemplate | SOP 所有章节标题格式 | MUST（强制） | 使用 ## N. 章节名 默认格式 + ⚠️ 警告 |
| metadataTemplate | SOP §1 文档信息表 | MUST（强制） | 使用最小模板 + ⚠️ 警告 |
| crossReferenceTable | SOP §11 上下游衔接 | SHOULD（建议） | 跳过跨引用 + ⚠️ 警告 |
| fieldTypeStandard | 模板字段类型 | MUST（强制） | 使用5种默认类型 + ⚠️ 警告 |
| raciStandard | SOP §5 RACI矩阵 | MUST（强制） | 使用R/A/C/I默认 + ⚠️ 警告 |
| sopBlueprint | SOP清单基准 | MUST（强制） | 使用Step 2c自动推导 + ⚠️ 警告 |
| costStructureTree | 成本结构引用 | MUST（强制·涉及成本SOP） | 从知识库提取 + ⚠️ 警告 |
| businessRulesIndex | 核心业务规则 | SHOULD（建议） | 跳过 + ⚠️ 警告 |
| versionInheritance | 版本继承链 | MUST（强制） | 使用V1.0默认 + ⚠️ 警告 |

📌 **一致性冲突解决优先级**：锚点文件 > 当前 SOP 上下文（锚点文件为唯一真相源）
📌 **锚点字段缺失时**：查 _metadata.incompleteFields，缺失字段约束降级为 SHOULD

在生成每个操作性 SOP（SOP-001~0XX）之前：

🚨🚨 **Step 4-PRE：全局一致性锚点文件存在性阻断检查** 🚨🚨
在开始生成任何操作性SOP之前，**必须先检查锚点文件是否存在**：

```
检查路径：{知识库路径}/循环轮次/全局一致性锚点.json
if 文件不存在:
 → 🚫 强制阻断，禁止进入 Step 4
 → 输出：❌ 全局一致性锚点文件缺失：{知识库路径}/循环轮次/全局一致性锚点.json
 → 处理方案：
 方案A（优先）：回退到 Step 3.5，执行锚点提取并写入文件
 方案B：如 Step 3.5 已执行但文件丢失 → 从 SOP-000 重新提取锚点数据并写入
 → 锚点文件写入成功后，方可进入 Step 4
```

**锚点文件完整性预检**（文件存在后执行）：
```
读取锚点文件后，检查以下必填字段：
- roleDictionary.length ≥ 1 → ✅/❌
- terminologyDictionary.length ≥ 1 → ✅/❌
- businessLines.length ≥ 1 → ✅/❌
- sopBlueprint.length ≥ 1 → ✅/❌
- roleWhitelist 存在 → ✅/❌
如任一必填字段为空 → ⚠️ 警告，但不阻断（使用降级策略）
如 roleWhitelist 不存在 → 从 roleDictionary 自动构建 roleWhitelist
```

📌 此检查解决 Eval-01 中 003 任务目录缺少锚点文件的根因。
📌 锚点缺失时LLM无法执行角色一致性校验，导致 B-01/B-02/H-02~H-04 共6个问题。

1. **读取全局一致性锚点**：读取 `{知识库路径}/循环轮次/全局一致性锚点.json`
2. **在生成的 SOP 内容中强制应用以下约束**：
 a. **§5 角色与职责**：角色代码和名称必须 100% 匹配 roleDictionary，禁止使用 aliases 或自创新名称
 b. **§3 术语定义**：术语定义必须 100% 匹配 terminologyDictionary，禁止自创定义
 c. **§2.2 适用范围**：业务线列表必须匹配 businessLines
 d. **§1 文档信息**：版本号必须匹配 versionBaseline
 e. **§6-§14 章节结构**：必须使用标准 14 章骨架（章节主标题不可修改）
 f. **§2.2 业务线完整定义**：业务线定义必须 100% 匹配 businessLineBaseline（含代码+中文名+英文全称+适用范围+利润率底线），禁止使用简化定义
 g. **章节标题格式**：所有章节标题必须严格使用 chapterFormatTemplate.formatRule 定义的格式（## N. 章节名），禁止使用 ## 第一章 / ## §1 等非标准格式
 h. **§1 元数据表格**：文档信息章节必须使用 metadataTemplate.tableFormat 定义的表格格式，requiredFields 中的所有字段必须出现
 i. **§11 跨SOP引用**：引用其他SOP时必须使用 crossReferenceTable 中的 standardName，禁止自行创造引用名称
 j. **模板字段类型**：所有模板（TMP）文件中的字段类型必须使用 fieldTypeStandard 中定义的5种标准类型之一（String/Number/Date/Enum/Text）
 k. **RACI角色标注**：所有RACI矩阵中仅允许使用 raciStandard 中定义的4种角色（R/A/C/I），禁止使用S/E/M/O等非标准角色代码

🚨🚨 **Step 4 步骤卡格式强制自检（统一 · 阻断级 · 消除三方不一致）** 🚨🚨
在每个操作性SOP生成完成后、写入文件前，必须对§7操作步骤详解中的每个步骤卡执行以下强制自检：

**标准步骤卡格式（唯一标准，统一 · 禁止变体）**：

> ⚠️ 说明：此前存在三套不一致的字段定义（表格版/V1.4.0锁定版/实际SOP散文版），现统一为以下标准格式。所有新生成和增量修复的SOP必须遵守此格式。

```markdown
#### 步骤 {N}：{步骤名称}

**执行角色**：{角色编码}（{角色名称}）
**协作角色**：{配合角色编码}（如有，否则填"—"）
**前置条件**：{启动该步骤的前提条件}
**操作目的**：{本步骤要达成的目标}
**操作指引**：
1. {子步骤1}
2. {子步骤2}
3. {子步骤3}
**判断标准**：{量化判断条件，必须含数值或可判定准则}
**输入物**：{输入文件/数据/记录名称}
**输出物**：{输出文件/记录/交付物名称}
**验收清单**：
- [ ] {检查项1}
- [ ] {检查项2}
**后置动作**：{触发的下游动作/状态更新/通知}
**异常触发条件**：若{条件}，则{处理方式}，升级至{角色}（参照§13）
**时效要求**：{SLA时限}（参照TF-001）
**关联模板**：{TMP-NNN 模板名称}（如有，否则填"—"）
```

**15字段说明**：
- 必填字段（12个）：步骤编号、步骤名称、执行角色、前置条件、操作目的、操作指引、判断标准、输入物、输出物、验收清单、后置动作、异常触发条件
- 条件必填（3个）：协作角色（有配合角色时必填）、时效要求（所有步骤必填）、关联模板（有对应模板时必填）

🚫 **禁止字段名称变体**（统一）：
- ❌ "责任人"/"负责角色" → ✅ "执行角色"
- ❌ "参与角色" → ✅ "协作角色"
- ❌ "操作说明"/"操作动作"/"操作步骤" → ✅ "操作指引"
- ❌ "交付物" → ✅ "输出物"
- ❌ "例外处理" → ✅ "异常触发条件"
- ❌ "超时设置" → ✅ "时效要求"
- ❌ "质控标准" → ✅ "判断标准"

自检项：
1. **字段名一致性**：每个步骤卡中的字段名称必须与上述标准完全一致
2. **字段完整性**：每个步骤卡必须包含全部12个必填字段，缺一不可
3. **格式统一性**：所有操作性SOP的步骤卡必须使用相同的散文+加粗标签格式
4. **判断标准量化**：判断标准字段必须含数值或可判定准则，禁止模糊描述

🚫 不符合标准格式的步骤卡 → 立即修正后再写入文件
🚫 禁止跳过此自检

3. **生成完成后，执行"一致性快照校验"**：
 - 提取本 SOP §5 中的角色列表，与 roleDictionary 逐一比对
 - 提取本 SOP §3 中的术语列表，与 terminologyDictionary 逐一比对
 - 不一致 → 立即修正后写入文件
 - 输出校验结果：`✅ SOP-{NNN} 一致性校验通过（角色X个/术语Y个 全部匹配）` 或 `❌ SOP-{NNN} 一致性校验失败：{差异清单} → 已自动修正`
 - 🚨 **持久化要求**：每个 SOP 的校验结果必须追加写入 `{知识库路径}/循环轮次/一致性校验记录.md`，格式：
 `| SOP-{NNN} | {timestamp} | ✅/❌ | 角色{X}个/术语{Y}个 | {差异清单或"全部匹配"} |`

🚨🚨 **Step 4 增强：锚点 V2.0 强制注入** 🚨🚨

在生成每个 SOP 时，除应用 V1.0 的 roleDictionary/terminologyDictionary 外，还必须强制注入以下 V2.0 约束：

**注入1：业务线基准定义（businessLineBaseline）
- §2.2 业务线定义必须 100% 匹配 businessLineBaseline
- 必须使用完整定义（含英文名+适用范围+利润率底线）
- 🚫 禁止自创业务线名称（如"创新药事业部"/"临床研究"等非标准名称）

**注入2：章节格式样板（chapterFormatTemplate）
- 所有章节标题必须使用 chapterFormatTemplate.format 格式
- 🚫 禁止使用中文数字章节/§前缀/无点号格式

**注入3：元数据标准模板（metadataTemplate）
- §1 文档信息必须包含 metadataTemplate.requiredFields 全部字段
- 表格格式必须为 | 属性 | 内容 |

**注入4：跨SOP引用名称（crossReferenceTable）
- 引用其他SOP必须使用 crossReferenceTable 中的正式名称
- 🚫 禁止使用缩写或别名（如禁止"订单管理SOP"代替"合同管理SOP"）

**注入5：字段类型标准（fieldTypeStandard）
- 模板字段类型必须使用 5 种标准类型之一
- 🚫 禁止使用"文本"/"数字"/"下拉选择"等非标准类型

**注入6：RACI角色标准（raciStandard）
- RACI矩阵仅允许 R/A/C/I 四种角色
- 🚫 禁止使用 S/E/Q 等非标准角色标记

**注入7：B1-B5场景覆盖清单强制确认
读取 {知识库路径}/循环轮次/B1-B5场景覆盖清单.md，根据当前SOP职责逐项确认：
- ✅ = 已覆盖（SOP中有对应内容）
- ❌ = 未覆盖（必须补充后再写入）
- ⬜ = 不适用（标注"不适用"）
🚫 禁止在未确认B1-B5覆盖状态的情况下写入SOP文件

**注入8：量化基准估算规则
读取 {知识库路径}/循环轮次/量化基准估算规则.md：
- 所有量化参数使用标准估算标注格式（📌前缀）
- 🚫 禁止无标注的硬编码数值

**注入9：Phase 2评估维度预注入
读取 {知识库路径}/循环轮次/Phase2评估维度预注入.md：
- §7步骤标注可自动化步骤（产品化可行性）
- §10度量指标定义"数据来源"和"监控频率"（量化指标可度量）
- 模板字段使用标准类型（数据字段映射）

🚫 **禁止在不读取锚点文件的情况下生成 SOP
🚫 **禁止在生成后跳过一致性快照校验
🚨🚨 **角色引用一致性后置校验** 🚨🚨
在所有SOP文件生成完成后、Step 5.5校验之前，执行角色引用一致性校验：

1. **扫描所有生成的SOP文件**，提取所有角色引用（形如XX-{NN}的编码，如AR-01/SR-01/MG-04等）
2. **与roleDictionary交叉比对**：检查每个角色引用是否都在锚点V3.1的roleDictionary中定义
3. **如发现未定义角色引用**：
 → 方案A（优先）：在SOP-000 §5.1角色清单和roleDictionary中补充该角色定义（需判断角色是否合理）
 → 方案B：将未定义角色引用替换为最接近的已定义角色（需标注⚠️已调整）
4. **更新全局一致性锚点**中的roleDictionary
5. **输出校验结果**到{知识库路径}/循环轮次/角色引用一致性校验.json

校验报告格式：
```
📊 角色引用一致性校验报告：
✅ 已定义角色引用：{N}个
⚠️ 新增角色定义：{M}个（方案A补充）
🔄 已替换角色引用：{K}个（方案B替换）
📋 最终判定：✅通过/❌不通过
```

🚫 **禁止跳过此校验**：角色引用一致性是跨SOP一致性的核心保障

🚨🚨 **角色白名单锁定机制** 🚨🚨

在 SOP-000 生成完成并提取 roleDictionary 后，立即执行**角色白名单锁定**：

**锁定规则**：
1. **白名单生成**：从 SOP-000 §5.1 角色清单中提取所有角色代码，生成角色白名单 roleWhitelist 集合
2. **白名单写入锚点**：将角色白名单写入全局一致性锚点.json 的 `roleWhitelist` 字段
3. **子SOP生成约束**：所有后续生成的操作性SOP（SOP-001~0XX），其步骤卡中引用的**每一个角色代码**（执行角色+协作角色）必须 100% 属于 roleWhitelist
4. **🚫 禁止引入新角色**：子SOP**绝对禁止**引入 roleWhitelist 中不存在的角色代码。如需新角色，必须先回退到 SOP-000 §5 补充定义并更新白名单后，方可继续
5. **RACI矩阵角色完整性**：每个SOP的 §5.1 RACI矩阵必须覆盖该SOP步骤卡中引用的**所有角色**，禁止步骤卡中使用了某角色但RACI矩阵中未列出

**处理流程**（当子SOP需要引用白名单外的角色时）：
```
if 子SOP步骤卡中引用了角色X 且 角色X ∉ roleWhitelist:
 → 🚫 阻断该SOP生成
 → 输出：⚠️ 角色白名单冲突：{角色X代码}未在SOP-000§5.1中定义
 → 方案A（优先）：回退到SOP-000 §5.1 补充定义角色X → 更新roleWhitelist → 重新生成该SOP
 → 方案B：将角色X替换为白名单中最接近的角色（标注⚠️已替换）
```

**RACI矩阵-步骤卡交叉校验（每个SOP写入前强制执行）**：
1. 提取该SOP §7 所有步骤卡中的角色引用集合 = {执行角色 ∪ 协作角色}
2. 提取该SOP §5.1 RACI矩阵中的角色集合
3. 交叉比对：
 - if 步骤卡角色集合 ⊄ RACI角色集合:
 → 🚫 阻断，补充RACI矩阵中缺失的角色行
 → 输出：❌ RACI矩阵缺失：{角色列表} 在步骤卡中被引用但未在RACI中列出
 - if RACI角色集合 ⊄ 步骤卡角色集合:
 → ⚠️ 警告：RACI矩阵中有角色未在步骤卡中使用（可能遗漏步骤）
4. 🚫 禁止跳过此校验
5. 🚫 禁止在RACI校验不通过时写入文件

📌 此规则解决 Eval-01 中 5 个角色相关问题的根因：
- B-01/B-02：FR-01/FR-06 未定义即被引用 → 白名单锁定可预防
- H-02/H-03/H-04：RACI矩阵缺少角色 → 交叉校验可预防

🚨🚨 **B1-B5场景覆盖强制注入** 🚨🚨

在生成每个SOP时，必须读取 {知识库路径}/下一步计划.md 中的"B1-B5场景覆盖清单"章节，并根据本SOP的职责逐项确认覆盖情况：

1. **逐维度确认**：对于B1-B5每个维度，判断本SOP是否涉及：
 - 涉及 → 必须在SOP内容中体现该维度的要求（如在§7操作步骤中定义成本计算流程、例外处理流程等）
 - 不涉及 → 在SOP的§12合规与风险或§13例外处理中标注"本SOP不涉及{维度名称}场景"

2. **覆盖证据要求**：每个必须覆盖的B1-B5子项，必须在SOP中有对应的内容段落，Q2验证时将逐项检查

3. **特别关注**：
 - B1 成本底线：涉及报价/成本的SOP必须包含成本类型定义+计算公式+利润率底线引用
 - B2 例外处理：所有SOP必须定义至少5类例外场景+处理流程+审批权限+升级路径
 - B3 混合业务场景（显式枚举 · 解决RC-05）：
 - B3-1 主导业务线判定规则：当客户需求涉及多业务线时，如何确定主导业务线
 - B3-2 多业务线并行核算：多业务线并行时成本如何分别核算并汇总
 - B3-3 混合业务回款方案：混合业务的回款拆分/核销规则
 - B3-4 混合业务补充条款：混合业务合同的补充条款模板/规范
 - B3-5 混合业务核销：混合业务的财务核销流程
 → SOP-000 §13必须定义"混合业务场景"例外处理章节覆盖B3-2~B3-5
 → 涉及多业务线的操作性SOP必须在§7中体现并行核算/回款拆分逻辑
 - B4 循环工作流化：包含循环流程的SOP必须定义量化退出条件（如"最多循环N次"）+ 超轮次升级路径
 - B5 业务场景变体穷举：
 - B5-1 付款结构变体：涉及付款的SOP必须穷举所有付款结构变体，包括但不限于：
 - 标准里程碑付款（如30%/40%/30%）
 - 100%预付款（签约后直接触发开票→回款→核销）
 - 0%预付+验收后全额付款
 - 按阶段/按用量付费变体
 🚫 禁止仅定义标准付款结构而忽略特殊变体
 📌 每个付款变体必须在SOP §7步骤卡中有对应的分支路径
 - B5-2 回退/回滚路径穷举：涉及谈判/审批/评审的SOP必须定义所有可能的回退场景：
 - 客户修改需求 → 返回上一版本重做
 - 评审驳回 → 返回修改后重新提交
 - 范围变更超过阈值（如>20%）→ 触发完整回退链（需求分析→报价→评审→审批）
 - 预算差距过大 → 终止/升级审批
 🚫 禁止仅定义"返回修改"而不定义具体回退到哪个步骤
 📌 回退路径必须在§6.2流程流转规则和§7步骤卡中同步定义

🚨🚨 **跨SOP规则传递机制** 🚨🚨

SOP-000 §13 例外处理中定义的规则必须传递到各操作性SOP中。传递机制如下：

**传递规则**：
1. **SOP-000 §13 例外 → 操作性SOP §7步骤卡**：
 - 对 SOP-000 §13 中的每个例外场景（EX-01~EX-NN），识别其关联的操作性SOP
 - 在关联SOP的 §7 步骤卡中，必须定义该例外的**具体处理步骤**（触发条件→处理动作→回退路径→升级规则）
 - 🚫 禁止SOP-000 §13 有例外定义但操作性SOP中无对应处理步骤

2. **SOP-000 §13 例外 → 操作性SOP §13 例外**：
 - 操作性SOP的 §13 例外处理必须与 SOP-000 §13 保持**层级一致
 - SOP-000定义的是流程级例外（跨SOP），操作性SOP定义的是步骤级例外（单SOP内）
 - 🚫 禁止操作性SOP §13 与 SOP-000 §13 矛盾

3. **SOP-000 §8 质控标准 → 操作性SOP §8 质控标准**：
 - 流程级质控标准必须分解到各操作性SOP的步骤级质控标准中
 - 🚫 禁止SOP-000有质控要求但操作性SOP中无对应质控点

4. **SOP-000 §12 合规 → 操作性SOP §12 合规**：
 - 合规要求必须传递到相关操作性SOP
 - 🚫 禁止合规要求仅停留在SOP-000层面

**校验方法（每个操作性SOP生成后执行）**：
```
for each 例外场景 in SOP-000 §13:
 找到关联的操作性SOP
 if 该SOP §7 步骤卡中无对应处理步骤:
 → 🚫 阻断：{例外编号} 未在 {SOP名称} 中传递
 if 该SOP §13 中无对应例外条目:
 → ⚠️ 警告：{例外编号} 在 {SOP名称} §13 中缺失
```

📌 此规则解决 Eval-01 B-04 的根因：SOP-000 §13 EX-06（交付范围变更>20%）未在 SOP-003 步骤卡中定义回退链。

🚨🚨 **量化基准估算规则强制注入** 🚨🚨

在生成SOP和模板时，当知识库中缺乏量化参数，必须使用 {知识库路径}/下一步计划.md 中的"量化基准估算规则"：

1. **时限类参数**：基于行业经验估算，格式为"X个工作日（📌估算值）"
2. **比率类参数**：基于行业标准估算，格式为"X%（📌估算值，待财务确认）"
3. **次数类参数**：基于流程复杂度估算，格式为"≤N次（📌估算值）"
4. **金额类参数**：基于业务规模估算，格式为"¥X万（📌估算值，待财务确认）"

🚫 **禁止静默使用估算值**：所有估算值必须用📌前缀标注
🚫 **禁止编造数值**：如无法合理估算，标注"[字段缺失·待补充]"

🚨🚨 **Phase 2评估维度预注入** 🚨🚨

在生成SOP时，必须考虑Phase 2（产品化分析评估）的评估维度，确保Q1生成的SOP可直接通过Phase 2评估：

1. **产品化可行性**：每个SOP的§7操作步骤中，必须标注哪些步骤可由系统自动化（用🤖标识）、哪些必须人工执行（用👤标识）
2. **数据字段映射**：模板中的每个字段必须使用标准字段类型（从锚点V2.0 fieldTypeStandard 获取），确保可映射到数据库字段
3. **流程可配置性**：SOP-TF-001（任务框架型SOP）必须定义完整的流程配置清单，包括：流程节点/触发条件/审批规则/超时策略
4. **角色权限映射**：RACI矩阵中的角色必须使用标准角色编码（从锚点V2.0 roleDictionary 获取），确保可映射到系统权限
5. **量化指标可度量**：§10度量指标必须定义"数据来源"（从哪个系统/表单获取）和"监控频率"（实时/日/周/月），确保可在系统中自动监控

 **强制命名与内容规则（V8.5.7标准化）**：
- 文件命名：`HY-G-{流程代码}-SOP-{三位序号} {SOP流程名称}SOP（V{版本号}）.md`（序号从001开始连续递增，编号与名称之间有空格，必须包含版本号）
- 示例：`HY-G-{流程代码}-SOP-001 {SOP名称1}（V{N}.0）.md`、`HY-G-{流程代码}-SOP-002 {SOP名称2}（V{N}.0）.md`
- 支撑流程型SOP使用特殊编号：`HY-G-{流程代码}-SOP-SUP-{三位序号} {名称}SOP（V{版本号}）.md`
- 任务框架型SOP使用特殊编号：`HY-G-{流程代码}-SOP-TF-{三位序号} {名称}SOP（V{版本号}）.md`
- 🚨 **章节编号必须使用阿拉伯数字**（## 1. 文档信息 / ## 2. 目的与适用范围 ... ## 14. 版本与审批 + 附录），🚫禁止使用中文数字（第一章/第二章）
- 🚨 **第1章文档信息必须使用表格格式**（| 属性 | 内容 |），必填字段：SOP编号/SOP名称/任务类型/版本号/生效日期/编制部门/流程Owner/适用业务线。🚨 **关联总纲字段按类型区分**：SOP-000总纲❗无此字段（自身就是总纲）；操作性SOP/条件分支型SOP✅必须有此字段（Markdown链接指向总纲文件）；任务框架型SOP⚠️可选（实际LTC-SOP-011无、SOP-012有）；规则型SOP⚠️可选。表格后附版本升级说明（引用块格式）
- 🚨 **§6标题按SOP类型适配**：总纲(SOP-000)→“流程架构” / 操作性SOP→“任务架构” / 任务框架型SOP→“规则架构” / 条件分支型SOP→“任务架构” / 规则型SOP→“规则架构”。步骤总览表必须使用7列（步骤/步骤名称/步骤类型/执行引擎/执行者/下一节点/输出），步骤类型使用⚙️标识
- 🚨 **§7操作步骤详解**：每个步骤30-40行，包含：操作目的（1-2句）+操作指引（编号列表，4-8项）+AI辅助（AI辅助说明）+时效要求+判断标准（如适用）+输入物详细引用（引用模板编号+版本）+验收清单+下一节点（含本SOP内跳转+跨SOP跳转）
- 🚨 **§13例外处理量化时限强制规则**：§13例外处理中的每个异常场景必须包含量化时限（工作日），禁止使用"原则上不承接""需审批""及时处理"等无时限表述。方案评审退回→修改工作日数、线索退回→介入响应时限、商务谈判→具体时限、审批超时→升级时限
- 🚨 **估算值确认流程强制规则**：涉及费率/成本估算的SOP，必须在§14附录中定义估算值确认流程（财务确认时限+过渡期管控+更新发布流程）。禁止估算值未经📌标注直接使用
- 每个SOP必须包含：14章+附录完整结构 + 字段覆盖（§H-§J节点类型对齐） + 业务完整性（§18 31项）
- 🚨 **SOP数量必须满足Step 2拆解结果**（按角色×业务环节×审批节点动态计算），禁止预设固定数量

🚨🚨 **标准 14 章骨架模板** 🚨🚨

每个 SOP 生成时，必须先输出以下骨架（章节标题不可修改），然后填充内容：

```
## 1. 文档信息
## 2. 目的与适用范围
### 2.1 目的
### 2.2 适用范围
## 3. 术语定义
### 3.1 流程核心术语
## 4. 前置条件与输入
## 5. 角色与职责
## 6. {按SOP类型适配} ← 见下方适配规则
## 7. 操作步骤详解 ← 所有类型统一
## 8. 质控标准 ← 所有类型统一
## 9. 输出物与模板
### 9.1 输出物清单
### 9.2 模板清单
## 10. 度量指标
## 11. 上下游衔接
## 12. 合规与风险
## 13. 例外处理
## 14. 版本与审批
```

🚫 禁止修改上述 14 个主章节的标题文字和编号
🚫 禁止缺少任何一章（§14 版本与审批 即使是支撑型 SOP 也必须包含）
🚫 禁止在 14 章之外自创额外主章节（子章节 ### 可以自由添加）
📌 §6-§8 的子标题可按 SOP 类型适配，但主标题编号（## 6. / ## 7. / ## 8.）不可变

🚨🚨 **Step 5.5：跨文档一致性自动校验** 🚨🚨

在所有SOP和模板文件生成完成后（Step 5目录校验通过后），立即执行跨文档一致性校验：

🚨 **Step 5.5 增强：新增4项一致性校验** 🚨

| 校验项 | 校验内容 | 关联P0 | 不一致处理 |
|:------:|:---------|:------:|:----------:|
| 术语一致性校验 | 逐术语检查每个SOP中的定义是否与terminologyDictionary一致 | P0-01/P0-03 | 🚫阻断 |
| 业务线定义一致性校验 | 逐业务线检查每个SOP中的定义是否与businessLineBaseline一致 | P0-01/P0-07 | 🚫阻断 |
| 英文全称一致性校验 | 检查LTC等术语的英文全称是否全局统一（Lead to Cash非Leads to Cash） | P0-02 | 🚫阻断 |
| B1-B5场景覆盖校验 | 逐场景检查是否在SOP中有对应内容 | P0-08 | 🚫阻断 |

**校验流程**：

1. **提取各文档关键内容**：遍历 `{SOP文档输出路径}/内循环/Q1/` 下的所有SOP文件（SOP-000~0XX），提取：
 - §2.2 业务线定义（业务线代码+名称+英文全称）
 - 章节标题格式（## N. 格式 vs ## 第N章 vs ## §N 等）
 - §1 元数据表格格式（| 属性 | 内容 | 格式 vs 其他格式）
 - §5 角色名称列表
 - §3 术语定义列表
 - §9.2 模板引用名称

2. **与锚点V3.0逐项比对**：
 | 校验项 | 比对目标 | 不一致处理 |
 |:-------|:---------|:-----------|
 | 业务线定义 | businessLineBaseline | 内容类→🚫阻断，必须修正 |
 | 章节格式 | chapterFormatTemplate.formatRule | 格式类→🔧自动修复 |
 | 元数据格式 | metadataTemplate.tableFormat | 格式类→🔧自动修复 |
 | 角色名称 | roleDictionary | 内容类→🚫阻断，必须修正 |
 | 术语定义 | terminologyDictionary | 内容类→🚫阻断，必须修正 |
 | 跨SOP引用名称 | crossReferenceTable | 内容类→🔧自动修复 |
 | 字段类型 | fieldTypeStandard | 格式类→🔧自动修复 |
 | RACI角色 | raciStandard | 内容类→🚫阻断，必须修正 |
 | 版本号 | versionBaseline | 格式类→🔧自动修复 |
 | 成本结构引用 | costStructureTree | 内容类→🚫阻断（涉及成本的SOP） |

3. **不一致处理**：
 - 格式类不一致（章节编号格式/元数据表格格式/字段类型标记）→ 🔧自动修复后写入文件，标注`⚠️自动修正`
 - 内容类不一致（业务线定义/角色名称/术语定义/成本结构）→ 🚫阻断，必须人工审查修正
 - 所有修正结果追加写入 `{知识库路径}/循环轮次/跨文档一致性校验记录.md`

4. **输出校验报告**：
 ```
 📊 跨文档一致性校验报告：
 ✅ 一致项：{N}个
 ⚠️ 格式类自动修正：{M}个（修正详情见校验记录）
 ❌ 内容类阻断：{K}个（必须修正后方可继续）
 📋 最终判定：✅通过/❌不通过
 ```

🚫 **禁止跳过此步骤**：跨文档一致性校验是Q1生成的最终质量保障
📌 校验不通过时，必须修正所有阻断项后才能进入Q2验证

🚨🚨 **Step 5.5-PLUS：全量清单校验** 🚨🚨

在完成 Step 5.5 跨文档一致性校验后，立即执行全量清单校验（与标准参考比对）：

**校验流程**：

1. **SOP总数校验**：
 - 实际生成的SOP文件数量 vs 标准参考摘要中的 sopBlueprint.length
 - ✅ 一致 → 继续
 - ❌ 不一致 → 🚫 阻断，必须补充缺失的SOP或删除多余的SOP

2. **模板总数校验**：
 - 实际生成的模板文件数量 vs 标准参考摘要中的 templateBlueprint.length
 - ✅ 一致 → 继续
 - ❌ 不一致 → 🚫 阻断，必须补充缺失的模板或删除多余的模板

3. **角色总数校验**：
 - 锚点V3.1中 roleDictionary.length vs 标准参考摘要中的 roleBlueprint.length
 - ✅ 一致 → 继续
 - ❌ 不一致 → 🚫 阻断，必须补充缺失的角色

4. **版本号校验**：
 - 每个SOP/模板文件的实际版本号 vs 标准参考摘要中的 versionBaselineExtended
 - ✅ 一致 → 继续
 - ❌ 不一致 → 🔧 自动修正（更新文件头部版本号），标注"⚠️版本号自动修正"

5. **章节结构校验**：
 - 每个SOP的章节标题列表 vs 标准参考摘要中的 chapterBlueprint
 - 校验主章节编号连续性和标题一致性
 - ✅ 一致 → 继续
 - ❌ 不一致 → 🔧 格式类自动修复 / 🚫 内容类阻断

6. **命名规范校验**：
 - 每个SOP/模板文件名 vs namingConvention中的命名模式
 - ✅ 一致 → 继续
 - ❌ 不一致 → 🔧 自动重命名（如适用），标注"⚠️文件名自动修正"

**输出全量清单校验报告**：
```
📊 全量清单校验报告：
✅ SOP总数：{实际}/{标准} — 一致/不一致
✅ 模板总数：{实际}/{标准} — 一致/不一致
✅ 角色总数：{实际}/{标准} — 一致/不一致
✅ 版本号一致：{N}/{M}个文件
✅ 章节结构一致：{N}/{M}个SOP
✅ 命名规范一致：{N}/{M}个文件
📋 最终判定：✅通过/❌不通过（需修正{K}项）
```

🚫 **禁止在全量清单校验不通过时进入Q2验证
📌 校验报告追加写入 `{知识库路径}/循环轮次/跨文档一致性校验记录.md`

🚨🚨 **Step 5.6：章节结构完整性校验** 🚨🚨

在完成Step 5.5跨文档一致性校验后，立即执行章节结构完整性校验：

**校验流程**：

1. **14章完整性校验**：
 - 遍历每个SOP文件，提取所有章节标题（## N. 格式）
 - 对比chapterStructureBaseline（应为14章）
 - ✅ 一致 → 继续
 - ❌ 不一致 → 🚫阻断，必须补充缺失章节
 - 输出：`❌ 章节不完整：{SOP名称} 仅有 {N} 章，缺少：{缺失章节列表}`

2. **章节标题标准化校验**：
 - 对比每个SOP的章节标题与chapterStructureBaseline中的名称
 - 🚨 **§6-§8特殊规则**：§6/§7/§8的标题按SOP类型适配，不使用SOP-000的标题作为基准：
 §6 合法标题：
 - SOP-000总纲 → "流程架构"
 - 操作性SOP / 条件分支型SOP → "任务架构"
 - 任务框架型SOP → "规则架构"
 §7 合法标题：所有类型统一为 "操作步骤详解"
 §8 合法标题：所有类型统一为 "质控标准"
 - ✅ 一致（或§6-§8符合类型适配规则）→ 继续
 - ❌ 不一致 → 🚫阻断，必须修正章节标题
 - 输出：`❌ 章节标题不标准：{SOP名称} §{N} 标题为 "{title}"，应为 "{correct_title}"`

3. **章节编号连续性校验**：
 - 检查每个SOP的章节编号是否连续（1,2,3,...,14）
 - ✅ 连续 → 继续
 - ❌ 不连续 → 🔧自动修复（重新编号），标注"⚠️章节编号自动修正"

**输出章节结构校验报告**：
```
📊 章节结构完整性校验报告：
✅ 14章完整性：{N}/{M}个SOP通过
✅ 章节标题标准化：{N}/{M}个SOP通过
✅ 章节编号连续性：{N}/{M}个SOP通过
📋 最终判定：✅通过/❌不通过（需修正{K}项）
```

🚫 **禁止在章节结构校验不通过时进入Q2验证
📌 校验报告追加写入 `{知识库路径}/循环轮次/跨文档一致性校验记录.md`

🚨🚨 **Step 4 实时角色交叉校验** 🚨🚨
在每个操作性SOP生成完成后，立即执行以下角色引用实时交叉校验（在"一致性快照校验"之前执行）：

1. 提取该SOP所有步骤卡中引用的角色代码（执行角色+协作角色）
2. 与全局一致性锚点roleDictionary逐一比对
3. 发现未定义角色引用 → 立即处理：
 - 方案A（优先）：在SOP-000 §5.1角色清单和roleDictionary中补充该角色定义
 - 方案B：替换为最接近的已定义角色（标注⚠️已调整）
4. 更新全局一致性锚点中的roleDictionary
5. 输出校验结果：
 `✅ SOP-{NNN} 角色交叉校验通过：{N}个角色全部已定义`
 `❌ SOP-{NNN} 角色交叉校验：{M}个未定义角色 → 已按方案A/B处理`

🚫 禁止跳过此校验
🚫 禁止在步骤卡中使用角色字典中不存在的角色代码

🚨🚨 **跨SOP引用格式生成时校验** 🚨🚨
在所有SOP生成完成后、进入PHASE GATE A之前，必须执行引用格式统一性校验：

1. 扫描所有已生成的SOP文件，提取所有跨SOP引用（形如 `[...](../HY-G-...)` 的Markdown链接）
2. 检查是否全部使用V2标准格式：`[HY-G-{流程代码}-SOP-{NNN} {SOP名称}（V{版本}）](../HY-G-{流程代码}-SOP-{NNN}%20{SOP名称}（V{版本}）.md)`
3. 不符合V2格式的引用 → 自动转换并记录修正数量
4. 输出校验结果：
 `✅ 跨SOP引用格式校验通过：{N}个引用全部为V2格式`
 `⚠️ 跨SOP引用格式校验：{M}个引用已自动转换为V2格式`

🚫 禁止跳过此校验

🚨 **PHASE GATE A — Step 4 完成度门禁** 🚨
在完成Step 4后、进入Step 5之前，必须执行以下检查：

1. **逐一清点已生成的操作性SOP文件**（不含总纲/支撑/任务框架）
2. **对照生成承诺清单**，确认以下SOP已全部生成：

对照Step 2拆解结果中的**操作性SOP清单**，逐一确认每个SOP是否已生成：
✅ 逐一列出Step 2中承诺的每个操作性SOP — 已生成？

3. **如有缺失**：立即补充生成缺失的SOP，禁止跳过进入Step 5
4. **全部完成**：输出"✅ PHASE GATE A 通过 — 所有操作性SOP全部生成完毕（共{N}个）"后进入Step 5

⚠️ **常见失败模式**：LLM在生成了部分操作性SOP后就跳到Step 5，遗漏了后续角色/业务环节对应的SOP。必须逐一核对拆解清单中的每一项。

🚨 **首批SOP格式验证（空路径容错 — 生成SOP-001后必须执行）** 🚨
0. 🚨 **首先检查标准参考文件路径是否为空**：如路径为空 → 跳过验证，直接输出 `✅ 首批SOP格式验证：标准参考文件路径为空，跳过对比` 后继续生成后续SOP。如路径非空 → 继续执行
在生成SOP-001后，重新读取标准参考文件 `{{标准参考文件路径}}/HY-G-{流程代码}-SOP-001 {SOP名称}（V{版本}）.md`（如路径非空且文件存在），逐项对比：
| 对比项 | 标准格式 | 验证方法 |
|:-------|:---------|:---------|
| 文件名含名称+版本号 | `SOP-001 线索管理SOP（V6.0）.md` | 检查文件名 |
| 章节编号阿拉伯数字 | `## 1. 文档信息` | 检查章节标题 |
| 元信息表格格式 | `\| 属性 \| 内容 \|` | 检查第1章 |
| 关联总纲链接 | Markdown链接 | 检查第1章 |
| 步骤总览表7列（全称） | 步骤/步骤名称/步骤类型/执行引擎/执行者/下一节点/输出 | 检查§4 |
如有差异→立即修正SOP-001后继续生成后续SOP。

**Step 5** 创建任务框架型 SOP（时间片：共享）
- 编号规则：HY-G-{流程代码}-SOP-TF-{三位序号}（如 HY-G-{流程代码}-SOP-TF-001）
- 内容：审批规则、路由配置、工作流引擎消费的配置信息

🚨 **PHASE GATE B — Step 5 完成度门禁** 🚨
在完成Step 5后、进入Step 6（模板生成）之前，必须执行以下检查：

1. **逐一清点已生成的全部SOP文件**（含总纲+操作性+审批规则+支撑+任务框架）
2. **对照生成承诺清单**，确认以下SOP已全部生成：

对照Step 2拆解结果中的**完整SOP清单**，逐一确认：
✅ SOP-000: 总纲 — 已生成？
✅ 所有操作性SOP（Phase Gate A已通过？）— 全部已生成？
✅ 所有审批规则SOP — 已生成？
✅ 所有支撑流程SOP（如有）— 已生成？
✅ 所有任务框架SOP（如有）— 已生成？

3. **如有缺失**：立即补充生成缺失的SOP，禁止跳过进入Step 6
4. **全部完成**：输出"✅ PHASE GATE B 通过 — 全部{N}个SOP文件生成完毕，进入模板生成阶段"后进入Step 6

⚠️ **常见失败模式**：LLM跳过了审批规则类和支撑/任务框架SOP，直接开始生成模板。这些SOP对应的模板将无法正确关联。

**Step 6** 创建配套模板（时间片：共享）

🚨🚨 **Step 6-PRE：目录预创建与路径变量解析** 🚨🚨

在执行任何模板文件写入之前，必须先完成以下前置检查：

**1. 路径变量解析（强制·阻断级）**：
```
扫描所有待写入路径，验证无未解析变量：
FOR EACH 待写入路径 IN 模板文件清单:
 IF 路径中包含 \{[a-zA-Z_]+\} 模式（如 {sopOutputPath}、{流程代码}）:
 尝试从当前上下文推导变量值：
 {sopOutputPath} → 从 Phase 0 "SOP文档输出路径" 获取
 {流程代码} → 从 globalConsistencyAnchor.processCode 获取
 {版本号} → 从 versionBaselineExtended 获取
 IF 变量无法推导（上下文中不存在对应值）:
 🚫 阻断 → 输出："路径变量 {变量名} 无法解析，请检查 Phase 0 信息收集"
 → 禁止使用字面量 {sopOutputPath} 作为目录名
 ELSE:
 替换变量为实际值
```

**2. 目录预创建（强制·阻断级）**：
```
必须按以下顺序预创建目录（在第一个模板文件写入之前）：

 目录1: {sopOutputPath}/内循环/Q1/ ← SOP文件目录（验证已存在）
 目录2: {sopOutputPath}/内循环/Q1/模板文件/ ← TMP模板文件目录（🚨 关键！）
 目录3: {知识库路径}/循环轮次/ ← 知识库目录

预创建步骤：
 a. 逐一检查每个目录是否存在
 b. 不存在的目录 → 自动递归创建（mkdir -p 等效操作）
 c. 创建后验证目录可写
 d. 输出确认信息：
 "📁 目录预创建完成：
 ✅ {sopOutputPath}/内循环/Q1/ — {已存在/已创建}
 ✅ {sopOutputPath}/内循环/Q1/模板文件/ — {已存在/已创建}
 ✅ {知识库路径}/循环轮次/ — {已存在/已创建}"

 🚫 如任一目录创建失败 → 阻断进入模板生成阶段
 🚫 禁止在目录不存在时直接写入文件（会导致文件写入到错误位置）
```

**3. 路径合规性最终确认**：
```
所有模板文件的目标路径必须满足：
 - 存放在 {sopOutputPath}/内循环/Q1/模板文件/ 下（不是 Q1/ 根目录）
 - 文件名格式 = HY-G-{流程代码}-TMP-{三位序号} {模板名称}（V{版本号}）.md
 - 路径中不含未解析的 {} 变量
 
最终确认输出：
 "✅ Step 6-PRE 前置检查通过：{N}个目录已就绪，路径变量全部已解析"
```

📌 此步骤与 sop-generation-rules 中的 Fix-P2（Gate-21）和 Fix-P3（目录预创建）联动：
- Fix-P3 在 Step 6 开始前批量预创建目录
- Gate-21 在每个文件写入前逐一验证路径
- Step 6-PRE 在模板生成前做最终确认
- 三者共同确保"路径永远正确、目录永远存在"

🚨🚨 **版本号统一写入规则** 🚨🚨

在开始生成任何模板文件之前，必须先确定版本号基准：

🚨 **核心原则：版本号独立性** 🚨
- 每个SOP/模板的版本号必须基于其**自身的修订历史**独立确定
- 🚫 **禁止跨SOP统一版本号**：不得将所有SOP设为相同版本号（如全部V6.0）
- 🚫 **禁止为"对齐总纲"而批量统一版本号**：版本号反映的是文件自身的迭代演进
- 新建SOP/模板初始版本号为 **V1.0**，禁止直接跳至高版本号
- 基于已有SOP迭代生成时，继承原文件最新版本号并按修订幅度**递增**（如V5.2→V5.3或V6.0）

**版本号真相源优先级（唯一真相源机制 ）**：
1. **最高优先级**：`anchor.versionBaselineExtended` 中各文件的独立版本号
 - 当 versionBaselineExtended 中存在对应文件的版本号时 → **必须继承该版本号并按修订幅度递增**
 - 示例：versionBaselineExtended.sopVersions["SOP-001"] = "V5.2" → 本次生成用 V5.3（小修订）或 V6.0（大重构）
 - 示例：versionBaselineExtended.tmpVersions["TMP-011"] = "V2.0" → 本次生成用 V2.0（无变化）或 V2.1（小修订）
 - 🚫 禁止直接使用 versionBaselineExtended 中的值而不判断是否需要递增
2. **回退优先级**：当 versionBaselineExtended 中无对应条目时
 - 标准参考中存在同编号文件 → 从文件名或元信息中解析版本号并递增
 - 标准参考中无同编号文件（全新SOP/模板）→ 使用 **V1.0**
3. 🚫 **已废除的规则**：~~"所有模板文件的版本号必须与总纲版本号协调一致"~~
 - 此规则与 versionBaselineExtended 矛盾，已废除
 - 每个文件使用 versionBaselineExtended 中记录的**独立版本号**，不强制与总纲一致

🚨 **版本号校验规则（Step 6 写入前强制检查）** 🚨
- 写入前逐一检查：是否有≥3个SOP使用完全相同版本号 → 若是，触发警告
- 逐一检查：新建SOP（标准参考中无对应）是否使用了V1.0 → 若不是，强制修正
- 逐一检查：迭代SOP的版本号是否高于标准参考中的版本号 → 若不是，强制递增

**写入顺序强制规则**：
 a. 先写入所有模板文件（含版本号在文件名中，如 TMP-001 模板名称（V{N}.0）.md）
 b. 再写入模板编号登记表（版本号从文件名中提取，确保一一对应）
 c. 最后写入 SOP-000 §9.2 模板清单（版本号从登记表中提取，确保三方一致）
4. 🚫 **禁止在 §9.2 中手动指定版本号**：必须从登记表中自动提取，避免手动指定导致三方不一致
5. 🚫 **禁止在生成模板文件时使用不同版本号格式**：所有模板版本号必须统一为 V{数字}.{数字} 格式

🚨 **§9.2 版本号生成强制规则（V1.7.0新增 · 阻断级）** 🚨

> **背景**：基于LTC-SOP-完整版排查发现SOP-000 §9.2中TMP-014/015/016的版本号与实际模板文件名中的版本号不一致。

```
§9.2 模板清单版本号生成算法（唯一合法流程）：

Step 1: 扫描 {sopOutputPath}/内循环/Q1/模板文件/ 目录下所有实际TMP文件
Step 2: 从每个文件名中提取版本号（正则：/（V(\d+\.\d+)）/）
Step 3: 生成 §9.2 表格时，版本号字段 = Step 2 提取的实际版本号
Step 4: 生成完成后立即执行 CV-1 校验：
  FOR EACH entry IN §9.2模板清单:
    物理文件 = 模板文件目录下对应编号的文件
    IF entry.版本号 ≠ 物理文件名中的版本号:
      🚫 阻断 → "版本号不一致：§9.2中{entry.版本号} ≠ 文件名{物理文件版本号}"
      → 以物理文件为准修正§9.2

🚫 禁止在§9.2中使用“V1.0”作为所有模板的默认版本号
🚫 禁止在§9.2中使用与versionBaselineExtended不同的版本号
🚫 禁止跳过CV-1校验直接写入SOP-000
```

🚨 **强制命名与存储规则（MUST FOLLOW — V8.5.7标准化）**：
- 文件命名格式：`HY-G-{流程代码}-TMP-{三位序号} {模板名称}（V{版本号}）.md`（如 HY-G-{流程代码}-TMP-001 {模板名称}（V{N}.0）.md）
- 🚨 编号与名称之间**必须有空格**，名称中不强制包含"模板"二字，版本号必须用中文括号
- 🚨 **存储位置：必须存放在 {SOP文档输出路径}/内循环/Q1/模板文件/ 子目录下**（不是Q1根目录）
- 模板分类：表单模板(TMP-001~)/报告模板(TMP-0XX)/审批模板(TMP-0XX)
- 🚨 **模板必须与SOP第9章引用一一对应**：SOP§9中引用的每个模板编号，在模板文件/目录下必须有对应物理文件
- 生成 `模板编号登记表.md`（存放在模板文件/目录下），登记所有模板信息
- 🚨 **模板数量必须与SOP§9引用清单一致**，不得遗漏

🚨 **模板名称来源优先级规则**：
模板名称（即文件名中的 {模板名称} 部分）必须按以下优先级确定：
1. **最高优先级**：当 standardReferencePath 非空时
 - 从参考标准中匹配对应TMP文件（按编号匹配）
 - 提取参考TMP文件名中去掉前缀和版本号后的**核心名称
 - 示例：参考文件 `HY-G-LTC-TMP-001 线索接收与验收确认表（V2.0）.md` → 核心名称 = "线索接收与验收确认表"
2. **回退优先级**：当 standardReferencePath 为空时
 - 使用 anchor.templateBlueprint 中对应模板的 name 字段
 - 若 templateBlueprint 中也无对应条目 → 基于SOP步骤内容和环节类型自动推导
3. 🚫 **禁止凭空编造模板名称**：必须有明确来源（参考标准/蓝图/推导）

📌 此规则确保生成模板的名称与参考标准保持最大一致性

🚨 **模板内容标准结构（MUST FOLLOW — 每个模板文件必须严格包含以下5个区块，参照 `references/template-spec.md`）**：

**区块1：标题 + 模板信息表（紧跟标题，无独立标题行）
```markdown
# sop-template-selection-engine — 模板选择规则引擎

## 触发条件

由 MG-01 SOP编排专家通过 `linkedSkillNames` 自动注入。在 workflow 执行阶段全程可用。

## 核心使命

SOP模板选择规则引擎 — 环节类型→模板类型映射表（13种环节类型）、模板类型定义标准（表单/审批/报告/配置4类）、模板选择执行流程（Step 6a-6e）、模板内容深度强制标准、差异化模板校验公式、业务线变体模板强制校验。

## 详细规则

🚨 **收尾格式抽查** 🚨

全部模板生成完毕后，**随机抽查 3 个非首批模板**（如 TMP-010/018/025），执行与首批验证相同的10项对比检查：

```
📋 收尾格式抽查报告
| 抽查文件 | 对比项 | 结果 |
|:---------|:-------|:----:|
| TMP-010 | 标题含完整编号 | ✅/❌ |
| TMP-010 | 信息表紧跟标题 | ✅/❌ |
| TMP-010 | 字段表6列 | ✅/❌ |
| TMP-010 | 必填Y/N标注 | ✅/❌ |
| TMP-010 | 使用说明区块 | ✅/❌ |
| TMP-010 | 变更记录区块 | ✅/❌ |
| TMP-018 | ... | ... |
| TMP-025 | ... | ... |
```

3. **如发现格式漂移**：
 - 立即修正抽查文件
 - 以修正后的格式为基准，**批量修正所有模板
 - 输出`🔧 收尾格式抽查发现 {N} 处格式漂移，已批量修正所有模板`
4. **如全部一致**：
 - 输出`✅ 收尾格式抽查通过（抽查3个文件，10/10项一致），格式一致性良好`

🚫 **禁止跳过此抽查步骤**：LLM在长文本生成中（25+模板）容易出现格式漂移（如第15个模板开始用 | 字段 | 值 | 而非 | 属性 | 内容 |），此步骤是防止批量格式错误的最后防线。

🚫🚫🚫 模板生成禁止模式（MUST NOT — 以下格式全部是错的）🚫🚫🚫

❌ **禁止格式1：引用块元信息
> **模板编号**：HY-G-{流程代码}-TMP-001 ← 🚫 禁止！必须用表格格式，且紧跟标题（无`## 模板信息`标题行）
> **模板名称**：xxx

❌ **禁止格式2：4列旧式字段表
| 序号 | 字段名称 | 标注 | 说明 | ← 🚫 禁止！缺少字段类型和示例值！必须6列！
| 1 | 线索编号 | ※必填 | 系统自动生成 | ← 🚫 禁止！※/◇/◎符号禁止！必须Y/N！

❌ **禁止格式3：省略使用说明和变更记录
模板只有标题+字段定义+尾部引用块 ← 🚫 禁止！缺少使用说明+变更记录！5区块缺一不可！

❌ **禁止格式4：命名省略名称和版本号
HY-G-{流程代码}-TMP-001.md ← 🚫 禁止！必须包含名称和版本号！
正确：HY-G-{流程代码}-TMP-001 {模板名称}（V{N}.0）.md

❌ **禁止格式5：模板数量不足
仅生成部分模板，遗漏后续SOP对应的模板 ← 🚫 禁止！必须按拆解清单全部生成！

❌ **禁止格式6：模板存放在Q1根目录
Q1/HY-G-{流程代码}-TMP-001.md ← 🚫 禁止！必须放在Q1/模板文件/子目录！

❌ **禁止格式7：使用引用块(>)代替表格展示模板元信息
> **模板编号**：HY-G-{流程代码}-TMP-001 ← 🚫 禁止！必须用表格紧跟标题（无`## 模板信息`标题行）！
> **模板名称**：xxx
> **版本**：V6.0

❌ **禁止格式10：在模板信息表前添加`## 模板信息`标题行
# sop-format-spec — SOP格式规范与金标准示例

## 触发条件

由 MG-01 SOP编排专家通过 `linkedSkillNames` 自动注入。在 workflow 执行阶段全程可用。

## 核心使命

SOP格式规范 — SOP-000总纲14章金标准示例（含每章详细格式）、操作性SOP章节骨架、元数据模板(10字段)、步骤卡片15字段格式（12必填+3条件必填）、模板金标准示例（6列表格+Y/N标注+4标准区块）、模板编号登记表标准格式、产出物清单、中断续传机制。

## 详细规则

📋 SOP文件金标准示例（必须100%复制此格式 — V8.8.0 新增）

**SOP-000 总纲格式要点**：
- 标题：`# HY-G-{流程代码}-SOP-000 {流程名称}SOP总纲`
- §1 文档信息：`| 属性 | 内容 |` 表格（8字段：编号/名称/任务类型/版本号/生效日期/编制部门/流程Owner/适用业务线）
- §2~§14 按标准14章骨架填充（参见上方骨架模板）
- §6.3 SOP清单：7列表格（序号/编号/名称/类型/对应阶段/版本）
- §9.2 模板清单：6列表格（序号/编号/名称/版本/目标格式/适用SOP章节）
- 禁止：引用块格式/中文数字章节/省略§14

**操作性SOP格式要点**：
- 标题：`# HY-G-{流程代码}-SOP-001 {SOP名称}（V{N}.0）`
- §1 含关联总纲Markdown链接（9字段）
- §6.1 步骤总览表：7列（步骤/名称/类型/执行引擎/执行者/下一节点/输出）
- §7 步骤卡：15字段标准格式（参见底部§7步骤卡片标准格式锁定模板）
- 其余§按14章骨架填充

🚨 **SOP文件关键格式要点**：
1. ✅ 第1章文档信息必须是 `| 属性 | 内容 |` 表格格式
2. ✅ 章节编号必须是 `## 1.` / `## 2.` 阿拉伯数字
3. ✅ 步骤总览表必须是7列（步骤/步骤名称/步骤类型/执行引擎/执行者/下一节点/输出），列名用全称，步骤类型∈{⚙️操作/⚙️自循环/⚙️操作（审核）}，执行引擎固定Twork
4. ✅ 每个步骤必须30-40行深度
5. ✅ 操作性SOP第1章必须包含关联总纲的Markdown链接
6. ❌ 禁止使用 `> **文档编号**：xxx` 引用块格式
7. ❌ 禁止使用 `## 第一章` 中文数字章节

📋 模板编号登记表标准格式

模板编号登记表必须包含：头部信息（对应总纲版本号）+ 模板总览表（6列：序号/模板编号/模板名称/版本/关联SOP/页数估算）+ 统计汇总表（按SOP分组）+ 备注说明。

🚫 **禁止在登记表中使用※/◇/◎符号**，统一使用Y/N标注必填性。

**Step 7** 自检（18项检查 · 精简版）
- ①-⑤ 基础检查：SOP/模板数量一致+文件名格式(含版本号)+模板存Q1/模板文件/+字段覆盖≥60%+4标准区块
- ⑥-⑩ 格式检查：6列表格+Y/N标注(禁※/◇/◎)+模板含实际表格+§9↔物理文件双向对应+模板标题含完整编号
- ⑪-⑮ 位置/内容：模板信息表紧跟标题(无独立##模板信息行)+使用说明5项+变更记录+信息表位置合规+§9.2↔登记表版本号一致
- ⑯-⑱ 交叉引用：§7↔§9.2模板名一致+登记表↔文件名版本号一致+Step 7.8修复后交叉验证(6类)
 - 6类交叉验证：①§9.2↔登记表版本号 ②§7↔§9.2模板名 ③登记表↔文件名版本号 ④角色名称(锚点) ⑤术语定义(锚点) ⑥章节结构(锚点)
 - 锚点缺失→跳过④⑤⑥(记录降级原因) | 最多重试3轮→人工确认 | 每轮高严重度减少≥30%

🚨🚨 **模板字段覆盖度阻断规则（V1.7.0新增·当standardReferencePath非空时强制）** 🚨🚨

> **升级说明**：模板字段覆盖度校验从⚠️警告级别提升为🚫阻断级别（优化方案P0-4）。

```
IF standardReferencePath 非空:
    FOR EACH tmp IN 生成模板清单:
        refTMP = 从reference中按编号匹配对应模板
        IF refTMP存在:
            字段覆盖率 = |生成TMP字段 ∩ refTMP字段| / |refTMP字段|
            IF 字段覆盖率 < 0.8:
                🚫 阻断（不再是⚠️警告）
                输出缺失字段清单：列出 refTMP 中存在但生成TMP中缺失的字段
                要求补充缺失字段后重新写入
                🚫 禁止跳过，禁止降级为警告
```
📌 此规则确保生成模板的字段深度不低于参考标准的80%，解决"模板字段仅为参考版30%~50%"的问题。

🚨🚨 **Gate-COST：模板成本结构 Pre-Write 阻断门禁（V1.7.0新增 · 阻断级）** 🚨🚨

> **背景**：基于LTC-SOP-完整版排查发现TMP-014报价单模板的A~L成本项定义与SOP-000 §12.1.2完全不一致（模板使用"硬件+软件+实施"通用IT模型，而标准为"人力+差旅+第三方"业务专用模型）。此门禁为最终防线。

```
触发条件：当待写入模板涉及成本/报价/核算类字段（匹配关键词：成本|报价|核算|费用|金额|利润|A项|B项|...|L项）

执行流程：
1. 读取 anchor.costStructureTree
2. IF costStructureTree 非空:
   FOR EACH 成本项字段 IN 模板:
     anchorItem = costStructureTree.find(code == 字段code)
     IF anchorItem 存在:
       校验字段名 == anchorItem.definition → 不一致则 🚫 阻断
       校验公式 == anchorItem.formula → 不一致则 🚫 阻断
     ELSE:
       ⚠️ 警告（模板含锚点未定义的成本项）
   
   特别校验（D项/L项等关键计算项）：
   - D项公式必须为 "A+B+C" 或锚点定义的等价公式
   - L项（最终报价/总价）公式必须与锚点一致
   - 🚫 禁止D项定义为"物料成本合计"等非标准名称
   - 🚫 禁止L项公式与锚点定义不同

3. IF costStructureTree 为空:
   尝试从标准参考SOP-000 §12提取
   IF 提取成功 → 执行上述校验
   IF 提取失败 → ⚠️ 警告（降级为警告，标注📌待确认）

4. 业务类型枚举校验（与Gate-COST联动）：
   IF 模板含"业务类型"枚举字段:
     允许值 = anchor.businessLines 中定义的业务线代码
     IF 模板枚举值 含 "项目型/产品型/服务型/混合型" 等通用分类:
       🚫 阻断 → "业务类型必须使用业务线分类（C/R/I/T/S），禁止通用IT分类"
```

🚫 **禁止跳过Gate-COST**：此门禁是防止成本结构偏差的最终防线
📌 校验结果写入 `{知识库路径}/循环轮次/模板成本结构校验记录.md`

🚨🚨 **Gate-ENUM：模板枚举值 Pre-Write 阻断门禁（V1.7.0新增）** 🚨🚨

```
触发条件：每个模板文件写入前均执行

执行流程：
FOR EACH 枚举类型字段 IN 模板:
  IF 字段名 匹配 /业务类型|业务线|服务类型|服务类目/:
    允许值 = anchor.businessLines.map(code => code + "类（" + chineseName + "）")
    IF 模板枚举值 ≠ 允许值:
      🚫 阻断 → 输出差异清单，要求修正为锚点定义的业务线分类
  IF 字段名 匹配 /币种/:
    IF 模板枚举值 含 anchor未定义的币种:
      🚫 阻断 → "币种超出约束范围"
```

🚫 **禁止跳过Gate-ENUM**：枚举值一致性是跨SOP一致性的基础保障

🚨🚨 **Gate-MATH：模板公式自验 Pre-Write 阻断门禁（V2.2.0新增）** 🚨🚨

> **背景**：基于 LTC 流程 Round-01 验证发现 TMP-027 成本测算表的示例值存在级联计算错误（G=22,050应为21,750 / I=43,665应为41,107.5 / J=722,465应为519,607.5 / L=830,834.75应为597,548.63），根因是 LLM 生成示例值时未代入公式验证。

```
触发条件：模板含计算公式（匹配关键词：公式 | = | 合计 | × | ÷ | % | A~L成本项）

执行流程：
1. 提取模板中所有公式定义（如 "G = (A~F) × 5%"）
2. 提取模板中所有字段的示例值
3. 按公式依赖链逐步代入示例值计算：
   FOR EACH 公式 IN 模板公式列表（按依赖顺序排序）:
     计算结果 = 用已验证的字段值代入公式
     IF |计算结果 - 模板中该字段的示例值| > 0.01:
       🚫 阻断 → "公式 {公式名} 计算偏差：期望{计算结果}，实际{示例值}，差额{差值}"
       → 以公式计算结果为准修正示例值
4. 特别校验关键计算项：
   - 成本合计项（如 D = A+B+C）：精确匹配
   - 税费计算项（如 I = 基数 × 税率）：精确匹配
   - 总成本/总价项（如 J = Σ所有成本项）：精确匹配
   - 最终报价项（如 L = J × (1 + 利润率)）：精确匹配
5. 校验分母不为零：IF 公式含除法 → 检查分母字段示例值 ≠ 0

判定：
  - 任一公式偏差 > 0.01 → 🚫 阻断，修正示例值后重新写入
  - 全部公式精确匹配 → ✅ 允许写入
```

🚫 **禁止跳过 Gate-MATH**：公式正确性是模板可执行性的基础保障
📌 此门禁解决 Round-01 验证中准确性扣 -0.5 分（TMP-027 级联计算错误）的根因。
📌 与 Gate-COST 的区别：Gate-COST 检查成本字段定义是否与锚点一致，Gate-MATH 检查示例值是否数学正确。

**Step 7.5** 跨SOP一致性自检
- 对照《生成规范 V2.2》§19，R/D/F/T共13项逐一检查
- 超时处理：时间片用尽后标记"部分检查完成"，输出已完成项结果并继续

**Step 7+** 生成质量自评（5维度 · 写入独立文件）
- 完整性(30%)+一致性(25%)+准确性(20%)+可读性(15%)+可执行性(10%)
- 🚫 必须写入 `{知识库}/循环轮次/质量自评报告.md`（禁止写入SOP-000中）
- 报告含各维度得分+扣分项+改进建议

🚨 **自评强制交叉校验（15项精简版）** 🚨

质量自评（Step 7+）完成后、写入报告前，逐文件执行以下锚点交叉校验：
🚫 **禁止跳过** — 缩小自评与独立评审差异的核心机制。

| # | 校验项 | 对齐Gate | 扣分维度 | 跳过条件 |
|:-:|:-------|:---------|:---------|:---------|
| ① | 角色白名单 ⊆ roleWhitelist | G-1 | 一致性 | — |
| ② | 术语翻译 == terminologyDictionary | G-3 | 一致性 | — |
| ③ | M编号 ∈ kpiNumberingPool预分配 | G-2 | 一致性 | — |
| ④ | §1元数据格式合规 | G-4 | 完整性 | — |
| ⑤ | 章节数 == 14 | G-6 | 完整性 | — |
| ⑥ | 引用链接有效性 | G-5 | 准确性 | — |
| ⑦ | 章节标题 == baseline | G-6 | 可读性 | — |
| ⑧ | 异常场景量化阈值 | G-7 | 可执行性 | — |
| ⑨ | KPI跨SOP口径一致 | G-2 | 准确性 | — |
| ⑩ | 混合业务场景覆盖 | G-8 | 完整性 | 单业务线 |
| ⑪ | 成本底线完整性 | G-9 | 完整性 | 非成本SOP |
| ⑫ | 例外处理四要素 | G-10 | 可执行性 | — |
| ⑬ | 循环量化退出 | G-11 | 可执行性 | 无循环 |
| ⑭ | 特殊场景适配 | G-12 | 完整性 | — |
| ⑮ | 跨SOP引用语义 | G-18 | 准确性 | — |

校准规则：每问题对应具体扣分 → 最终自评 = 原始分 - 扣减量 → 目标差异 < ±5分

📦 产出物清单（必须全部生成）
- SOP输出：SOP-000总纲 + SOP-001~0XX操作性SOP + 审批规则SOP + 模板文件/(TMP-001~0XX + 模板编号登记表.md)
- 知识库/循环轮次/：预检缓存.json + 生成日志.md + 质量自评报告.md + 校验报告.md
- 命名规范：`HY-G-{流程代码}-SOP/TMP-{三位序号} {名称}（V{版本}）.md`

🚨 **中断续传机制** 🚨

中断时（429/超时/其他）：输出进度 → 写入 `{知识库}/循环轮次/生成断点.json`（含completed_sops/completed_templates/pending_templates）→ 用户输入"继续生成"后读取断点文件续传 → 续传后重新执行PHASE GATE C。

# V2.0 后置交叉校验执行细则（CV-1/CV-2/CV-3）

> 所有SOP+模板生成完毕后、进入Q2前执行。与 sop-generation-rules V1.4.1 C-04 对齐。

| CV | 校验内容 | 校验方法 | 不一致处理 |
|:--:|:---------|:---------|:-----------|
| CV-1 | 版本号锚定 | §9.2版本号 == 物理文件标题版本号 | 以物理文件为准修正§9.2+登记表 |
| CV-2 | §7↔§9.2模板名双向锚定 | §7引用名 == §9.2名称 + §9.2每项在§7至少出现1次 | 统一为§9.2名称 |
| CV-3 | 登记表↔§9.2同步 | 逐行比对编号/版本号/名称 | 以物理文件版本号为准 |

输出格式：`{CV-1: ✅/⚠️, CV-2: ✅/⚠️, CV-3: ✅/⚠️, overall: pass/fail}`

---

> 与 sop-generation-rules V1.4.1 的 C-04 防御指令对齐。本节提供详细的执行步骤和伪代码。

## CV-1~CV-3 交叉校验（压缩版）

| CV | 校验内容 | 校验方法 | 不一致处理 |
|:--:|:---------|:---------|:-----------|
| CV-1 | 版本号锚定 | §9.2版本号 vs 物理文件标题版本号 | 以物理文件为准修正 |
| CV-2 | §7↔§9.2模板名双向 | §7引用名 vs §9.2名称 + §9.2每项在§7至少出现1次 | 统一为§9.2名称 |
| CV-3 | 登记表↔§9.2同步 | 逐行比对编号/版本号/名称 | 以物理文件版本号为准 |

输出格式：{CV-1: ✅/⚠️, CV-2: ✅/⚠️, CV-3: ✅/⚠️, overall: pass/fail}
## V2.0 例外场景 8 字段模板（§8 标准格式）

```markdown
#### EX-{SOP编号}-{NN}：{例外名称}

| 字段 | 内容 |
|:-----|:-----|
| **例外编号** | EX-{SOP编号}-{NN} |
| **例外名称** | {简明描述} |
| **触发条件** | {指标} {比较符} {数值}（如：折扣率 > 15%） |
| **系统自动触发** | Twork 工作流规则：`{指标} {比较符} {阈值}` → 自动创建例外审批任务 → 通知 {责任人} |
| **处理步骤** | ① {步骤1} ② {步骤2} ③ {步骤3} |
| **升级路径** | 当 {升级条件} 时 → 升级至 {升级对象角色代码} |
| **恢复条件** | {恢复正常流程的判定标准} |
| **责任人** | {角色代码}（{角色名称}） |
```

---

## V2.0 模板引用三段式格式约束（§7 生成规则）

**在 §7 操作步骤详解中引用模板时**：

1. **首次引用**（该模板在当前 SOP 中第一次出现）：
 ```
 填写《HY-G-LTC-TMP-001 线索验收表》（见 §9.2），核对以下字段...
 ```

2. **后续引用**（同一 SOP 中第二次及以后）：
 ```
 将结果记录到 TMP-001 中...
 ```

3. **禁止**：
 - 🚫 首次引用直接使用缩写："填写 TMP-001"
 - 🚫 使用与 §9.2 不一致的名称
 - 🚫 省略模板编号只写名称

---

## V2.0 生成日志模板（Phase E）

写入 `{知识库路径}/循环轮次/生成日志.md`：

```markdown
## Phase {X} · {名称}
- 开始时间：{ISO 8601}
- 结束时间：{ISO 8601}
- 产出物：{文件清单}
- 交叉校验结果：CV-1 ✅/⚠️ | CV-2 ✅/⚠️ | CV-3 ✅/⚠️
- 缺陷修复状态：C-01 ✅ | C-02 ✅ | N-01 ✅ | N-02 ✅ | X-01 ✅ | X-02 ✅ | A-01 ✅ | A-02 ✅ | R-01 ✅ | E-01 ✅ | S-01 ✅ | S-02 ✅
```

## V1.4.0 前置校验清单（Pre-Validation Gate · PV-1~PV-4）

> **触发时机**：Q1 Step 6 生成完成后、进入 Q2 验证前。
> **通过条件**：PV-1~PV-4 全部 ✅。任一 ❌ → 返回 Q1 修复 → 重新前置校验。

### PV-1: 蓝图对齐检查

| # | 检查项 | 通过条件 | 失败处理 |
|:-:|:-------|:---------|:---------|
| PV-1.1 | SOP数量 = 蓝图SOP数量 | 实际数 = 蓝图数 | 返回Q1补全缺失SOP |
| PV-1.2 | 模板数量 = 蓝图模板数量 | 实际数 = 蓝图数 | 返回Q1补全缺失模板 |
| PV-1.3 | 所有SOP编号与蓝图一致 | 逐一比对编号 | 返回Q1重命名 |
| PV-1.4 | 所有模板编号与蓝图一致 | 逐一比对编号 | 返回Q1重命名 |
| PV-1.5 | 三方一致性（SOP-000§9.2 = 登记表 = 物理文件） | 100%一致 | 返回Q1修正引用 |

### PV-2: 结构完整性检查

| # | 检查项 | 通过条件 | 失败处理 |
|:-:|:-------|:---------|:---------|
| PV-2.1 | 每个SOP包含§1~§14全部14个章节 | 14/14章节存在 | 返回Q1补充缺失章节 |
| PV-2.2 | 每个§7步骤包含完整15字段卡片（12必填+3条件必填，参照Step4自检统一标准） | 15字段无缺失 | 返回Q1补充字段 |
| PV-2.3 | 每个§10包含≥1项KPI（含公式+目标值） | KPI≥1且有公式 | 返回Q1补充KPI |
| PV-2.4 | 每个模板包含5区块结构 | 标题信息表+正文+使用说明+变更记录+附录 | 返回Q1补充区块 |

### PV-3: 内容一致性检查

| # | 检查项 | 通过条件 | 失败处理 |
|:-:|:-------|:---------|:---------|
| PV-3.1 | §5角色编码均来自岗位职能手册 | 无自创编码 | 返回Q1替换编码 |
| PV-3.2 | §9.2模板引用与蓝图一致 | 引用列表=蓝图列表 | 返回Q1修正引用 |
| PV-3.3 | §11上下游引用指向存在的SOP | 所有引用可解析 | 返回Q1修正引用 |
| PV-3.4 | §8质控指标与§10 KPI一一对应 | 双向一致 | 返回Q1对齐 |

### PV-4: 参数完整性检查

| # | 检查项 | 通过条件 | 失败处理 |
|:-:|:-------|:---------|:---------|
| PV-4.1 | 无未填充的占位符（{xxx}格式） | 0个占位符 | 返回Q1填充 |
| PV-4.2 | 📌待确认项已标注确认流程状态 | 每项有流程标注 | 返回Q1补充标注 |
| PV-4.3 | 缺陷类型标注完整（D1/D2/D3） | 所有问题已标注 | 返回Q1补充标注 |

---

## V1.4.0 后置验证清单（Post-Validation Gate · PV-5~PV-7）

> **触发时机**：Q2 Step 13 验证完成后、进入 Q3 分析前。
> **通过条件**：PV-5~PV-7 全部 ✅。任一 ❌ → 验证结果无效 → 重新执行 Q2。

### PV-5: 验证完整性检查

| # | 检查项 | 通过条件 |
|:-:|:-------|:---------|
| PV-5.1 | 136检查点全部执行（无遗漏） | 执行数=136 |
| PV-5.2 | 每个检查点有明确判定（✅/⚠️/❌） | 无空白判定 |
| PV-5.3 | 每个❌有证据（文件名+行号/内容） | 证据完整 |
| PV-5.4 | 问题已去重（同一根因不重复计数） | RC映射表存在 |

### PV-6: P规则判定检查

| # | 检查项 | 通过条件 |
|:-:|:-------|:---------|
| PV-6.1 | P1~P8逐条判定并记录 | 8条均有结论 |
| PV-6.2 | 缺陷类型已标注（D1/D2/D3） | 所有ISS有类型 |
| PV-6.3 | P4仅统计D1类高严重度 | D1计数正确 |
| PV-6.4 | 判定结论与规则一致 | 结论可推导 |

### PV-7: 流转一致性检查

| # | 检查项 | 通过条件 |
|:-:|:-------|:---------|
| PV-7.1 | 流转方向与P规则判定一致 | 方向正确 |
| PV-7.2 | trend_history已更新 | 记录存在 |
| PV-7.3 | 修复指引与问题清单匹配 | 逐项对应 |
| PV-7.4 | 下一步指令已生成 | 文件存在 |

---

## V1.4.0 最终验收标准（Final Acceptance Checklist · FAC-1~FAC-4）

> **适用时机**：最后一轮 Q2 判定前，或用户手动触发"最终验收"时。
> **通过条件**：FAC-1~FAC-4 全部 ✅。

### FAC-1: 文档完整性

- [ ] SOP数量 = 蓝图数量（≥12个）
- [ ] 模板数量 = 蓝图数量（≥10个）
- [ ] 登记表 = 1个
- [ ] 三方一致性 = 100%

### FAC-2: 质量评分

- [ ] 总分 ≥ 85分
- [ ] 完整性 ≥ 27/30
- [ ] 一致性 ≥ 22/25
- [ ] 准确性 ≥ 17/20
- [ ] 可读性 ≥ 13/15
- [ ] 可执行性 ≥ 8/10

### FAC-3: 缺陷收敛

- [ ] D1类高严重度 = 0
- [ ] D1类中严重度 ≤ 3
- [ ] D2类（流程性）问题已标注确认流程状态
- [ ] D3类（数据性）问题已标注📌待确认

### FAC-4: 闭环验证

- [ ] 上轮问题修复率 ≥ 90%
- [ ] 修复后无新增高严重度问题
- [ ] 质量评分 ≥ 上轮评分
- [ ] 趋势收敛率 > 50%

---

## V1.7.0 内容覆盖度与例外处理门禁（Gate-22~Gate-23）

> **触发时机**：Q1生成阶段，每个SOP文件写入磁盘前执行（Pre-Write Gate扩展）。
> **触发条件**：standardReferencePath 非空。当standardReferencePath为空时，Gate-22/Gate-23跳过不执行。
> **通过条件**：Gate-22 + Gate-23 全部 ✅。任一 🚫 → 阻断写入，要求补充后重新生成。

### Gate-22：内容覆盖度对比（阻断级）

**目标**：确保生成的每个SOP在步骤/章节/规则方面覆盖参考标准的80%以上。

```
FOR EACH sop IN 生成SOP清单:
    refSOP = 从standardReference中按编号/名称匹配对应SOP
    IF refSOP存在:
        步骤覆盖率 = |生成SOP步骤 ∩ refSOP步骤| / |refSOP步骤|
        章节覆盖率 = |生成SOP章节 ∩ refSOP章节| / |refSOP章节|
        规则覆盖率 = |生成SOP规则 ∩ refSOP规则| / |refSOP规则|
        综合覆盖率 = 0.4×步骤覆盖率 + 0.3×章节覆盖率 + 0.3×规则覆盖率
        IF 综合覆盖率 < 0.8:
            🚫 阻断生成，输出缺失内容清单：
            - 缺失步骤：列出refSOP中存在但生成SOP中缺失的步骤
            - 缺失章节：列出refSOP中存在但生成SOP中缺失的章节
            - 缺失规则：列出refSOP中存在但生成SOP中缺失的业务规则
            要求补充缺失内容后重新写入
```

**匹配规则**：
- 步骤匹配：按步骤名称语义相似度≥70%判定为同一步骤
- 章节匹配：按章节编号精确匹配（§1~§14）
- 规则匹配：按规则名称/编号精确匹配（如C-1~C-5、H-1~H-6等）

**输出格式**：
```
📋 Gate-22 内容覆盖度校验结果
| SOP编号 | 步骤覆盖率 | 章节覆盖率 | 规则覆盖率 | 综合覆盖率 | 判定 |
|---------|-----------|-----------|-----------|-----------|------|
| SOP-001 | 85% | 100% | 90% | 91% | ✅ |
| SOP-002 | 60% | 92% | 70% | 72% | 🚫 阻断 |
```

### Gate-23：例外处理场景覆盖度（阻断级）

**目标**：生成SOP的例外场景集合必须覆盖参考标准SOP的例外场景集合的80%以上。

```
FOR EACH sop IN 生成SOP清单:
    refSOP = 从standardReference中按编号/名称匹配对应SOP
    IF refSOP存在 且 refSOP含§13例外处理:
        refExceptions = refSOP.§13的例外场景集合（按场景名称提取）
        genExceptions = 生成SOP.§13的例外场景集合
        覆盖率 = |genExceptions ∩ refExceptions| / |refExceptions|
        IF 覆盖率 < 0.8:
            🚫 阻断，输出缺失的例外场景清单：
            - 列出refSOP§13中存在但生成SOP§13中缺失的例外场景
            - 每个缺失场景标注四要素（触发条件/处理模式/升级路径/恢复回退）
            要求补充缺失例外场景后重新写入
```

**匹配规则**：
- 例外场景匹配：按场景名称语义相似度≥70%判定为同一场景
- 四要素完整性：每个例外场景必须含触发条件+处理模式+升级路径+恢复/回退

📌 Gate-22/Gate-23 与 sop-generation-rules V1.5.0 中的 E28/E29 规则联动执行。
📌 此门禁解决"格式完美但内容严重缺失"的根因问题（RC-1/RC-6）。

---

## V1.4.0 §1~§14 章节结构锁定规范（4级锁定）

> **目的**：确保跨次生成的SOP文档结构高度一致，消除"每次格式不同"的问题。

### Level 1：结构锁定

```
§1 文档信息 [固定] 必须包含：文档编号、版本号、编制人、审批人、生效日期
§2 目的与适用范围 [固定] 必须包含：§2.1目的 + §2.2适用范围（含业务类型标识）
§3 术语定义 [固定] 必须包含：≥5个核心术语，格式为"术语 | 英文缩写 | 定义"
§4 前置条件与输入 [固定] 必须包含：输入清单表格（来源/名称/格式/必要性）
§5 角色与职责 [固定] 必须包含：§5.1角色清单 + §5.2 RACI矩阵（引用SOP-000）
§6 流程/任务架构 [固定] 必须包含：流程图（Mermaid）+ 阶段说明表
§7 操作步骤详解 [固定] 每步必须包含15字段卡片（12必填+3条件必填）（见下方模板）
§8 质控标准 [固定] 必须包含：质控项表格（检查点/标准/方法/频率/责任人）
§9 输出物与模板 [固定] 必须包含：§9.1输出清单 + §9.2模板引用（必须与蓝图一致）
§10 度量指标 [固定] 必须包含：KPI表格（编号/名称/公式/目标值/数据来源/责任人/采集频率）
§11 上下游衔接 [固定] 必须包含：接口表（方向/接口编号/对接SOP/数据内容/频率）
§12 合规与风险 [固定] 必须包含：合规要求清单 + 风险清单（风险/等级/应对/责任人）
§13 例外处理 [固定] 必须包含：例外场景表（场景/触发条件/处理流程/升级路径/时限）
§14 版本与审批 [固定] 必须包含：版本历史表 + 审批签字栏
```

### Level 2：编号锁定

```
SOP编号 = 蓝图中预分配的编号（HY-G-{流程代码}-SOP-{NNN}）
模板编号 = 蓝图中预分配的编号（HY-G-{流程代码}-TMP-{NNN}）
角色编码 = 岗位职能手册中的编码（不允许自创）
服务类目编码 = 服务类目手册中的编码（不允许自创）
KPI编号 = {SOP编号}-M-{NNN}（SOP级）或 KPI-{NNN}（流程级）
```

### Level 3：内容锁定（S2差异化修复模式下）

```
未标记修改的章节不可重写
修复范围严格限定在问题清单内
修复后必须执行一致性回归测试
```

### Level 4：参数锁定

```
生成指令中的约束参数不可跨轮次变化
质量评分阈值不可跨轮次调整
P规则判定条件不可跨轮次修改
```

---
