Skip to content
Finance
Skill

/compliance

Review any client-facing message or material (emails, letters, newsletters, social posts, website copy, presentations, performance reports, proposals) for compliance with SEC rules that govern investment advisers — the Marketing Rule (206(4)-1), fiduciary duty / antifraud

From plugin
anthropics-financial-services
35k72 skills16 agents50 commands25 MCP
Install
$ npx -y skills add anthropics/financial-services-plugins --skill compliance --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/compliance

Context preview

The summary Claude sees to decide when to auto-load this skill.

Review any client-facing message or material (emails, letters, newsletters, social posts, website copy, presentations, performance reports, proposals) for compliance with SEC rules that govern investment advisers — the Marketing Rule (206(4)-1), fiduciary duty / antifraud

SKILL.md

compliance.SKILL.md
name: compliance
description: Review any client-facing message or material (emails, letters, newsletters, social posts, website copy, presentations, performance reports, proposals) for compliance with SEC rules that govern investment advisers — the Marketing Rule (206(4)-1), fiduciary duty / antifraud provisions (206), Books and Records (204-2), and Reg BI where broker-dealer activity applies. Produces a pass/flag/fail markup, required disclosures, a books-and-records scratch-pad entry, and an archiving handoff reminder. Triggers on "compliance check", "/compliance", "is this compliant", "review this before I send it", "can I say this to a client", "check this email/post/deck". Use it whenever an advisor asks to check, review, or look over anything before it goes to a client or prospect — "check this before I send it", "look this over before it goes out" — even a routine note, because deciding that a message needs no changes is part of the review, not a reason to skip it.

Compliance Marketing Review

This is a **pre-check** against SEC marketing rules, run **before** content goes out — the goal is to improve a draft's odds with the firm's own compliance review, not to perform that review: catch violations, suggest rewording that addresses them, and leave a record.

This skill supports advisers, it does not replace them: output is a **draft review for the firm's CCO/compliance officer**, not a legal determination or an approval. Nothing here means the content "passed compliance" — it means the known problems were caught and fixed before a human sees it.

Inputs

1. **The content** — pasted text, uploaded file, a draft Claude just wrote, or a draft already sitting in email or Drive. For the latter, `ToolSearch` by the system's own name — if its tools come back, search it for the draft. That search is the check that decides; `ListConnectors` (load via `ToolSearch` if not already available) explains a gap rather than establishing one, and an empty result from it means **unknown**, never "nothing is connected". If it isn't, follow the Connector Placeholder Convention — say *"This is where I'd search [system] for the draft once that connector is built"* — and degrade to asking the advisor to paste or upload it. Only use that wording when the connector genuinely isn't installed: `connected: true` with `enabledInChat: false` means it's switched off for this chat (say so, and that they can enable it here), and a missing or `null` `connected` means **unknown**, not disconnected. 2. **Context** (ask if unclear):

  • Audience: single client, prospect, or broad distribution (one-to-many)? — the Marketing Rule applies differently
  • Channel: email, social, website, print, presentation, text message
  • Firm type: SEC-registered RIA (default assumption), state-registered, or dual-registrant/BD rep (adds FINRA 2210 / Reg BI considerations)
  • Does it mention performance, testimonials, third-party ratings, or hypothetical/projected results?

Review Workflow

Invoking `/compliance`, or handing Claude a draft to check, is already the go-ahead — begin the review, don't ask whether to start.

Work through `references/sec-compliance-checklist.md` (in this skill's folder) systematically. Summary of the passes:

**Passes 2 and 3 go to the `claude-for-financial-advisors:compliance-scan` subagent** — `Agent(claude-for-financial-advisors:compliance-scan)`. Hand it the content verbatim, the context you gathered (audience, channel, firm type, whether performance/testimonials/ratings/hypotheticals appear), and the **absolute path** to `references/sec-compliance-checklist.md` — the subagent's working directory is the session's, not this skill's, so a relative path won't resolve for it. It returns its own advertisement determination — reached independently, from the checklist and the content, not from anything you concluded in Pass 1 — plus the flagged passages quoted verbatim with rule, severity, and reasoning, which disclosure categories the content triggers, and which checks came back clean. Where its determination and your Pass 1 call disagree, yours governs the review — Pass 4's markup and the disclosure language are yours to write, so the call that drives them is yours to make — but never let the difference pass unremarked: note it in the analysis file, and treat the disagreement as one more reason to escalate to the CCO.

**Pass 4 stays with you, all of it.** The subagent finds and cites; it never rewords, never drafts disclosure language, and never redrafts. The suggested rewording column, the required-disclosure language, and the clean redraft that preserves the author's voice are the parts that need judgment about this firm and this author, and they are the reason this skill exists. Read the scan, then write the markup yourself — and check the flags rather than transcribing them: a severity you disagree with is yours to change.

**Once the scan comes back, resolve what it can't reach itself** — `compliance-scan` only has `Read`/`Grep`/`Glob`, so any check that needs a live connector is yours to dispatch, not its:

  • **A testimonial or endorsement is present.** `ToolSearch` by the CRM's own name; if its tools come back it is callable, which is the check that decides. `ListConnectors` (load via `ToolSearch` if needed) only explains a gap — read `enabledInChat` rather than `connected` there, and treat an empty result as **unknown**, never as "no CRM". If a CRM is usable, dispatch one `claude-for-financial-advisors:compliance-lookup` subagent per named author (lookup type `identity`) — all in a single message if there's more than one. Hand each the one system it is to query, named (the CRM whose tools came back), and the author as the content names them — asking for client vs. non-client status, relationships to other households, and anything bearing on compensation or conflicts. Fold what comes back into Pass 3's disclosure requirements below. If no CRM is connected, follow the Connector P
Read more
Ships withanthropics-financial-services

Reference agents, skills, and data connectors for the financial-services workflows we see most — investment banking, equity research, private equity, and wealth management.

Get the whole plugin