mcpField
G
gap-surfacer

gap-surfacer

github.com/anthropics生产力9.8k590 次安装14 周前更新
代码仓库

关于 gap-surfacer

供法律与合规团队维护监管差距追踪表的技能,可从政策差异分析中接收问题、报告状态并管理负责人通知。它区分合规缺口与前规则观察或评论决策,并要求发送 Slack 消息前先预览和确认。

主要功能

  1. 01从政策差异分析登记问题
  2. 02按类型追踪监管差距
  3. 03生成状态与逾期报告
  4. 04预览并确认 Slack 通知
  5. 05关闭问题或记录风险接受

适用场景

  1. 01汇总待处理的政策合规问题
  2. 02提醒负责人关注临近期限的事项
  3. 03记录前规则评论决策
  4. 04记录问题解决或风险接受情况

MCP 相关

若 Slack MCP 可用且已设置负责人信息,可发送负责人私信;每条消息发送前均需用户确认。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/anthropics/claude-for-legal --skill gap-surfacer

安装后在 Claude Code 中输入/gap-surfacer确认已加载。

附带文件references/comment-tracker.yamlreferences/gap-tracker.yaml

详细介绍

缺口追踪器

默认开启负责人通知。若要让负责人退出通知,请将 owner_slack 留空。

每次发送前确认——无一例外

发送任何 Slack 消息前(分配通知、逾期提醒、批量通知、状态报告):

  1. 向用户准确展示即将发送的内容和接收对象:“我即将向 [N] 人发送以下内容:[预览]。”
  2. 等待用户明确同意。
  3. 如果消息包含任何引文、截止日期或合规结论,请补充:“⚠️ 此消息中的引文未经核实——发送前我不会确认其是否为最新内容。你要我添加‘采取行动前请先核实’这一行吗?”
  4. 未经确认,绝不发送。无论是否按计划发送,无论是否批量发送,也无论昨天是否已经发送过,都不例外。

在无需确认的情况下自动发送,是此插件中最不可逆的操作:它会向无法核实内容的人发送此插件自己的页脚也声明可能有误的内容。这样的情况不能跳过审核。

事项上下文

事项上下文。 查看实践级 CLAUDE.md 中的 ## Matter workspaces。如果 Enabled 为 ✗(内部用户的默认值),请跳过本段其余内容——技能会使用实践级上下文,事项机制不可见。如果已启用且没有当前事项,请询问:“这是关于哪个事项的?运行 /regulatory-legal:matter-workspace switch <slug>,或回复 practice-level。”加载当前事项的 matter.md,获取事项专属上下文和覆盖设置。将输出写入事项文件夹 ~/.claude/plugins/config/claude-for-legal/regulatory-legal/matters/<matter-slug>/。除非 Cross-matter context 为 on,否则绝不读取其他事项的文件。


用途

缺口被发现后,往往会被遗忘。此技能会持续追踪这些缺口,直到它们得到弥补,并通知负责弥补缺口的人员。

跟踪表

位于 ~/.claude/plugins/config/claude-for-legal/regulatory-legal/gap-tracker.yaml:

关于 comment-tracker.yaml 的说明:~/.claude/plugins/config/claude-for-legal/regulatory-legal/comment-tracker.yaml 是评论技能所有的同级文件。reg-feed-watcher(会自动记录 NPRM)和评论技能(会跟踪用户发起的评论决策)都会写入此文件。本技能不会读取或交叉引用该文件。如果修改 comment-tracker 的架构,请同时更新这两个实际使用方。

gaps:
  - id: GAP-001
    requirement: "[what the reg requires]"
    regulation: "[name + cite]"
    policy_affected: "[name or 'new policy needed']"
    gap_type: "partial"  # none | partial | full | new-policy | watch | comment-decision
    owner: "[name from policy index]"
    owner_slack: "[Slack user ID or handle, if known]"
    opened: 2026-03-01
    due: 2026-06-01  # reg effective date, internal deadline, or comment deadline
    status_verified: true  # false if upstream policy-diff could not confirm the rule is in force; unverified items never hit 🔴 Overdue
    status: "open"  # open | in-progress | closed | risk-accepted
    notified: false  # set to true after assignment notification sent
    resolution: ""  # filled on close

**切勿将未经核实的规则判定为逾期。**🔴「逾期」分类意味着“我们错过了具有约束力的截止日期”。如果规则状态未经核实(policy-diff 设置了 status_verified: false,或规则已超过 12 个月/已过适用日期但未确认其时效性),截止日期可能不具有约束力。应使用 🟡「需要审核」,并注明:“如果该规则按发布内容生效,则已逾期 [N] 天。升级处理前请核实规则状态。”将未经核实规则的条目归入 watch,而非活跃的逾期/即将到期类别;watch 的复查频率会强制在条目再次作为合规差距出现前检查规则状态。

gap_type 的含义:

