---
name: regulatory-gap-surfacer
description: >
  参考技能：共享内规差异与评议台账框架，被 `regulatory-gaps`（内规差异跟踪）
  和 `regulatory-comments`（评议管理）引用。跟踪未整改处理的政策内规差异及其整改状态，
  从 `regulatory-policy-diff`（政策比对）摄入内规差异，呈现开放的与陈旧的，路由给负责人，
  并按逐条预审 + 显式批准规则通过 DM 通道（飞书 / 钉钉 / 企业微信）通知负责人。
  在内规差异跟踪和评议管理技能做实质工作前加载。
user-invocable: false
---

# 内规差异呈现器

> **负责人通知**：默认开启。要把某个负责人关掉通知，把 `负责人_DM` 留空。

## 逐条预审 —— 无例外

发送任何 DM（派单通知、逾期提醒、批量通知、状态报告）**之前**：

1. 给用户看你**正要发什么**给**谁**："我准备发这条给 [N] 个人：[预审]。"
2. 等明确的"发"
3. 如果消息含引用、截止日或合规结论，加："⚠️ 本消息中的引用未经核验 —— 我没在发送前确认它们现行。要我加一句'依据前请核验'吗？"
4. **绝不**不经确认就发。不是按节奏。不是批量。不是因为昨天发过

不经确认自动发送是本插件中**最不可逆的动作** —— 把本插件自己脚注说可能有误的内容，发给没办法核实的人。这组合不被允许跳过复核。

中国职场文化下"@人"信号强烈，**逐条预审 + 显式批准**在这里比在其他文化场景下更必要。

## 事项上下文

**事项上下文**：核查实务层级 `profile.md` 中 `## 事项工作区`。如果 `启用` 是 `✗`（企业内部法务用户默认），跳过本段 —— 技能用实务层级上下文，事项机制不可见。如果启用且没有当前事项，问："这是哪个事项？跑 `regulatory-matter-workspace switch <slug>` 或说切到实务层级。"读当前事项的 `matter.md` 拿事项特定上下文和覆盖项。输出写到事项目录 `$LEGAL_AGENT_PROFILE_HOME/regulatory-legal/matters/<matter-slug>/`。**绝不**读其他事项的文件，除非 `跨事项上下文` 是 `开启`。

---

## 用途

内规差异被找到然后被忘记。本技能跟踪它们直到关闭，并通知负责关闭它们的人。

## 台账

在 `$LEGAL_AGENT_PROFILE_HOME/regulatory-legal/gap-tracker.yaml`：

> **关于 `comment-tracker.yaml` 的注**：`$LEGAL_AGENT_PROFILE_HOME/regulatory-legal/comment-tracker.yaml` 是同级文件，归 `regulatory-comments`（评议管理）技能所有。由 `regulatory-reg-feed-watcher`（监管动态监测，自动登记征求意见稿）和 `regulatory-comments`（跟踪用户发起的评议决策）写入。本技能不读或交叉引用它。如果你改评议台账结构定义，记得同时更新两个真实使用方。

```yaml
gaps:
  - id: GAP-001
    requirement: "[规章要求什么]"
    regulation: "[名 + 引用]"
    policy_affected: "[名或'需要新政策']"
    gap_type: "partial"  # none | partial | full | new-policy | watch | comment-decision | inspection-task
    负责人: "[来自政策索引的姓名]"
    负责人_DM: "[飞书 / 钉钉 / 企业微信的用户 ID 或工号，如已知]"
    opened: 2026-03-01
    due: 2026-06-01  # 规章生效日、内部截止日、或评议截止日
    status_verified: true  # 如果上游 regulatory-policy-diff 不能确认规则现行有效则 false；未核验项绝不达 🔴 逾期
    status: "open"  # open | in-progress | closed | risk-accepted
    notified: false  # 派单通知发出后设为 true
    resolution: ""  # 关闭时填写
```

**绝不**把基于未核验规则的内规差异归为逾期。🔴 逾期分类意味着"我们错过了有约束力的截止日"。如果规则状态未核验（`regulatory-policy-diff` 政策比对设 `status_verified: false`，或规则超过 12 个月 / 适用日期已过但无现行有效性确认），截止日可能没有约束力。用 🟡"需要复核"并注："如果此规则按发布版现行有效，本项会逾期 [N] 天。在上报前先核实规则状态。"把未核验规则项路由到 `watch`，不到活跃逾期 / 即将到期档；`watch` 的复审节奏强制在项重新作为合规内规差异出现前做规则状态核查。

**`gap_type` 语义**：

