reg-feed-watcher

작성자: anthropic

규제 피드를 지금 확인하고, 마지막 확인 이후 새로 추가된 내용을 사용자의 중요도 기준에 따라 필터링하여 보고합니다. 사용자가 "피드 확인해 줘"라고 말할 때 사용하세요.

npx skills add https://github.com/anthropics/claude-for-legal --skill reg-feed-watcher

/reg-feed-watcher

  1. Load ~/.claude/plugins/config/claude-for-legal/regulatory-legal/CLAUDE.md → watchlist, materiality threshold, feed config.
  2. Use the workflow below.
  3. Pull each feed. Filter by materiality.
  4. Output: what's new, categorized by materiality tier.

Purpose

Pull the feeds. Filter by materiality. Output what's left. The filter is the value — unfiltered feeds are noise.

Load context

~/.claude/plugins/config/claude-for-legal/regulatory-legal/CLAUDE.md → watchlist, materiality threshold, feed configuration, digest output path (if set).

references/source-catalog.md (in this skill's directory) → curated catalog of RSS/JSON/HTML sources across US federal, US state, EU/UK, international, and secondary/aggregator categories. Use when configuring new sources or when the user's watchlist has coverage gaps (see Step 0).

Workflow

Step 0: Coverage check (before pulling)

Before running the pull, compare the watchlist + feed configuration in CLAUDE.md against references/source-catalog.md:

  • Which categories (US federal / US state / EU-UK / international) does the user care about per their watchlist?
  • Which of those categories have zero or very few sources configured?

If there's an obvious gap — e.g., user watches "EU regulators" in the watchlist but has only edpb.europa.eu configured in feeds, missing ICO, CNIL, DPC Ireland — surface it once at the top of the digest:

Coverage gap noticed: Your watchlist includes [category], but only [N] feeds are configured. The source catalog lists [X] options in this category (e.g., [top 2-3 names]). Want me to suggest additions? Run /regulatory-legal:cold-start-interview --redo to update, or edit ~/.claude/plugins/config/claude-for-legal/regulatory-legal/CLAUDE.md directly.

Don't nag the same gap repeatedly — if the user has explicitly said "skip state AGs for now," respect that. Note state in CLAUDE.md so it sticks.

Step 1: Pull

Pull from all configured feed tiers. Every installation has Tier 1. Tiers 2 and 3 are additive — use them if configured, skip if not.

Tier 1 — Free feeds (always active)

For each regulator in the watchlist:

  • Federal Register API (https://www.federalregister.gov/api/v1/documents) — query by agency slug, date range (since last check), document type. Returns structured data: document type, title, abstract, effective date, comment deadline (for NPRMs), and citation. Covers all US federal agencies.
  • Direct regulator RSS — fetch and parse any RSS URLs in ~/.claude/plugins/config/claude-for-legal/regulatory-legal/CLAUDE.md feed configuration (SEC, FTC, CFPB, state agencies, EU DPAs, etc.).

Agency slug reference for common watchlist regulators:

RegulatorAPI slug
FTCfederal-trade-commission
SECsecurities-and-exchange-commission
CFPBconsumer-financial-protection-bureau
CPPA (CA)RSS only — cppa.ca.gov/feed
DOLlabor-department
HHShealth-and-human-services-department
FCCfederal-communications-commission

For any regulator not in this list: check federalregister.gov/agencies for the correct slug, or fall back to direct RSS.

Tier 2 — Paid feeds (if configured)

  • Paid regulatory feed MCP: Query for updates since last check date, filtered to watchlist regulators.
  • CourtListener MCP: Same.

De-duplicate across tiers — the same document may appear in multiple sources. Prefer the richest source for the enriched output.

No silent supplement. If the feed pull returns few or no results for a regulator in the watchlist, report what was found and stop. Do NOT fill the gap from web search or model knowledge without asking. Say: "The feed check returned [N] items from [regulators hit]. Coverage appears thin for [regulator / topic]. Options: (1) broaden the date window, (2) try a different feed or MCP, (3) search the web — results will be tagged [web search — verify] and should be checked against the issuing authority's website before relying, or (4) stop here. Which would you like?" A lawyer decides whether to accept lower-confidence sources; Claude does not decide for them.

Source attribution. Tag every citation and regulatory item with where it came from: [Federal Register], [<regulator> RSS], [CourtListener], or the specific MCP tool name for items retrieved via connector; [web search — verify] for items from web search; [model knowledge — verify] for items surfaced from the model's training data; [user provided] for manually-pasted items. Items tagged verify carry higher fabrication risk than tool-retrieved items and should be checked first. Never strip or collapse the tags — they are the user's fastest signal about which citations to verify.

Secondary sources. Some catalog entries (IAPP, FPF, Hogan Lovells, Covington, Lexology, JD Supra, Artificial Lawyer, LawSites, and similar commentators/aggregators) report on primary regulatory action but are not the primary source. Tag any item pulled from these feeds with [secondary source] in addition to the feed-name tag — e.g., [IAPP Daily Dashboard] [secondary source]. In the digest, when a secondary-source item describes a regulator action, add a note: "→ Trace to primary: [link to regulator site if known, otherwise 'find on .gov before relying']." Do not classify a secondary-source item as "Always material" on its own strength — bump it down a tier until the primary source is located.

Tier 3 — Manual entry

If the user has pasted regulatory text or a summary rather than invoking from a scheduled feed check: treat the pasted content as a single item, skip to Step 2 for classification, and record source as "manual entry." No feed pull required. This path works regardless of subscription status.

Record the check timestamp after pulling. Next scheduled run pulls from here forward.

Step 2: Classify

Each item gets a materiality tier per ~/.claude/plugins/config/claude-for-legal/regulatory-legal/CLAUDE.md:

Item typeMatch against threshold
Final ruleUsually "always material"
Proposed rule / NPRMUsually "review-worthy" — and always log comment deadline
ANPR (Advance Notice of Proposed Rulemaking)Review-worthy for strategy, not compliance — no imposed requirements yet, but signals direction and carries a real comment deadline. Log the comment deadline. Route to /regulatory-legal:policy-diff only as a pre-positioning analysis, not as a gap-closure diff.
RFI (Request for Information)Same as ANPR — pre-rule, no compliance obligation, but comment deadline is real and direction-signaling is the value.
Enforcement actionSector match → material; related-practice match → review-worthy; neither → FYI or skip
GuidanceReview-worthy
Speech / blog / statementFYI or skip per threshold
SettlementDepends — novel theory or big number → review-worthy; routine → skip

ANPR / RFI handling — specific. Pre-rule items are distinct from NPRMs in one important way: they don't change the law, but they do carry comment deadlines and they signal the regulator's direction. Treat them as a separate branch:

  • Do not classify an ANPR / RFI as "always material" — the compliance impact is zero until a rule issues.
  • Do classify as review-worthy if any of the issue areas in the notice touch the watchlist's always-material categories (e.g., an ANPR on open banking in a fintech watchlist).
  • Do log the comment deadline to ~/.claude/plugins/config/claude-for-legal/regulatory-legal/comment-tracker.yaml with item_type: ANPR or item_type: RFI so the downstream tracker can distinguish these from compliance gaps.
  • Do include in the digest entry a line that says explicitly: "Pre-rule. Comment deadline [date]. Route to /regulatory-legal:policy-diff only as a pre-positioning analysis (no compliance gap yet)." This primes the policy-diff skill to use its compressed pre-positioning branch rather than a full gap-closure diff.
  • Route to the comment-tracker, not the gap-tracker. Comment-decision items are not compliance gaps; they belong in the comment tracker, and gap-surfacer uses the comment-decision gap_type (or declines to ingest, if the team routes these separately).

NPRM comment deadline handling:

For every NPRM classified at any tier above "skip":

  • Extract comment deadline (Federal Register API returns this as structured data)
  • If comment tracking is enabled in ~/.claude/plugins/config/claude-for-legal/regulatory-legal/CLAUDE.md: append to ~/.claude/plugins/config/claude-for-legal/regulatory-legal/comment-tracker.yaml with status "undecided" and the default comment decision owner from ~/.claude/plugins/config/claude-for-legal/regulatory-legal/CLAUDE.md
  • Include comment deadline in the output entry

Step 3: Enrich

For each item above FYI tier:

  • One-line summary (what changed)
  • Why it might matter here (the relevance hook — "this is about [practice you do]")
  • Link to source
  • Effective date or comment deadline if applicable

Don't summarize FYI items individually — just count them.

Output

The digest goes into the chat by default. Also write it to a shareable file whenever the output contains one or more items above FYI, unless the user's CLAUDE.md explicitly sets Digest output → chat only.

File output behavior:

  1. Look for Digest output path in ~/.claude/plugins/config/claude-for-legal/regulatory-legal/CLAUDE.md. If set, write there. Default if unset: ~/regulatory-legal-digests/reg-digest-YYYY-MM-DD.md.
  2. Create parent directories if needed.
  3. Write the full digest as Markdown (same content as the chat output, including the work-product header, source tags, and the verify-citations footer).
  4. If a file already exists at the path for today, append a new section with a timestamped subheader rather than overwriting — the same day may see multiple runs (morning digest, ad-hoc check).
  5. After writing, tell the user: "Digest written to <path>. Share as-is, or convert to .docx with Pandoc: pandoc <path> -o <path>.docx."
  6. If the write fails (permission, missing directory the user didn't authorize creating, disk), fall back to chat-only output and say so — don't silently drop the file request.

Format on disk matches the chat format exactly (below). Markdown renders well in GitHub, Notion, Obsidian, Google Docs (via "Import as Markdown" or Pandoc), and most email clients.

[WORK-PRODUCT HEADER — per plugin config ## Outputs — differs by role; see `## Who's using this`]

## Regulatory Feed Check — [date]

**Period:** [last check] to [now]
**Feeds checked:** [list active tiers — e.g., "Federal Register API, FTC RSS, TR"]
**Items found:** [N] total

### Bottom line

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

### 🔴 Always material

**[Regulator] — [Title]**
[One-line summary]. [Relevance hook]. Effective [date].
[Link]
→ Recommend: run policy-diff against [likely affected policy]

[repeat for each]

### 🟡 Review-worthy

**[Regulator] — [Title]**
[One-line]. [Relevance]. [Deadline if any].
[Link]

[NPRMs: include "💬 Comment deadline: [date] — decision pending" if comment tracking enabled]

[repeat]

### 📝 FYI

[N] items — [expandable list of titles + links, no summaries]

---

**Last check updated to:** [timestamp]
**Comment tracker:** [N] NPRMs with open comment decisions — run /regulatory-legal:comments to review

---

**Verify citations before relying on them.** Regulatory citations here were AI-generated and have not been checked against a primary source. Before acting on any rule, guidance, or enforcement action above, confirm it against Westlaw, your firm's research platform, or the issuing authority's website — check accuracy, effective date, and current status. AI-generated regulatory citations are sometimes fabricated, misquoted, or stale. Source tags on each item (e.g., `[Federal Register]`, `[web search — verify]`) show where the citation came from; `verify` tags carry higher fabrication risk and should be checked first.

Config-dependent fallbacks

This skill reads the watchlist, materiality threshold, and feed configuration from ~/.claude/plugins/config/claude-for-legal/regulatory-legal/CLAUDE.md. When a required value is still [PLACEHOLDER] or empty, say so in the output — specifically, not generically:

  • Watchlist empty: stop and say "The watchlist in your configuration is empty. I can't pull feeds without knowing which regulators to watch. Run /regulatory-legal:cold-start-interview --redo or edit ~/.claude/plugins/config/claude-for-legal/regulatory-legal/CLAUDE.md and add at least one regulator."
  • Materiality threshold empty: fall back to the default tiers and append: "This output used the default materiality tiers because your configuration doesn't have custom thresholds set. Tune them with /regulatory-legal:cold-start-interview --redo or by editing ~/.claude/plugins/config/claude-for-legal/regulatory-legal/CLAUDE.md."
  • Feed configuration empty: run Federal Register API only and append: "This output used only the free Federal Register API because your configuration doesn't list direct RSS or paid feeds. Add feeds 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 relevant values are populated.

If nothing above FYI: "All quiet. [N] FYI items, nothing needing attention."

Handoff

  • To policy-diff: Any "always material" item with a likely policy impact → offer to run the diff.
  • To gap-surfacer: If a diff finds a gap → tracked.
  • To comment-tracker: Any NPRM classified above "skip" → comment deadline logged automatically if tracking is enabled.

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.

What this skill does not do

  • Read every item in full. It classifies and enriches; deep reading is for the items that survive the filter.
  • Change the materiality threshold. If the filter is wrong, edit ~/.claude/plugins/config/claude-for-legal/regulatory-legal/CLAUDE.md.
  • Require TR or CourtListener. Free feeds are the baseline; paid feeds add depth.

anthropic의 다른 스킬

access
anthropic
Discord 채널 접근을 관리합니다 — 페어링 승인, 허용 목록 편집, DM/그룹 정책 설정. 사용자가 페어링 요청, 승인, 허용된 사람 확인 등을 요청할 때 사용합니다.
official
session-report
anthropic
~/.claude/projects 트랜스크립트에서 Claude Code 세션 사용량(토큰, 캐시, 하위 에이전트, 스킬, 고비용 프롬프트)에 대한 탐색 가능한 HTML 보고서를 생성합니다.
official
build-mcp-server
anthropic
이 스킬은 사용자가 "MCP 서버 구축", "MCP 생성", "MCP 통합 만들기", "Claude용 API 래핑", "도구 노출" 등을 요청할 때 사용해야 합니다.
official
cookbook-audit
anthropic
Anthropic Cookbook 노트북을 루브릭에 따라 감사합니다. 노트북 리뷰나 감사가 요청될 때마다 사용하세요.
official
handle-complaint
anthropic
들어오는 고객 불만을 처음부터 끝까지 처리합니다 — 맥락을 파악하고, 응답을 작성하며, 운영상의 수정을 제안합니다. 선택적으로 이메일이나 티켓 ID를 받습니다…
official
use-case-triage
anthropic
처리 활동이 PIA, 필수 GDPR DPIA가 필요한지 또는 진행 가능한지 신속히 판단하여 개인정보 처리방침 충돌을 표시하고 적절한 경로로 안내합니다…
official
board-minutes
anthropic
이사회 또는 위원회 회의록을 사내 형식으로 작성합니다. 캘린더에서 예정된 이사회 및 위원회 회의를 자동으로 감지하고, 안건을 요청한 후…
official
renewal-tracker
anthropic
유지 관리되는 갱신 등록부를 기반으로 취소 마감일이 다가오는 계약을 표시하고 통지 기간이 종료되기 전에 경고합니다. 사용자가 요청할 때 사용합니다.
official