值含义典型提醒频率
none政策已涵盖该要求。仅为审计留痕而记录。此类情况应很少见——如果大多数条目都是 none,则差异比对很可能针对了错误的政策。不自动提醒。
partial政策涉及该主题,但未完全涵盖新要求。需要修订。到期前 30 天。
full政策与新要求相矛盾,或未明确提及新要求。需要重写或新增章节。到期前 30 天。
new-policy现有政策均未涵盖此要求。需要起草政策。到期前 30 天。
watch前瞻性事项——ANPR、RFI、尚未定稿的拟议规则。当前没有合规义务;政策工作须等到最终规则发布后再开展。due: 是复查日期(通常为预计发布 NPRM 的日期或一年后的日期),而非合规截止日期。不自动提醒;在 NPRM 发布时或复查日期重新评估。
comment-decision正在等待规则制定前的评论决策——团队正在决定是否针对 ANPR 或 NPRM 提交评论。due: 是评论截止日期。到期前 21 天(比合规差距更紧,因为起草评论的窗口期很短)。

watch 或 comment-decision 条目不是合规差距,而是由监控技能和评论技能生成的规则制定前事项跟踪记录。应在状态报告中将它们单独归类展示,以便早上 7 点阅读报告的法律顾问一眼区分“在监管机构发现前修复”和“持续关注”的事项。

模式

模式 1:从 policy-diff 导入

当 policy-diff 发现差距时,将其追加到 gap-tracker.yaml。进行去重——相同要求 + 相同政策 = 同一项差距,不要重复计数。

导入后,通知负责人:

如果 Slack MCP 可用且已设置 owner_slack:

向差距负责人发送 Slack 私信——但必须先完成本文件顶部的逐条发送确认。向用户预览消息,等待明确同意,然后再发送:

📋 New compliance gap assigned to you

Gap: [GAP-ID] — [requirement, one sentence]
Regulation: [name + link]
Policy affected: [policy name or "new policy needed"]
Due: [reg effective date]

View full gap tracker: /regulatory-legal:gaps

发送后,在跟踪表条目中设置 notified: true。

如果 Slack MCP 不可用:在状态报告中注明未发送负责人通知,并标记为需要人工跟进。