| 值 | 含义 | 典型提醒节奏 |
|---|---|---|
| `none` | 政策已覆盖要求。仅做审计记录。应罕见 —— 如多数条目是 `none`，比对可能跑错了政策 | 无自动提醒 |
| `partial` | 政策处理话题但不完全覆盖新要求。需要修订 | due 前 30 天 |
| `full` | 政策矛盾或静默遗漏新要求。需要重写或新章节 | due 前 30 天 |
| `new-policy` | 无现有政策覆盖。需要起草新政策 | due 前 30 天 |
| `watch` | 前瞻项 —— 征求意见稿、行政指导、监管讲话等未定稿规则。今天无合规义务；政策工作等最终规则。`due` 是**复审日期**（通常是预计正式发布日期或一年视野），不是合规截止日 | 无自动提醒；正式规则发布或复审日期时重新评估 |
| `comment-decision` | 预规则评议决策未决 —— 征求意见稿、行政指导等团队决定是否提交评议意见的项。`due` 是评议截止日 | due 前 21 天（比合规内规差异紧，因为评议起草窗口短） |
| `inspection-task` | **监管下发函拆解的整改任务**（v3 阶段 3 引入）。每条任务关联到 `letter.yaml` 的某条要求事项。`regulatory_deadline` 是监管硬截止日，`due` = `regulatory_deadline - 5 工作日缓冲` | **30 / 15 / 5 天三档**（监管截止日硬刚性，错过有处罚后果） |

`watch` 或 `comment-decision` 条目**不是合规内规差异** —— 是 `regulatory-reg-feed-watcher`（监管动态监测）和 `regulatory-comments`（评议管理）产出的预规则跟踪产物。`inspection-task` 是另一类**特殊内规差异** —— 来自被动响应监管的工作流（详见 `regulatory-incoming-letter`（监管来函处置）技能）。在状态报告中分别用单独区域呈现它们，让早上 7 点读的法务 / 合规一眼看出哪些是"在监管发现之前修这事"vs"留意这事"vs"**已被监管点名要求整改**"。

## 模式

### 模式 1：从 `regulatory-policy-diff`（政策比对）摄入

`regulatory-policy-diff`（政策比对）找到内规差异时，附加到 `gap-tracker.yaml`。**去重** —— 同要求 + 同政策 = 同内规差异，不要重复计数。

**摄入后通知负责人**：

如果 DM 通道 MCP 可用（飞书 / 钉钉 / 企业微信）且 `负责人_DM` 已设：

按本文件顶部的逐条预审规则发送 DM 给内规差异负责人 —— **但只在**预审给用户、等到明确的"发"之后再发：

```
📋 新内规修改跟进派给你

内规差异：[GAP-ID] —— [要求，一句话]
监管：[名 + 链接]
受影响政策：[政策名或"需要新政策"]
到期：[规章生效日]

查看完整内规差异台账：跑 `regulatory-gaps`（内规差异跟踪）
```

发送后在台账条目里设 `notified: true`。

如果 DM 通道 MCP 不可用：在状态报告里注明负责人通知未发，并标记给手工跟进。

### 模式 2：状态报告

```markdown
[工作秘密标识 —— 按 ## 谁在用这个插件 + shared/header-by-role.md 选定]

## 未整改处理的内规差异 —— [日期]

### 核心结论

[N 条内规差异在 [日期] 前需要行动 —— 前 3：X、Y、Z]

### 🔴 逾期

| ID | 要求 | 政策 | 负责人 | 到期 | 超期天数 |
|---|---|---|---|---|---|

### 🟠 30 天内到期

[同上]

### 🟡 开放

[同上]

### 👀 关注项（前瞻 —— 预规则）

[预规则跟踪 —— `watch` 和 `comment-decision` 条目。这些不是合规内规差异。单独呈现让逾期 / 即将到期档只含真实合规截止日。]

### 🔴 监管下发函任务（按函件分组）

[`inspection-task` 类型的任务，**按 `inspection_letter_id` 分组**显示。每个函件一个子区域，列该函件下的全部 `inspection-task`。监管截止日硬刚性，单独成档显示，且**优先级最高**（排在逾期 / 30 天内到期之上）。]

#### 函件：[函件名称]（[函件 ID]） —— 距监管截止日 [N] 天

| INS-ID | 要求事项 | 整改负责人 | 提交状态 | 备注 |
|---|---|---|---|---|

汇总：已完成 [N] 条 / 进行中 [N] 条 / 未启动 [N] 条 / 风险接受 [N] 条

[如某条任务距监管截止日 <5 天且仍 `in-progress` / 未启动 → 🔴 标红，并升级到 `escalation_path.重大业务影响决策`]

| ID | 项 | 类型（征求意见稿 / 行政指导 / 监管讲话） | 评议截止日 | 负责人 |
|---|---|---|---|---|

### 进行中

[同上]

### 最近闭环

[最近 5 条，含解决方案]

---

**最老开放内规差异**：[ID]，[N] 天
**按负责人分布**：[分布]
**已发送的负责人通知**：[N] / [N 总内规差异]

---

**对每个开放内规差异的下一步**：`regulatory-policy-redraft` 产出带 `[需核验]` 标和变化总表的政策修订红线稿。是供政策负责人复核的草稿 —— 不是直接改源文档。

---

**依赖前请核验引用**。本台账中的规章引用由上游（`regulatory-reg-feed-watcher` 监管动态监测 和 `regulatory-policy-diff` 政策比对）AI 生成，未经一手出处核对。在关闭或风险接受内规差异之前 —— 或在合规承诺、董事会报告、监管回函中引用它之前 —— 对照元典开放平台、贵所检索平台、或发布机关网站核实底层规则。AI 生成的监管引用有时虚构、误引或过时。从上游传过来的源标签（例如 `[国家法律法规数据库]`、`[网页检索 — 需核验]`）显示每个引用来自哪里；标"需核验"的项造假风险更高，应先核。**绝不**在呈现内规差异时剥离标签。
```

