Affiliate-skills compliance-checker
git clone https://github.com/Affitor/affiliate-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/Affitor/affiliate-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/meta/compliance-checker" ~/.claude/skills/affitor-affiliate-skills-compliance-checker && rm -rf "$T"
skills/meta/compliance-checker/SKILL.mdCompliance Checker
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.
Stage
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.
When to Use
- User wants to check content before publishing
- User asks about FTC rules or affiliate disclosure requirements
- User is unsure if their content is compliant
- User says "is this legal?", "do I need a disclosure?", "check my post"
- User is preparing content for a platform with strict ad policies (Facebook, Google)
- Chaining: run after any S2-S5 or S7 content-producing skill before publishing
- User wants to audit existing published content
Input Schema
content: string # REQUIRED — the content to check (text, markdown, or HTML) content_type: string # REQUIRED — "social_post" | "blog" | "landing_page" # | "email" | "ad" | "video_script" platform: string # OPTIONAL — "linkedin" | "twitter" | "reddit" | "facebook" # | "tiktok" | "youtube" | "google_ads" | "pinterest" # Platform-specific rules applied if provided claims: # OPTIONAL — specific claims to verify - string # e.g., ["earn $10K/month", "guaranteed results"]
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.
Workflow
Step 1: Detect Affiliate Links
Scan content for:
- URLs with affiliate parameters (
,ref=
,aff=
, UTM tags)partner= - Shortened URLs (bit.ly, etc.) that may hide affiliate links
- Product mentions that imply a commercial relationship
Step 2: Check FTC Disclosure
Read
shared/references/ftc-compliance.md for rules. Check:
- Presence: Is there a disclosure? (required if any affiliate link exists)
- Placement: Is the disclosure before or near the affiliate link? (not buried at the bottom)
- Clarity: Is it clear to a reasonable consumer? ("affiliate link" is clear; "partner" alone is not)
- Format by content type:
- Social post:
or#ad
visible without expandingAffiliate link - Blog: Disclosure in the opening paragraph, above the fold
- Landing page: Medium disclosure above the fold
- Email: Disclosure near the affiliate link
- Ad: Platform-specific requirements
- Social post:
Step 3: Check Prohibited Claims
Scan for:
- Income claims: "earn $X", "make money fast", "passive income guaranteed"
- False urgency: "only 3 left" (if not verifiable), "offer expires" (if no real deadline)
- Health/medical claims: unsubstantiated health benefits
- Guaranteed results: "guaranteed to work", "100% success rate"
- Fake scarcity: "limited spots" (if not actually limited)
- Fake testimonials: results that aren't typical without disclaimer
Step 4: Check Platform Rules
If
platform is provided, apply platform-specific rules:
- Reddit: Self-promotion rules (10:1 ratio), must disclose in post
- Facebook/Instagram: Branded Content tool, "Paid Partnership" label for ads
- Google Ads: Clear commercial intent, no misleading claims, landing page requirements
- TikTok: #ad or Paid Partnership toggle, no medical/financial advice claims
- YouTube: Verbal + written disclosure in first 30 seconds, "Includes paid promotion" checkbox
Step 5: Score and Report
Rate compliance on three levels:
- PASS: No issues found
- WARN: Minor issues that should be fixed (e.g., disclosure placement could be better)
- FAIL: Critical issues that must be fixed before publishing (e.g., no disclosure at all)
Step 6: Generate Fixes
For each issue, provide:
- What's wrong (specific quote from content)
- Why it matters (rule reference)
- How to fix it (specific replacement text)
Step 7: Self-Validation
Before presenting output, verify:
- All affiliate links in the content are detected and flagged
- Disclosure placement check matches platform-specific rules
- Prohibited claims identified with exact quotes from content
- Fix suggestions are copy-paste ready and preserve original tone
- Corrected content would pass a re-scan by this same skill
If any check fails, fix the output before delivering. Do not flag the checklist to the user — just ensure the output passes.
Output Schema
output_schema_version: "1.0.0" # Semver — bump major on breaking changes compliance: overall_score: string # "PASS" | "WARN" | "FAIL" disclosure_present: boolean disclosure_placement: string # "correct" | "needs_improvement" | "missing" prohibited_claims: number # count of issues found platform_issues: number # count of platform-specific issues issues: - severity: string # "critical" | "warning" | "info" category: string # "disclosure" | "claims" | "platform" | "formatting" description: string # what's wrong quote: string # the problematic text fix: string # suggested replacement corrected_content: string # full content with all fixes applied
Output Format
- Compliance Scorecard — overall score, disclosure status, issue counts
- Issues Found — table with severity, category, description, and fix
- Corrected Content — the full content with all issues fixed (copy-paste ready)
- Platform Notes — any platform-specific requirements not yet addressed
Error Handling
- No content provided: "Paste the content you want me to check, or tell me which skill output to review. I'll check it for FTC compliance and platform rules."
- Content has no affiliate links: "No affiliate links detected. FTC disclosure is only required for content with material connections (affiliate links, sponsored content, gifted products). Your content looks clean."
- Unknown platform: "I don't have specific rules for [platform]. I'll check general FTC compliance. For platform-specific rules, check the platform's advertising policy page."
Examples
Example 1: Social post with missing disclosure
User: "Check this tweet: 'Just tried HeyGen and it's incredible for creating AI videos. Use my link to get 10% off: heygen.com/ref/abc123'" Action: FAIL — no FTC disclosure. Fix: Add
#ad before or after the link. Output corrected tweet with disclosure.
Example 2: Blog post with buried disclosure
User: [Pastes a 1000-word blog review with disclosure only in the footer] Action: WARN — disclosure present but buried at bottom. Fix: Move disclosure to opening paragraph. Also check for income claims, link attributes (
rel="nofollow sponsored").
Example 3: Facebook ad with income claim
User: "Check this ad: 'I made $5,000 last month with this one tool. You can too! Click here to start earning.'" Action: FAIL — (1) income claim without typicality disclaimer, (2) no FTC disclosure, (3) Facebook requires Paid Partnership label. Output fixes for all three issues.
References
— FTC affiliate disclosure requirements. Read in Step 2.shared/references/ftc-compliance.md
— Branding guidelines. Referenced for page outputs.shared/references/affitor-branding.md
— master flywheel connection mapshared/references/flywheel-connections.md
Revenue & Action Plan
Expected Outcomes
- Revenue protection: The FTC has fined affiliates $4.2M+ for undisclosed endorsements. A single violation can result in program termination (losing ALL commissions), platform bans, or legal action. Compliance isn't about making money — it's about not losing the money you've already earned
- Benchmark: Amazon Associates terminates 10,000+ affiliate accounts per year for policy violations. One missing disclosure on one post can end your entire affiliate business overnight
- Key metric to track: Compliance score across ALL your published content. Target: 100% PASS. Any FAIL = fix before publishing. Any WARN = fix within 48 hours
Do This Right Now (15 min)
- Fix all FAIL issues immediately — do not publish until every critical issue is resolved
- Fix WARN issues — update disclosure placement, fix any claim language
- Copy the Corrected Content from the output and replace your original content
- Audit your top 5 existing posts — run this skill on your most-trafficked affiliate content to ensure they're compliant
Track Your Results
Run this skill monthly on all new content before publishing. Keep a compliance log — if the same issue appears 3+ times, update your content creation workflow to prevent it at the source (e.g., add FTC disclosure to your post template).
Next step — copy-paste this prompt: "Plan my entire affiliate funnel from research to revenue" → runs
funnel-planner
Flywheel Connections
Feeds Into
- All content skills (S2-S5, S7) — compliance status acts as a pass/fail gate before publishing
Fed By
- All content-producing skills — content to check for compliance
(S4) — landing pages to audit for FTC compliancelanding-page-creator
(S5) — emails to check for disclosureemail-drip-sequence
Feedback Loop
- Compliance issues found repeatedly in specific content types → flag to the relevant skill for structural improvement
chain_metadata: skill_slug: "compliance-checker" stage: "meta" timestamp: string suggested_next: - "self-improver" - "funnel-planner"