其他
当 policy-diff 发现合规缺口并需要跟踪…
在 regulatory-legal 工作流中追踪政策差异产生的合规缺口,生成状态报告、路由负责人并按确认发送 Slack 通知。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 57/100 ×0.15
适用场景
当 policy-diff 发现合规缺口特定
解决思路
- 默认开启负责人通知;要让某个负责人退出通知,留空其 `owner_slack`。
- 发送任何 Slack 消息前(分配通知、逾期提醒、批量通知、状态报告)都先向用户展示要发送的确切内容和收件人:`我即将发送给 [N] 人:[预览]`。
- 等待用户明确说 yes。
- 如果消息包含引用、截止日期或合规结论,追加:`⚠️ 此消息中的引用未经核实——我在发送前不确认它们是最新的。是否要添加“行动前核实”一行?`
- 没有确认绝不发送;不因按周期、批量或昨天已发送过就跳过确认。
- 检查 practice-level `CLAUDE.md` 中的 `## Matter workspaces`。如果 `Enabled` 为 `✗`(内部用户默认),跳过事项上下文,改用 practice-level context,matter 机制不可见。
- 如果 matter 功能启用且没有活跃 matter,询问:`Which matter is this for? Run /regulatory-legal:matter-workspace switch <slug> or say practice-level.`
- 加载活跃 matter 的 `matter.md` 获取事项特定上下文和覆盖项。
- 将输出写入事项文件夹 `~/.claude/plugins/config/claude-for-legal/regulatory-legal/matters/<matter-slug>/`。
- 除非 `Cross-matter context` 为 `on`,绝不读取另一个 matter 的文件。
- 持续跟踪缺口直到关闭,并通知负责关闭它们的人。
- 缺口追踪器位于 `~/.claude/plugins/config/claude-for-legal/regulatory-legal/gap-tracker.yaml`。
- 注意 `comment-tracker.yaml` 是 comments skill 拥有的兄弟文件,由 reg-feed-watcher 和 comments skill 写入;本 skill 不读取或交叉引用它;如果修改 comment-tracker schema,同步更新两个实际消费者。
- 按 YAML schema 维护缺口条目:`id`、`requirement`、`regulation`、`policy_affected`、`gap_type`、`owner`、`owner_slack`、`opened`、`due`、`status_verified`、`status`、`notified`、`resolution`。
- 绝不基于未验证规则把缺口归类为 Overdue;🔴 Overdue 表示错过了有约束力的截止日期。
- 如果规则状态未验证(policy-diff 设置 `status_verified: false`,或规则超过 12 个月/已过适用日期且无现行确认),使用 🟡 `Review needed` 并注明:`If this rule is in force as published, this would be overdue by [N] days. Verify rule status before escalating.`
- 将未验证规则的项目路由到 `watch`,不要放入活跃的 overdue/due-soon 桶;`watch` 复审节奏会强制在项目重新作为合规缺口出现前检查规则状态。
- `gap_type` 语义 `none`:政策已覆盖要求,仅为审计轨迹记录,应很少见;如果大多数条目都是 `none`,diff 可能在针对错误政策运行;无自动提醒。
- `gap_type` 语义 `partial`:政策涉及主题但未完全覆盖新要求,需要修订;在 due 前 30 天提醒。
- `gap_type` 语义 `full`:政策矛盾或静默省略新要求,需要重写或新增章节;在 due 前 30 天提醒。
- `gap_type` 语义 `new-policy`:无现有政策覆盖,需要起草政策;在 due 前 30 天提醒。
- `gap_type` 语义 `watch`:前瞻项目,如 ANPR、RFI、尚未最终确定的 proposed rule;今天无合规义务,政策工作等最终规则;`due:` 是复审日期(通常为 NPRM 预期日期或一年范围),不是合规截止日期;无自动提醒,在 NPRM 发布或复审日期重新评估。
- `gap_type` 语义 `comment-decision`:规则前评论决定待定,即 ANPR 或 NPRM 中团队正在决定是否提交评论;`due:` 是评论截止日期;在 due 前 21 天提醒(比合规缺口更紧,因为评论起草窗口较短)。
- `watch` 或 `comment-decision` 条目不是合规缺口,而是 watch skill 和 comments skill 产生的规则前跟踪工件;在状态报告中放入单独桶,以便律师一眼区分“监管机构注意前修复”和“持续关注”。
- Mode 1:当 policy-diff 发现缺口时,把它们追加到 `gap-tracker.yaml`。
- Mode 1 去重:相同 requirement + 相同 policy = 相同缺口,不要重复计数。
- 入库后通知负责人:如果 Slack MCP 可用且设置了 `owner_slack`,向缺口负责人发送 Slack DM,但必须先执行顶部的逐次发送确认。
- 向用户预览 Slack DM 消息并等待明确 yes,然后发送。消息模板:`📋 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`。
- 发送后在 tracker 条目中设置 `notified: true`。
- 如果 Slack MCP 不可用:在状态报告中注明负责人通知未发送,并标记人工跟进。
- Mode 2 状态报告:按插件配置 `## Outputs` 添加 work-product header(因角色而异,见 `## 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 表,同列。
- 状态报告包含 🟡 Open 表,同列。
- 状态报告包含 👀 Watch items(forward-looking — pre-rule)表,放入 `watch` 和 `comment-decision` 条目;这些不是合规缺口;单独展示,使 overdue/due-soon 带仅含真实合规截止日期;列为 ID、Item、Type(ANPR/NPRM/RFI)、Comment deadline、Owner。
- 状态报告包含 In progress 表,同列。
- 状态报告包含 Recently closed:最近 5 条,含 resolution。
- 状态报告末尾统计:`Oldest open gap: [ID], [N] days`、`Gaps by owner: [breakdown]`、`Owner notifications sent: [N] / [N total gaps]`。
- 为每个 open gap 给出下一步:`/regulatory-legal:policy-redraft` 生成带 `[verify]` 标签和变更摘要的标注政策重写稿;它是给政策负责人审核的提案,不是直接编辑源文档。
- 依赖引用前验证:tracker 中的法规引用由上游 AI 生成(reg-feed-watcher 和 policy-diff),未对照主要来源检查;在关闭或风险接受缺口前,或在 attestation、board report、regulator response 中引用前,对照 Westlaw、公司研究平台或发布机构网站确认底层规则;AI 生成法规引用有时捏造、误引或过期。
- 保留上游来源标签(例如 `[Federal Register]`、`[web search — verify]`)以显示每个引用来源;`verify` 标签捏造风险更高,优先检查;浮现缺口时绝不剥离标签。
- 从 `~/.claude/plugins/config/claude-for-legal/regulatory-legal/CLAUDE.md` 读取 gap-response owners 和 escalation path。
- 缺少 Gap-response triager 时:保持 assignment open,并在输出追加:`No triager is set in ## Gap response process. Assign one with /regulatory-legal:cold-start-interview --redo or by editing ~/.claude/plugins/config/claude-for-legal/regulatory-legal/CLAUDE.md so new gaps get routed.`
- 新入库缺口的 owner 未知(policy library 无 owner)时:以 `owner: [unassigned]` 记录缺口,并追加:`[N] gaps were ingested without an owner because the policy library doesn't name one for the affected policy. Fill in the Owner column in the policy library to route them.`
- 已逾期的 material gap 缺少 escalation path 时:仍报告为 overdue,并追加:`No escalation path is set for material overdue gaps. Configure it with /regulatory-legal:cold-start-interview --redo or by editing ~/.claude/plugins/config/claude-for-legal/regulatory-legal/CLAUDE.md.`
- 当配置值已填写时,不要提及配置。
- Due-date reminder logic 在状态报告和 scheduled agent 中运行。
- 对每个 status 为 `open` 或 `in-progress` 的缺口:`partial`、`full`、`new-policy`、`none` 如果 due date 在 30 天内且过去 7 天未发送提醒,PREVIEW 一个 Slack DM(主题 `⏰ Reminder: compliance gap due in [N] days`),等待逐次发送确认后再发送。
- `comment-decision` 如果 comment deadline 在 21 天内且过去 7 天未发送提醒,PREVIEW 一个 Slack DM(主题 `💬 Comment-decision deadline in [N] days`),等待逐次发送确认后再发送。
- `watch` 无自动提醒;在复审 tracker 或同一法规记录到 NPRM 时重新评估。
- 如果合规缺口的 due date 已过:在报告中标为 overdue,并 PREVIEW 一个 Slack DM,等待逐次发送确认后再发送。
- 如果 `comment-decision` 的 comment deadline 已过且未提交评论:标为 overdue,PREVIEW 一个 Slack DM(等待逐次发送确认),并让 owner 更新为 `risk-accepted`(有意不评论)或 `closed`(已提交评论)并附注。
- 在 tracker 中记录提醒时间戳,避免重复唠叨。
- 批量提醒仍需逐次发送确认;预览“你即将发送 12 条 DM”并等待 yes 算数;静默触发批量不算。
- Consequential-action gate:在关闭缺口为 resolved 前,或生成任何证明符合法规要求的输出(内部 attestation、board report、audit response、regulator response)前,读取 `~/.claude/plugins/config/claude-for-legal/regulatory-legal/CLAUDE.md` 中的 `## Who's using this`。
- 如果 Role 是 `Non-lawyer`,说明证明合规或关闭缺口有法律后果;认证若后来被证明错误可被用于针对公司;过早关闭会让敞口未处理;询问是否已与律师审查。
- 如果 Non-lawyer 已与律师审查,继续;如果没有,提供给律师的简要材料:缺口(要求、来源、policy diff 发现什么);拟议 resolution 覆盖和不覆盖什么;任何 residual gap 或 ambiguity;开放问题和未解决事项;可能出什么问题(过宽认证、未解决 residual obligation、不一致先前立场);问律师什么(是否真正关闭;是否应 risk-accept 并说明理由;是否需要外部律师 concurrence)。
- 如果需要找律师:优先使用职业监管机构转介服务(美国州 bar;英格兰和威尔士 SRA/Bar Standards Board;苏格兰/北爱尔兰/爱尔兰/加拿大/澳大利亚 Law Society;或其他司法辖区等效机构)。
- 除非明确 yes,不要越过 gate 将缺口标记 closed 或生成合规认证;状态报告和跟踪视图不需要 gate。
- Mode 3 关闭缺口:运行 `/regulatory-legal:gaps --close GAP-001`,并附 `Resolution: “Policy updated v2.3, approved [date]”`。
- 关闭操作把 status 更新为 closed,记录 resolution 和 close date。
- Mode 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]`。
- 风险接受后 status → `risk-accepted`;条目保留在 tracker(不删除),但从 open-gaps 报告移除。
- 集成 reg-change-monitor agent:agent digest 包含缺口数量和 oldest-open-gap age;如果有任何 overdue,放到 digest 顶部。
- reg-change-monitor agent 也运行 due-date reminder check 并发送任何未完成的 Slack 通知。
- 结束流程时按 `CLAUDE.md ## Outputs` 给出 next-steps decision tree。
- 根据本 skill 刚产生的输出定制 next-steps 选项;五个默认分支(draft the X、escalate、get more facts、watch and wait、something else)是起点,不是锁定;decision tree 是输出,由律师选择。
- 如果 tracker 浮现超过约 10 个 open gaps,或用户要求:提供 dashboard(见 `CLAUDE.md ## Outputs → Dashboard offer for data-heavy outputs`);为此输出塑造 offer:按严重性计数、按 due date 的缺口时间线、含 owner、status、last-touched date 的可排序 grid。
- 本 skill 不自行关闭缺口;关闭需要 resolution note 和该 note 描述的人类操作。
- 如果 Slack MCP 未配置,不发送 Slack 通知;回退到在状态报告中标记。
- 每个缺口每 7 天不超过一条提醒;提醒一次,不要不断唠叨。
适用边界 · 注意事项
- Slack MCP 未配置时,不要发送 Slack 通知;只能在状态报告中标记并人工跟进。
- Role 是 Non-lawyer 且尚未与律师审查时,不要关闭缺口或生成合规认证/attestation。
- 规则状态未验证(如 `status_verified: false`、超过 12 个月/已过适用日期且无现行确认)时,不要标为 🔴 Overdue 或放入活跃 overdue/due-soon 桶;改用 🟡 Review needed 或 `watch`。