## 配置依赖降级

本技能从 `$LEGAL_AGENT_PROFILE_HOME/regulatory-legal/profile.md` 读内规差异响应负责人和升级链。当所需值为空或仍是 `[PLACEHOLDER]`：

- **内规差异初筛人缺失**：派单留 `open` 并附："`## 内规差异响应流程` 没设初筛人。用 `regulatory-cold-start-interview --redo` 或改 `$LEGAL_AGENT_PROFILE_HOME/regulatory-legal/profile.md` 指派一个，让新内规差异被路由。"
- **新摄入内规差异的负责人未知**（政策库没标负责人）：把内规差异登记为 `负责人: [未派单]` 并附："[N] 条内规差异摄入时无负责人，因为政策库没标受影响政策的负责人。填政策库负责人栏让它们被路由。"
- **显著不符合项目逾期的升级链缺失**：仍报为逾期，并附："未设显著不符合项目逾期的升级链。用 `regulatory-cold-start-interview --redo` 或改 `profile.md` 配置。"

相关值已填写时**不说**关于配置的事。

**到期提醒逻辑**（在状态报告和定时巡检任务中跑）：

提醒节奏是 `gap_type` 的函数：

| gap_type | 节奏 | 理由 |
|---|---|---|
| `partial` / `full` / `new-policy` / `none` | 单档：到期日前 30 天 | 合规内规差异通常可在 30 天内推动整改 |
| `comment-decision` | 单档：到期日前 21 天 | 评议起草窗口短 |
| **`inspection-task`** | **三档：30 / 15 / 5 天**（关键节点 + 紧急升级） | **监管硬截止日，错过有处罚后果**。15 天抄送 `policy_owner`，5 天升级 `escalation_path` |
| `watch` | 无自动提醒 | 等正式规则发布时重新评估 |

对每条状态为 `open` 或 `in-progress` 的内规差异：
- `partial`、`full`、`new-policy`、`none`：到期日在 30 天内且最近 7 天未发提醒 → 预审一条 DM（标题"⏰ 提醒：合规内规差异 [N] 天后到期"），等逐条预审确认才发
- `comment-decision`：评议截止日在 21 天内且最近 7 天未发提醒 → 预审 DM（标题"💬 评议决策截止日 [N] 天后"），等逐条确认才发
- **`inspection-task`**：按**三档**触发：
  - `regulatory_deadline` 30 天前：预审 DM 给 `task_owner`（标题"📋 监管整改 30 天后到期"）
  - `regulatory_deadline` 15 天前：预审 DM 给 `task_owner` + 抄送 `policy_owner`（标题"⚠️ 监管整改 15 天后到期"）
  - `regulatory_deadline` 5 天前：预审 DM 给 `task_owner` + `policy_owner` **+ 触发 `escalation_path.重大业务影响决策`**（标题"🔴 监管整改 5 天后到期 —— 紧急"）
  - `regulatory_deadline` 已过且未上报：🔴🔴 持续告警 + 强制升级
- `watch`：无自动提醒。台账复核时或同一规章的征求意见稿登记时重新评估
- 合规内规差异到期日已过：在报告中标记为逾期 → 预审 DM，等逐条确认才发
- `comment-decision` 评议截止日已过且无评议提交：标记为逾期，预审 DM（等逐条确认），让负责人更新为 `risk-accepted`（主动不提）或 `closed`（已提交）并附说明
- `inspection-task` `regulatory_deadline` 已过且未上报：🔴 标红 + 强制升级到 `escalation_path.最终决策` + 法务总监紧急会议；**绝不**自动关闭，由人工决策（如向监管申请延期、或承担逾期后果）
- 在台账中记录提醒时间戳避免重复唠叨
- **批量提醒仍要逐条预审** —— 预审"你正要发 12 条 DM"等"是"算；静默发批量不算