模式 2:状态报告
[WORK-PRODUCT HEADER — per plugin config ## Outputs — differs by role; see `## Who's using this`]

## Open Gaps — [date]

### Bottom line

[N gaps need action by [date] — top 3: X, Y, Z]

### 🔴 Overdue

| ID | Requirement | Policy | Owner | Due | Days over |
|---|---|---|---|---|---|

### 🟠 Due in <30 days

[same]

### 🟡 Open

[same]

### 👀 Watch items (forward-looking — pre-rule)

[Pre-rule tracking — `watch` and `comment-decision` entries. These are not
compliance gaps. Surface separately so the overdue / due-soon bands contain
only real compliance deadlines.]

| ID | Item | Type (ANPR/NPRM/RFI) | Comment deadline | Owner |
|---|---|---|---|---|

### In progress

[same]

### Recently closed

[last 5, with resolution]

---

**Oldest open gap:** [ID], [N] days
**Gaps by owner:** [breakdown]
**Owner notifications sent:** [N] / [N total gaps]

---

**Next step for each open gap:** `/regulatory-legal:policy-redraft` produces a marked-up policy redraft with `[verify]` tags and a change summary. It's a proposal for the policy owner's review — not a direct edit to source documents.

---

**Verify citations before relying on them.** Regulation citations in this tracker were AI-generated upstream (by reg-feed-watcher and policy-diff) and have not been checked against a primary source. Before closing or risk-accepting a gap — or citing one in an attestation, board report, or regulator response — confirm the underlying rule against Westlaw, your firm's research platform, or the issuing authority's website. AI-generated regulatory citations are sometimes fabricated, misquoted, or stale. Source tags carried forward from upstream (e.g., `[Federal Register]`, `[web search — verify]`) show where each citation originated; `verify` tags carry higher fabrication risk and should be checked first. Never strip the tags when surfacing gaps.

依赖配置的回退处理

此技能从 ~/.claude/plugins/config/claude-for-legal/regulatory-legal/CLAUDE.md 读取差距响应负责人和升级路径。当所需值为空或仍为 [PLACEHOLDER] 时:

  • 缺少差距响应分流负责人: 保持任务未分配,并在输出末尾追加:“## Gap response process 中未设置分流负责人。请使用 /regulatory-legal:cold-start-interview --redo 分配负责人,或编辑 ~/.claude/plugins/config/claude-for-legal/regulatory-legal/CLAUDE.md,以便将新差距分派给相应负责人。”
  • 新录入差距的负责人未知(政策库中没有负责人): 将差距记录为 owner: [unassigned],并追加:“有 [N] 个差距在录入时没有负责人,因为政策库未为受影响的政策指定负责人。请在政策库的 Owner 列中填写负责人,以便分派这些差距。”
  • 重大差距逾期但缺少升级路径: 仍将其报告为逾期,并追加:“未为重大逾期差距设置升级路径。请使用 /regulatory-legal:cold-start-interview --redo 配置,或编辑 ~/.claude/plugins/config/claude-for-legal/regulatory-legal/CLAUDE.md。”

如果这些值已填写,则不要提及配置。

到期日提醒逻辑(在状态报告和计划 Agent 运行期间执行):

提醒频率取决于 gap_type:合规差距提前 30 天提醒,意见决策事项提前 21 天提醒(由于起草窗口较短,因此提醒时间更紧),观察事项不自动提醒(有 NPRM 发布时再重新评估)。

对于每个状态为 "open" 或 "in-progress" 的差距:

  • partial、full、new-policy、none:如果到期日距今不超过 30 天,且过去 7 天内未发送过提醒,则预览一条 Slack 私信(主题为“⏰ 提醒:合规差距将在 [N] 天后到期”),每次发送前都必须等待确认。
  • comment-decision:如果评论截止日期距今不超过 21 天,且过去 7 天内未发送过提醒,则预览一条 Slack 私信(主题为“💬 意见决策截止日期还有 [N] 天”),每次发送前都必须等待确认。
  • watch:不自动提醒。审核跟踪表或记录同一法规的 NPRM 时再重新查看。
  • 如果合规差距的到期日已过:在报告中标记为逾期,并预览一条 Slack 私信;发送前必须等待确认。
  • 如果 comment-decision 事项的评论截止日期已过,且未提交评论:将其标记为逾期,预览一条 Slack 私信(发送前必须等待确认),并要求负责人添加备注,将状态更新为 risk-accepted(有意不提交评论)或 closed(已提交评论)。
  • 在跟踪表中记录提醒时间戳,以避免重复提醒。
  • 批量提醒仍须逐条确认发送——预览“即将发送 12 条私信”并等待确认即可;不得未经确认就静默发送整批提醒。
后果重大操作关卡(合规认证)

在将差距标记为已解决,或生成任何证明符合监管要求的输出(内部证明、董事会报告、审计回复、监管机构回复)之前: 阅读 ~/.claude/plugins/config/claude-for-legal/regulatory-legal/CLAUDE.md 中的 ## Who's using this。如果 Role 是 Non-lawyer:

认证合规——或将差距标记为已解决——会产生法律后果。如果后来证明认证有误,该认证可能会被用于对付公司;过早关闭差距也会使未处理的风险继续存在。你是否已与律师审阅此事?如果是,请继续。如果没有,以下是你可以带给律师的简要说明:

  • 差距(要求、来源、政策差异分析发现的内容)
  • 拟议解决方案涵盖和未涵盖的内容
  • 任何剩余差距或歧义
  • 未决问题及尚未解决的事项
  • 可能出现的问题(认证范围过宽、尚未解决的剩余义务、与此前立场不一致)
  • 应向律师确认的事项(此事是否确实已解决;是否应附理由接受风险;是否需要外部律师认可)

如果你需要寻找律师:联系你的专业监管机构提供的转介服务是最快的起点(美国的州律师协会;英格兰和威尔士的 SRA/Bar Standards Board;苏格兰/北爱尔兰/爱尔兰/加拿大/澳大利亚的 Law Society;或你所在司法管辖区的同类机构)。

未经明确肯定,不得通过此关卡将差距标记为已关闭,也不得生成合规认证。状态报告和跟踪视图无需经过此关卡。

模式 3:关闭差距
/regulatory-legal:gaps --close GAP-001
Resolution: "Policy updated v2.3, approved [date]"

将状态更新为已关闭,记录解决方案和关闭日期。

模式 4:接受差距风险

有时答案是“我们不打算修复此问题”。这是一个有效的决定 ——但应予以记录。

/regulatory-legal:gaps --accept GAP-002
Rationale: "Requirement applies only to [condition we don't meet]. Revisit if [trigger]."
Accepted by: [name with authority]

状态 → 已接受风险。差距仍保留在跟踪器中(不删除),但不再出现在 未解决差距报告中。

集成:reg-change-monitor agent

该 Agent 的摘要包含差距数量和最久未解决差距的时长。如有任何差距逾期,会列在摘要顶部。该 Agent 还会运行到期提醒检查,并发送所有尚未发送的 Slack 通知。

以“后续步骤决策树”结尾

根据 CLAUDE.md ## Outputs 中的要求,以“后续步骤决策树”结尾。根据此技能刚刚生成的内容调整选项——五个默认分支(起草 X、升级处理、获取更多事实、观望等待、其他事项)只是起点,并非固定选项。决策树就是输出;由律师选择。

如果跟踪器中显示的未解决差距超过约 10 项,或用户提出要求:提供仪表板(参见 CLAUDE.md ## Outputs → Dashboard offer for data-heavy outputs)。根据此输出调整仪表板内容——按严重程度统计数量、按到期日期排列的差距时间线,以及包含负责人、状态和最近更新日期且可排序的网格。

此技能不执行的操作

  • 不会自行关闭差距。关闭差距需要解决说明,以及说明中描述的人工操作。
  • 如果未配置 Slack MCP,则不会发送 Slack 通知。此时会改为在状态报告中标记。
  • 每项差距在每个 7 天周期内不会发送多次提醒。提醒一次即可,不要持续催促。

评论

支持 Markdown