$npx -y skills add Affitor/affiliate-skills --skill compliance-checkerCheck affiliate content for FTC compliance and platform rules. Triggers on: "check my content for compliance", "FTC disclosure check", "is this legal", "review for compliance", "check affiliate disclosure", "am I FTC compliant", "audit my content", "compliance review", "legal che
| 1 | # Compliance Checker |
| 2 | |
| 3 | Audit affiliate content for FTC compliance, platform-specific rules, and legal requirements. Checks disclosure placement, prohibited claims, endorsement guidelines, and platform policies. Output is a compliance scorecard with issues, severity, and fix suggestions. |
| 4 | |
| 5 | ## Stage |
| 6 | |
| 7 | S8: Meta — The FTC has fined affiliates $4.2M+ for undisclosed endorsements. One missing disclosure can result in legal action, platform bans, or program termination. This skill is the safety net — run it on any content before publishing to catch compliance issues before they become problems. |
| 8 | |
| 9 | ## When to Use |
| 10 | |
| 11 | - User wants to check content before publishing |
| 12 | - User asks about FTC rules or affiliate disclosure requirements |
| 13 | - User is unsure if their content is compliant |
| 14 | - User says "is this legal?", "do I need a disclosure?", "check my post" |
| 15 | - User is preparing content for a platform with strict ad policies (Facebook, Google) |
| 16 | - Chaining: run after any S2-S5 or S7 content-producing skill before publishing |
| 17 | - User wants to audit existing published content |
| 18 | |
| 19 | ## Input Schema |
| 20 | |
| 21 | ```yaml |
| 22 | content: string # REQUIRED — the content to check (text, markdown, or HTML) |
| 23 | |
| 24 | content_type: string # REQUIRED — "social_post" | "blog" | "landing_page" |
| 25 | # | "email" | "ad" | "video_script" |
| 26 | |
| 27 | platform: string # OPTIONAL — "linkedin" | "twitter" | "reddit" | "facebook" |
| 28 | # | "tiktok" | "youtube" | "google_ads" | "pinterest" |
| 29 | # Platform-specific rules applied if provided |
| 30 | |
| 31 | claims: # OPTIONAL — specific claims to verify |
| 32 | - string # e.g., ["earn $10K/month", "guaranteed results"] |
| 33 | ``` |
| 34 | |
| 35 | **Chaining context**: If content was produced by S2-S5 or S7 in the same conversation, pull it directly. The user should not have to paste content that was just generated. |
| 36 | |
| 37 | ## Workflow |
| 38 | |
| 39 | ### Step 1: Detect Affiliate Links |
| 40 | |
| 41 | Scan content for: |
| 42 | - URLs with affiliate parameters (`ref=`, `aff=`, `partner=`, UTM tags) |
| 43 | - Shortened URLs (bit.ly, etc.) that may hide affiliate links |
| 44 | - Product mentions that imply a commercial relationship |
| 45 | |
| 46 | ### Step 2: Check FTC Disclosure |
| 47 | |
| 48 | Read `shared/references/ftc-compliance.md` for rules. Check: |
| 49 | - **Presence**: Is there a disclosure? (required if any affiliate link exists) |
| 50 | - **Placement**: Is the disclosure before or near the affiliate link? (not buried at the bottom) |
| 51 | - **Clarity**: Is it clear to a reasonable consumer? ("affiliate link" is clear; "partner" alone is not) |
| 52 | - **Format by content type**: |
| 53 | - Social post: `#ad` or `Affiliate link` visible without expanding |
| 54 | - Blog: Disclosure in the opening paragraph, above the fold |
| 55 | - Landing page: Medium disclosure above the fold |
| 56 | - Email: Disclosure near the affiliate link |
| 57 | - Ad: Platform-specific requirements |
| 58 | |
| 59 | ### Step 3: Check Prohibited Claims |
| 60 | |
| 61 | Scan for: |
| 62 | - **Income claims**: "earn $X", "make money fast", "passive income guaranteed" |
| 63 | - **False urgency**: "only 3 left" (if not verifiable), "offer expires" (if no real deadline) |
| 64 | - **Health/medical claims**: unsubstantiated health benefits |
| 65 | - **Guaranteed results**: "guaranteed to work", "100% success rate" |
| 66 | - **Fake scarcity**: "limited spots" (if not actually limited) |
| 67 | - **Fake testimonials**: results that aren't typical without disclaimer |
| 68 | |
| 69 | ### Step 4: Check Platform Rules |
| 70 | |
| 71 | If `platform` is provided, apply platform-specific rules: |
| 72 | - **Reddit**: Self-promotion rules (10:1 ratio), must disclose in post |
| 73 | - **Facebook/Instagram**: Branded Content tool, "Paid Partnership" label for ads |
| 74 | - **Google Ads**: Clear commercial intent, no misleading claims, landing page requirements |
| 75 | - **TikTok**: #ad or Paid Partnership toggle, no medical/financial advice claims |
| 76 | - **YouTube**: Verbal + written disclosure in first 30 seconds, "Includes paid promotion" checkbox |
| 77 | |
| 78 | ### Step 5: Score and Report |
| 79 | |
| 80 | Rate compliance on three levels: |
| 81 | - **PASS**: No issues found |
| 82 | - **WARN**: Minor issues that should be fixed (e.g., disclosure placement could be better) |
| 83 | - **FAIL**: Critical issues that must be fixed before publishing (e.g., no disclosure at all) |
| 84 | |
| 85 | ### Step 6: Generate Fixes |
| 86 | |
| 87 | For each issue, provide: |
| 88 | - What's wrong (specific quote from content) |
| 89 | - Why it matters (rule reference) |
| 90 | - How to fix it (specific replacement text) |