### 重大动作确认环节（合规承诺）

**关闭内规差异为已解决，或产出任何承诺合规的输出（内部承诺、董事会报告、审计响应、监管回函）之前**：读 `$LEGAL_AGENT_PROFILE_HOME/regulatory-legal/profile.md` 中 `## 谁在用这个插件`。如果角色是**企业法务（无律师证）**或**业务部门人员**：

> 合规承诺 —— 或关闭内规差异为已解决 —— 有法律后果。承诺如以后被证明错了，可能被援引追责；过早关闭会留下未解决的暴露。已经与律师 / 法务复核过吗？如果是，继续。如果否，这是带去复核的简报：
>
> - 内规差异（要求、出处、政策比对找到了什么）
> - 拟解决方案做了什么、没做什么
> - 任何残余内规差异或含糊
> - 未决的开放问题
> - 可能出错的事（过宽承诺、未解决残余义务、与之前立场不一致）
> - 应当问律师 / 法务的（这是真的关闭了吗、是否应该带理由风险接受、是否需要外部律师并意见）
>
> 要找律师 / 法务，参见 `regulatory-cold-start-interview`（冷启动访谈）中的引荐资源。

**升级链 / 会签链触发逻辑（v2 字段化版）**：

读 `profile.md` 中 `## 内规差异响应流程 → escalation_path`，按当前动作的影响级别路由到对应字段：

| 当前动作 | 触发 `escalation_path` 字段 | 提示内容 |
|---|---|---|
| 关闭普通内规差异（`partial` / `new-policy` 类） | `首道审核` | "本动作业务规范显示由 [姓名 + 角色] 复核。是否已通过？" |
| 关闭显著不符合项目（`full` 类 / 严重度 🔴） | `显著不符合项目会签` | "本动作需要 [角色 A] + [角色 B] 会签（类型：[会签/单签/任一签]）。是否已完成？" |
| 涉及业务流程改造、跨年度预算等 | `重大业务影响决策` | "本动作影响 [描述]，业务规范显示需要 [最终决策角色] 拍板。是否已上报？" |
| 跨部门事项（多归口部门 + 业务部门联动） | `跨部门评审机制` | "本事项跨部门，业务规范显示走 [机制名]（节奏：[节奏]）。是否已提案到下次会议？" |

未明确"是"前不要标内规差异关闭或产出合规承诺。状态报告和跟踪视图不需要这个拦截。

**字段缺失时**：如 `escalation_path` 的某节点未配置（用户跳过了冷启动访谈的对应问题），降级到通用提示"本动作需要更高层 / 跨部门确认。业务规范该节点未配置，请用 `regulatory-customize`（个性化调整）配置后再继续。"

### 模式 3：关闭内规差异

```
regulatory-gaps --close GAP-001
解决方案："政策更新 v2.3，于 [日期] 批准"
```

把状态更新为 closed，记录解决方案和关闭日期。

### 模式 4：风险接受内规差异

有时答案是"我们不修这个"。这是有效决策 —— 但应记录。

```
regulatory-gaps --accept GAP-002
理由："要求仅适用于 [我们不满足的条件]。如果 [触发] 时重审"
接受人：[有职权的姓名]
```

状态 → risk-accepted。留在台账（不删）但从未整改处理的内规差异报告中移出。

## 与 `reg-change-monitor` 后台监控任务集成

后台监控任务的简报包含内规差异计数和最老开放内规差异的天数。任何逾期，放在简报顶部。后台监控任务也跑到期提醒核查，发任何未发的 DM（按逐条预审规则）。

## 收尾决策树

按 `profile.md` 中 `## 输出` 的决策树收尾。把选项定制给本技能这次产出的内容 —— 五个默认分支（起草 X、上报、补充事实、观察等待、其他）是起点，不是锁死。决策树本身就是输出；律师 / 法务挑。

如果台账呈现超过约 10 条开放内规差异，或用户主动要：**提议仪表盘**（见 `profile.md` 中 `## 输出 → 数据密集型输出的仪表盘选项`）。把这份提议塑造给本输出 —— 按严重度计数、按到期日的内规差异时间线、含负责人 / 状态 / 最后触碰日期的可排序网格。

## 本技能不做的事

- 自己关闭内规差异。关闭需要解决方案说明和说明描述的人工动作
- 在 DM 通道 MCP 未配置时发通知。降级到在状态报告里标记
- 单条内规差异每 7 天发超过一条提醒。**唠叨一次，不是不停**
