Official agent skill

Gap Surfacer

by anthropics in anthropics/claude-for-legal

Reference: shared gap- and comment-tracker framework backing /regulatory-legal:gaps and /regulatory-legal:comments.

OfficialApache-2.0Auto-check passed

Install Gap Surfacer

skills CLI
$ npx skills add anthropics/claude-for-legal --skill gap-surfacer -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install anthropics/claude-for-legal gap-surfacer --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/anthropics/claude-for-legal.git skills-src && mkdir -p .claude/skills && cp -r skills-src/regulatory-legal/skills/gap-surfacer .claude/skills/gap-surfacer && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
gap-surfacer
GitHub stars
9.6k
Used in
1 other repo
Token cost
~3.7k tokens
SKILL.md length
1,629 words
Files
3 (incl. references)
Skills in repo
147
Repo updated
First seen
Licence
Apache-2.0

At a glance

Reference: shared gap- and comment-tracker framework backing /regulatory-legal:gaps and /regulatory-legal:comments.

  • Works in 4 steps: Show the user exactly what you're about… → Wait for an explicit yes. → If the message contains any citations,… → …
  • SKILL.md covers Per-send confirmation — no…, Matter context, Purpose and The tracker, plus 5 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Gap Surfacer is an agent skill from anthropics/claude-for-legal, published by the product's own GitHub organization. Reference: shared gap- and comment-tracker framework backing /regulatory-legal:gaps and /regulatory-legal:comments. Tracks open policy gaps with remediation status, ingests gaps from policy-diff, surfaces what's open and aging, routes to owners, and notifies gap owners via Slack with per-send confirmation. Loaded by the gaps and comments skills before doing substantive work.

