gap-surfacer について
規制上のギャップを管理する、法務・コンプライアンスチーム向けのスキルです。policy-diff の検出結果を登録して状況を報告し、コンプライアンス上のギャップと規則制定前の監視・コメント判断を区別します。Slack 送信前にはプレビューと確認を求めます。
主な機能
- 01policy-diff の検出結果を登録
- 02種類別にギャップを追跡
- 03状況と期限超過を報告
- 04Slack 通知をプレビューして確認
- 05ギャップの解消またはリスク受容を記録
活用シーン
- 01未解決のポリシー適合問題を確認
- 02期限が近い項目を担当者に通知
- 03規則制定前のコメント判断を追跡
- 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 メッセージ(割り当て通知、期限超過リマインダー、一括通知、状況報告)を送信する前に、必ず次の手順を実行します。
- 送信内容と送信先を、ユーザーに正確に提示します。「これから [N] 人に次の内容を送信します:[プレビュー]」
- 明示的な「はい」があるまで待ちます。
- メッセージに引用、期限、コンプライアンスに関する結論が含まれる場合は、次の文言を追加します。「⚠️ このメッセージ内の引用が未検証であるため、送信前に最新であることを確認していません。『行動する前に確認』という一文を追加しますか?」
- 確認なしで送信してはいけません。定期送信の場合も、一括送信の場合も、昨日送信した内容であっても同様です。
確認なしの自動送信は、このプラグインで最も取り消しが困難な操作です。このプラグイン自身のフッターに誤りがある可能性が記されている内容を、確認する手段がない人々に送信することになります。このような場合にレビューを省略することはできません。
案件のコンテキスト
案件のコンテキスト。 プラクティスレベルの 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 の場合、diff はおそらく誤ったポリシーを対象に実行されています。 | 自動リマインダーなし。 |
partial | ポリシーはそのトピックを扱っていますが、新しい要件を完全には網羅していません。改訂が必要です。 | 期限の30日前。 |
full | ポリシーが新しい要件に矛盾しているか、明示せずに省略しています。書き直すか、新しいセクションを追加する必要があります。 | 期限の30日前。 |
new-policy | これを網羅する既存のポリシーがありません。ポリシーの作成が必要です。 | 期限の30日前。 |
watch | 将来に関する項目です。ANPR、RFI、または未確定の規則案が該当します。現時点でコンプライアンス上の義務はなく、ポリシーの作業は最終規則が出るまで保留します。due: は再確認日(通常は NPRM の予想日または1年後)であり、コンプライアンス期限ではありません。 | 自動リマインダーなし。NPRM の公表時または再確認日に再評価します。 |
comment-decision | 規則制定前のコメントに関する判断が保留中です。コメントを提出するかチームが判断している ANPR または NPRM が該当します。due: はコメントの期限です。 | 期限の21日前(コメント作成期間は短いため、コンプライアンスギャップより間隔を短くします)。 |
watch または comment-decision のエントリーはコンプライアンスギャップではありません。これらは、watch スキルとコメントスキルが生成する規則制定前の項目に関する追跡用記録です。ステータスレポートでは、独自のバケットに分けて表示してください。午前7時に読む法務担当者が、「規制当局に気付かれる前に修正する」項目と「動向を注視する」項目を一目で区別できるようにします。
モード
モード1:policy-diff から取り込む
policy-diff がギャップを検出した場合、gap-tracker.yaml に追記します。重複を除外してください。同じ要件+同じポリシーは同じギャップとして扱い、二重に数えないでください。
取り込み後、担当者に通知します。
Slack MCP が利用可能で、owner_slack が設定されている場合:
ギャップの担当者に Slack の DM を送信します。ただし、このファイルの冒頭にある送信ごとの確認を行ってからに限ります。メッセージをユーザーにプレビュー表示し、明示的な承認を待ってから送信してください。
📋 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を編集して設定してください。"
値が設定されている場合、設定については何も述べないでください。
期限リマインダーのロジック(ステータスレポートおよびスケジュールされたエージェントの実行時):
リマインダーの頻度は gap_type によって決まります。コンプライアンスギャップには30日前に通知し、コメント判断項目には21日前に通知します(ドラフト作成期間が短いため、より短い間隔です)。ウォッチ項目には自動リマインダーを送信しません(NPRM の公表時に再評価します)。
ステータスが「open」または「in-progress」の各ギャップについて:
partial、full、new-policy、none:期限まで30日以内で、過去7日間にリマインダーを送信していない場合、Slack DM のプレビュー(件名「⏰ Reminder: compliance gap due in [N] days」)を作成し、送信ごとの確認を待ってから送信します。comment-decision:コメント期限まで21日以内で、過去7日間にリマインダーを送信していない場合、Slack DM のプレビュー(件名「💬 Comment-decision deadline in [N] days」)を作成し、送信ごとの確認を待ってから送信します。watch:自動リマインダーは送信しません。トラッカーの確認時、または同じ規制について NPRM が記録されたときに再確認します。- コンプライアンスギャップの期限が過ぎている場合:レポートで期限超過として示し、Slack DM のプレビューを作成します。送信前に、送信ごとの確認を待ちます。
comment-decision項目のコメント期限が過ぎており、コメントが提出されていない場合:期限超過として示し、Slack DM のプレビューを作成し(送信ごとの確認を待ち)、担当者にメモを添えてrisk-accepted(意図的にコメントを提出しない)またはclosed(コメント提出済み)に更新するよう依頼します。- リマインダーのタイムスタンプをトラッカーに記録し、同じ通知を繰り返さないようにします。
- 一括リマインダーでも送信ごとの確認が必要です。「これから DM を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 エージェント
エージェントのダイジェストには、ギャップの件数と、未解決期間が最も長いギャップの日数が含まれます。期限を過ぎたものがあれば、ダイジェストの先頭に表示されます。エージェントは期限日のリマインダーチェックも実行し、未送信の Slack 通知を送信します。
次のステップの判断ツリーで締めくくる
CLAUDE.md の ## Outputs に従って、次のステップの判断ツリーで締めくくってください。このスキルで作成した内容に合わせて選択肢を調整します。既定の5つの分岐(X の草案を作成する、エスカレーションする、追加情報を得る、状況を見守る、その他)は出発点であり、固定ではありません。出力するのは判断ツリーです。選択するのは弁護士です。
トラッカーに未解決ギャップが約10件を超えて表示される場合、またはユーザーから依頼があった場合は、ダッシュボードを提案してください(CLAUDE.md の ## Outputs → Dashboard offer for data-heavy outputs を参照)。この出力に合わせて提案内容を調整し、重大度別の件数、期限日別のギャップのタイムライン、担当者、ステータス、最終更新日で並べ替え可能なグリッドを含めます。
このスキルで行わないこと
- ギャップを独自にクローズすること。クローズには、解決策のメモと、そのメモに記載された人間による対応が必要です。
- Slack MCP が設定されていない場合に Slack 通知を送信すること。その場合は、ステータス報告で通知事項を示します。
- ギャップごとに7日間あたり1回を超えてリマインダーを送信すること。頻繁に通知せず、1回だけリマインドします。