Its SKILL.md is about 3.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/comment-tracker.yaml` and `references/gap-tracker.yaml`).

It works with Slack. The repository describes itself as: A suite of plugins for legal workflows. The licence is Apache-2.0.

Example prompts

  • “/gap-surfacer”

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Show the user exactly what you're about to send and to whom: "I'm about to send this to [N] people: [preview]."
  2. Wait for an explicit yes.
  3. If the message contains any citations, deadlines, or compliance conclusions, add: "⚠️ The citations in this message are unverified — I'm…
  4. Never send without the confirm. Not on a cadence. Not in a batch. Not because it was sent yesterday.

What it can do on your machine

Read from SKILL.md and the folder at commit 4a6c651. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are yaml and markdown).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Gap Surfacer loads about 3.7k tokens when it runs, and up to ~4k if it reads all its reference files. Until then it costs about 98 tokens; SKILL.md has 1,629 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~98
When it runs · the whole SKILL.md, loaded when a task matches
~3.7k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from anthropics/claude-for-legal at commit 4a6c651, republished under its Apache-2.0 licence (© anthropics). 1,629 words, ~3,698 tokens.

Download SKILL.mdSave it as .claude/skills/gap-surfacer/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
gap-surfacer
description
Reference: shared gap- and comment-tracker framework backing /regulatory-legal:gaps and /regulatory-legal:comments. Tracks open policy gaps with remediation status, ingests gaps from policy-diff, surfaces what's open and aging, routes to owners, and notifies gap owners via Slack with per-send confirmation. Loaded by the gaps and comments skills before doing substantive work.
user-invocable
false

Gap Surfacer

Owner notifications: on by default. To opt an owner out, leave owner_slack empty.

Per-send confirmation — no exceptions

Before sending ANY Slack message (assignment notice, overdue reminder, bulk notification, status report):

  1. Show the user exactly what you're about to send and to whom: "I'm about to send this to [N] people: [preview]."
  2. Wait for an explicit yes.
  3. If the message contains any citations, deadlines, or compliance conclusions, add: "⚠️ The citations in this message are unverified — I'm not confirming they're current before sending. Do you want me to add a 'verify before acting' line?"
  4. Never send without the confirm. Not on a cadence. Not in a batch. Not because it was sent yesterday.

Auto-send without confirmation is the most irreversible action in this plugin, sending content this plugin's own footer says may be wrong, to people who have no way to check. That combination does not get to skip review.

Matter context

Matter context. Check ## Matter workspaces in the practice-level CLAUDE.md. If Enabled is ✗ (the default for in-house users), skip the rest of this paragraph — skills use practice-level context and the matter machinery is invisible. If enabled and there is no active matter, ask: "Which matter is this for? Run /regulatory-legal:matter-workspace switch <slug> or say practice-level." Load the active matter's matter.md for matter-specific context and overrides. Write outputs to the matter folder at ~/.claude/plugins/config/claude-for-legal/regulatory-legal/matters/<matter-slug>/. Never read another matter's files unless Cross-matter context is on.


Purpose

Gaps get found and then forgotten. This skill tracks them until they're closed and notifies the people responsible for closing them.

The tracker

Lives at ~/.claude/plugins/config/claude-for-legal/regulatory-legal/gap-tracker.yaml:

Note on comment-tracker.yaml: ~/.claude/plugins/config/claude-for-legal/regulatory-legal/comment-tracker.yaml is a sibling file owned by the comments skill. It is written to by reg-feed-watcher (which logs NPRMs automatically) and the comments skill (which tracks user-initiated comment decisions). This skill does not read or cross-reference it. If you modify the comment-tracker schema, update both actual consumers.

yaml
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

Never classify a gap as Overdue on an unverified rule. The 🔴 Overdue classification means "we missed a binding deadline." If the rule's status is unverified (policy-diff set status_verified: false, or the rule is >12 months old / past its applicability date with no currency confirmation), the deadline may not be binding. Use 🟡 "Review needed" and note: "If this rule is in force as published, this would be overdue by [N] days. Verify rule status before escalating." Route unverified-rule items to watch, not to the active overdue/due-soon buckets; the watch revisit cadence forces a rule-status check before the item can re-surface as a compliance gap.

gap_type semantics:

ValueMeaningTypical reminder cadence
nonePolicy already covers the requirement. Logged for audit trail only. Should be rare — if most entries are none, the diff is probably running against the wrong policy.No auto-reminder.
partialPolicy addresses the topic but doesn't fully cover the new requirement. Needs an amendment.30 days before due.
fullPolicy contradicts or silently omits the new requirement. Needs a rewrite or new section.30 days before due.
new-policyNo existing policy covers this. Policy needs to be drafted.30 days before due.
watchForward-looking item — ANPR, RFI, proposed rule not yet final. No compliance obligation today; policy work waits for the final rule. due: is a revisit date (typically the NPRM expected date or a one-year horizon), not a compliance deadline.No auto-reminder; re-evaluate when an NPRM drops or at the revisit date.
comment-decisionPre-rulemaking comment decision pending — ANPR or NPRM where the team is deciding whether to file a comment. due: is the comment deadline.21 days before due (tighter than compliance gaps because comment-drafting windows are short).

A watch or comment-decision entry is not a compliance gap — it's a tracking artifact for pre-rule items that the watch skill and comments skill produce. Surface them in the status report in their own bucket so counsel reading at 7am can tell at a glance which items are "fix this before a regulator notices" vs. "keep an eye on this."

Modes

Mode 1: Ingest from policy-diff

When policy-diff finds gaps, append them to gap-tracker.yaml. De-dupe — same requirement + same policy = same gap, don't double-count.

After ingesting, notify the owner:

If Slack MCP is available and owner_slack is set:

Send a Slack DM to the gap owner — but only after the per-send confirmation at the top of this file. Preview the message to the user, wait for an explicit yes, then send:

📋 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

Set notified: true in the tracker entry after sending.

If Slack MCP is not available: note in the status report that owner notification was not sent and flag for manual follow-up.

Mode 2: Status report
markdown
[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.

Config-dependent fallbacks

This skill reads gap-response owners and the escalation path from ~/.claude/plugins/config/claude-for-legal/regulatory-legal/CLAUDE.md. When a value it needs is empty or still [PLACEHOLDER]:

  • Gap-response triager missing: leave assignment open and append to the output: "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 unknown for a newly-ingested gap (no owner in policy library): log the gap with owner: [unassigned] and append: "[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."
  • Escalation path missing for an overdue material gap: still report it as overdue, and append: "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."

Say nothing about config when the values are populated.

Due-date reminder logic (runs during status report and scheduled agent):

Reminder cadence is a function of gap_type — compliance gaps get a 30-day heads-up, comment-decision items get 21 days (tighter because the drafting window is shorter), watch items get no auto-reminder (re-evaluate when an NPRM drops).

For each gap with status "open" or "in-progress":

  • partial, full, new-policy, none: if due date is within 30 days and a reminder has not been sent in the last 7 days, PREVIEW a Slack DM (subject "⏰ Reminder: compliance gap due in [N] days") and wait for per-send confirm before sending.
  • comment-decision: if comment deadline is within 21 days and a reminder has not been sent in the last 7 days, PREVIEW a Slack DM (subject "💬 Comment-decision deadline in [N] days") and wait for per-send confirm before sending.
  • watch: no auto-reminder. Revisit when the tracker is reviewed or an NPRM is logged for the same regulation.
  • If due date has passed on a compliance gap: flag as overdue in the report and PREVIEW a Slack DM — wait for per-send confirm before sending.
  • If comment deadline has passed on a comment-decision item and no comment was filed: flag as overdue, PREVIEW a Slack DM (wait for per-send confirm), and ask the owner to update to risk-accepted (deliberate no-comment) or closed (comment filed) with a note.
  • Record reminder timestamps in the tracker to avoid repeat nags.
  • Batch reminders still require per-send confirm — previewing "you're about to send 12 DMs" and waiting for yes counts; silently firing a batch does not.
Show full SKILL.md (470 more words)Show less
Consequential-action gate (certify compliance)

Before closing a gap as resolved, or producing any output that certifies compliance with a regulatory requirement (internal attestation, board report, audit response, regulator response): Read ## Who's using this in ~/.claude/plugins/config/claude-for-legal/regulatory-legal/CLAUDE.md. If the Role is Non-lawyer:

Certifying compliance — or closing a gap as resolved — has legal consequences. The certification can be used against the company if it's later shown to be wrong, and premature closure leaves exposure unaddressed. Have you reviewed this with an attorney? If yes, proceed. If no, here's a brief to bring to them:

  • The gap (requirement, source, what the policy diff found)
  • What the proposed resolution does and does not cover
  • Any residual gap or ambiguity
  • Open questions and what's unresolved
  • What could go wrong (overbroad certification, unresolved residual obligation, inconsistent prior position)
  • What to ask the attorney (is this truly closed; should we risk-accept with rationale instead; do we need outside-counsel concurrence)

If you need to find a lawyer: your professional regulator's referral service is the fastest starting point (state bar in the US; SRA/Bar Standards Board in England & Wales; Law Society in Scotland/NI/Ireland/Canada/Australia; or your jurisdiction's equivalent).

Do not mark a gap closed or produce a compliance certification past this gate without an explicit yes. Status reports and tracking views do not require the gate.

Mode 3: Close a gap
/regulatory-legal:gaps --close GAP-001
Resolution: "Policy updated v2.3, approved [date]"

Updates status to closed, records resolution and close date.

Mode 4: Risk-accept a gap

Sometimes the answer is "we're not going to fix this." That's a valid decision — but it should be documented.

/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. Stays in the tracker (not deleted) but falls out of the open-gaps report.

Integration: reg-change-monitor agent

The agent's digest includes the gap count and oldest-open-gap age. If anything goes overdue, that goes at the top of the digest. The agent also runs the due-date reminder check and sends any outstanding Slack notifications.

Close with the next-steps decision tree

End with the next-steps decision tree per CLAUDE.md ## Outputs. Customize the options to what this skill just produced — the five default branches (draft the X, escalate, get more facts, watch and wait, something else) are a starting point, not a lock-in. The tree is the output; the lawyer picks.

If the tracker surfaced more than ~10 open gaps, or any time the user asks: offer the dashboard (see CLAUDE.md ## Outputs → Dashboard offer for data-heavy outputs). Shape the offer for this output — counts by severity, a timeline of gaps by due date, and a sortable grid with owner, status, and last-touched date.

What this skill does not do

  • Close gaps on its own. Closing requires the resolution note and the human action that the note describes.
  • Send Slack notifications if the Slack MCP is not configured. Falls back to flagging in the status report.
  • Send more than one reminder per 7-day period per gap. Nag once, not constantly.

© anthropics, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (references) in regulatory-legal/skills/gap-surfacer of anthropics/claude-for-legal.

  • SKILL.md
  • references/comment-tracker.yaml
  • references/gap-tracker.yaml

Open the folder on GitHubat commit 4a6c651

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in anthropics/claude-for-legal, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Gap Surfacer next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Gap Surfacer compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Gap Surfacer this skillanthropics/claude-for-legal9.6k1 repos~3.7kAutomated safety check: PassApache-2.0
Agent Browser CLIvercel-labs/agent-browser44k24 repos~864Automated safety check: PassApache-2.0
Slack GIF Creatoranthropics/skills180k29 repos~2kAutomated safety check: PassApache-2.0
Electron App Automationvercel-labs/agent-browser44k5 repos~1.7kAutomated safety check: PassApache-2.0
Slack Browser Automationvercel-labs/agent-browser44k1 repos~2.1kAutomated safety check: PassApache-2.0
ComposioComposioHQ/composio30k1 repos~1.7kAutomated safety check: PassMIT

Similar skills

  • Agent Browser CLI

    vercel-labs/agent-browser

    Official

    Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking…

    44k GitHub starsUsed in 24 repos~864 tokens
    Productivity & AutomationAuto-check passed
  • Slack GIF Creator

    anthropics/skills

    Official

    Provides Slack size and frame limits, Python animation helpers and validators for building animated GIFs sized for emoji and messages.

    180k GitHub starsUsed in 29 repos~2k tokens
    Media & CreativeAuto-check passed
  • Electron App Automation

    vercel-labs/agent-browser

    Official

    Automates Electron desktop apps such as VS Code, Slack or Discord by connecting agent-browser to their Chrome DevTools Protocol port.

    44k GitHub starsUsed in 5 repos~1.7k tokens
    Productivity & AutomationAuto-check passed
  • Slack Browser Automation

    vercel-labs/agent-browser

    Official

    Drives the Slack web app with the agent-browser CLI to check unread channels, search, read channel details and extract information, with screenshots as evidence.

    44k GitHub starsUsed in 1 repo~2.1k tokens
    Productivity & AutomationAuto-check passed
  • Composio

    ComposioHQ/composio

    Route and complete Composio work across Composio For You and Composio Platform.

    30k GitHub starsUsed in 1 repo~1.7k tokens
    Productivity & AutomationAuto-check passed
  • Patch Release Check

    ClickHouse/ClickHouse

    Check whether ClickHouse's supported versions (last 3 majors + latest LTS) have recent stable patch releases, diagnose why the scheduled AutoReleases pipeline failed, and identify which releases…

    50k GitHub stars~4k tokensUpdated today
    DatabasesAuto-check: notes

More from anthropics/claude-for-legal

All 147 skills in this repo
  • Legal Clinic Client Intake

    anthropics/claude-for-legal

    Official

    Structures a legal clinic client intake interview and produces a case summary with cross-area issue spotting, conflict flags and triage classification.

    9.6k GitHub starsUsed in 3 repos~3.2k tokens
    Auto-check passed
  • Supervisor Review Queue

    anthropics/claude-for-legal

    Official

    Holds student work in a queue for a legal clinic professor to approve, edit-then-approve or return before anything reaches clients or courts.

    9.6k GitHub starsUsed in 3 repos~1.1k tokens
    Auto-check passed
  • Tabular Document Review

    anthropics/claude-for-legal

    Official

    Builds a review grid with one row per document and one column per data point, each cell cited to a verbatim quote, built for M&A diligence and other batch reviews.

    9.6k GitHub starsUsed in 3 repos~4.3k tokens
    Auto-check passed
  • Product Launch Legal Review

    anthropics/claude-for-legal

    Official

    Runs a category-by-category legal review of a product launch from a PRD or tracker ticket, calibrated to your team's framework, and writes a review memo in house format.

    9.6k GitHub starsUsed in 2 repos~5k tokens
    Auto-check passed
  • Legal Skills Registry Browser

    anthropics/claude-for-legal

    Official

    Searches watched registries for community legal skills, shows matches with descriptions and offers the full SKILL.md before anything is installed.

    9.6k GitHub starsUsed in 2 repos~620 tokens
    Auto-check passed
  • Contract Renewal Tracker

    anthropics/claude-for-legal

    Official

    Shows which contracts renew soon and when notice must be sent by, working from a maintained renewal register, and warns about missed cancellation windows.

    9.6k GitHub starsUsed in 2 repos~3.1k tokens
    Auto-check passed

Works with

Questions about Gap Surfacer

What does Gap Surfacer do?

Reference: shared gap- and comment-tracker framework backing /regulatory-legal:gaps and /regulatory-legal:comments. Gap Surfacer is an agent skill from anthropics/claude-for-legal, published by the product's own GitHub organization. Reference: shared gap- and comment-tracker framework backing /regulatory-legal:gaps and /regulatory-legal:comments.

How do I install Gap Surfacer in Claude Code?

Run `npx skills add anthropics/claude-for-legal --skill gap-surfacer -a claude-code`. Or copy the skill folder (regulatory-legal/skills/gap-surfacer in anthropics/claude-for-legal) into .claude/skills/gap-surfacer in your project. Claude Code loads it when a task matches its description.

How do I install Gap Surfacer in Codex?

Run `npx skills add anthropics/claude-for-legal --skill gap-surfacer -a codex`. Or copy the skill folder (regulatory-legal/skills/gap-surfacer in anthropics/claude-for-legal) into .agents/skills/gap-surfacer in your project. Codex loads it when a task matches its description.

Can I use Gap Surfacer in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add anthropics/claude-for-legal --skill gap-surfacer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/gap-surfacer, .gemini/skills/gap-surfacer, .github/skills/gap-surfacer and .opencode/skills/gap-surfacer in your project.

What does Gap Surfacer need to run?

SKILL.md names no scripts, command-line tools or credentials: Gap Surfacer is instructions for the agent only.

Does Gap Surfacer access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Gap Surfacer safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Gap Surfacer use?

Gap Surfacer is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Gap Surfacer use?

About 3.7k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 290 tokens, read only when the agent opens those files.

What are the alternatives to Gap Surfacer?

Skills that share tags, products or a category with Gap Surfacer: Agent Browser CLI (vercel-labs/agent-browser, 44k stars), Slack GIF Creator (anthropics/skills, 180k stars), Electron App Automation (vercel-labs/agent-browser, 44k stars) and Slack Browser Automation (vercel-labs/agent-browser, 44k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Gap Surfacer?

anthropics (a GitHub organization, an official publisher) maintains it in anthropics/claude-for-legal, which has 9,633 GitHub stars. The repository holds 147 skills in this directory. The repository was last updated on September 29, 2026.

Source: anthropics/claude-for-legal on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.