From meta-skills
Generates value-driven X/Twitter threads promoting affiliate products to encourage bookmarks, shares, and clicks without spamming.
npx claudepluginhub affitor/affiliate-skills --plugin meta-skillsThis skill uses the workspace's default tool permissions.
Write X/Twitter threads that deliver genuine value, build authority, and naturally
Writes viral tweets and X threads using web research on niche examples, proven hook formulas, and algorithm optimization. Useful for social media content strategy.
Structures topics into engaging Twitter/X threads with viral hooks, escalating stakes, strategic CTAs, arc patterns, and tweet-by-tweet templates. Activated by 'twitter thread' etc.
Generates viral Twitter/X threads (5-15 tweets) with hook formulas, narrative structures, data points, CTAs, and scheduling strategies. Activates on 'twitter thread', 'X thread', 'viral thread' keywords.
Share bugs, ideas, or general feedback.
Write X/Twitter threads that deliver genuine value, build authority, and naturally recommend affiliate products without feeling like ads. The best affiliate threads get bookmarked for the insights and clicked for the product recommendation.
This skill belongs to Stage S2: Content
{
product: {
name: string # (required) "ConvertKit"
description: string # (optional) What it does
url: string # (optional) Affiliate link
reward_value: string # (optional) For context only — never shown in thread
}
thread_angle: string # (optional, default: auto) See Thread Frameworks below
expertise_area: string # (optional) Creator's area of authority — "email marketing", "SaaS growth"
audience: string # (optional) "founders", "freelancers", "content creators"
tone: string # (optional, default: "direct") "direct" | "educational" | "storytelling" | "contrarian"
tweet_count: number # (optional, default: 8) Number of tweets in thread: 5-15
personal_story: string # (optional) Real experience or result to anchor the thread
cta_style: string # (optional, default: "soft") "soft" | "direct" | "question"
}
Use web_search "[product name] best features use cases" and
web_search "[product name] vs [competitor]" to find:
Also search web_search "site:twitter.com [product name] affiliate" to see what
existing threads look like — then do something different or better.
| Framework | Structure | Best For |
|---|---|---|
| Lessons Learned | "I used [product] for X months. Here's what I learned:" → 7 insights → CTA | Tools you've genuinely used |
| Problem → Solution | Hook pain → Agitate it → Introduce solution → Show how it solves each pain → CTA | High-awareness problems |
| Contrarian Take | "Everyone says [common advice]. I disagree. [product] changed my mind." | Standing out in crowded niches |
| Numbers Story | "From [before metric] to [after metric] using [product]. Here's how:" → step-by-step → CTA | When you have real results |
| How-to Tutorial | "How to [achieve outcome] with [product] in [timeframe]:" → step-by-step → CTA | Educational, drives bookmarks |
| Tool Stack | "My [role] tool stack in 2024: Thread on each → [product] gets its own deep-dive tweet → CTA | Multi-product threads |
| Myth Busting | "5 myths about [problem space] — and what actually works:" → each myth → [product] as the solution | High engagement, saves |
Auto-select based on:
The hook tweet determines if anyone reads tweet 2. It must:
Never start with: "I want to share...", "In this thread...", "Have you ever..." Never use buzzwords as hooks: "game-changing", "revolutionary", "must-read"
Hook formula: [Specific outcome or bold claim] + [Credibility signal] + [Thread signal]
Each tweet in the body must:
Place the product recommendation at 60-70% through the thread (tweet 5-7 of 8-10). It should feel discovered, not pitched:
Mention the product once prominently. A brief second mention in the CTA tweet is fine.
The CTA tweet should:
shared/references/ftc-compliance.mdSoft CTA example: "If you want to try [product], there's a free trial at [link]. I use it daily. #ad" Direct CTA: "[Product] is how I [result]. Link to try it free: [link] #ad"
Increase bookmark and retweet probability:
Present tweets numbered and ready to paste. Include character count for each. Flag any tweet at 250+ characters for potential trimming.
Before presenting output, verify:
If any check fails, fix the output before delivering. Do not flag the checklist to the user — just ensure the output passes.
{
output_schema_version: "1.0.0" # Semver — bump major on breaking changes
thread: [
{
tweet_number: number # 1, 2, 3...
content: string # Full tweet text
char_count: number # Character count
role: string # "hook" | "body" | "product_mention" | "cta" | "summary"
}
]
framework: string # Which framework was used
product_mention_tweet: number # Which tweet number introduces the product
disclosure_tweet: number # Which tweet has #ad
suggested_hashtags: string[] # 2-3 hashtags for the thread
best_time_to_post: string # Optimal posting time for X
product_name: string
content_angle: string
}
## Twitter Thread: [Product Name]
**Framework:** [Name]
**Angle:** [Content angle]
**Tweets:** [N] tweets
---
**Tweet 1 (Hook)** — [X chars]
[Tweet content]
---
**Tweet 2** — [X chars]
[Tweet content]
---
*...continue for all tweets...*
---
**Tweet [N] (CTA)** — [X chars]
[Tweet content including #ad disclosure]
---
**Pinned Reply** — [X chars]
[Suggested first reply to boost engagement]
---
### Posting Guide
| Detail | Value |
|--------|-------|
| Best time to post | [Day + time] |
| First action after posting | [Like all tweets to boost visibility, pin reply] |
| Expected engagement pattern | [What metrics to watch] |
### Alternate Hook Options
- **[Hook style 2]:** "[Alternative tweet 1]"
- **[Hook style 3]:** "[Alternative tweet 1]"
recommended_program from S1 context if available.
Otherwise ask what product they want to promote.web_search to add specific stats, quotes, or
examples. Replace every vague claim with a concrete number or example.Example 1: User: "Write a Twitter thread promoting ConvertKit to freelancers" → Angle: "How I built a 3,000-subscriber email list as a freelancer — what worked" → Framework: Numbers Story → 9 tweets: Hook (metrics) → 6 lessons → ConvertKit mention at tweet 6 → CTA + #ad → Emphasis: free plan, creator-friendly, no bloat
Example 2: User: "I want to write a contrarian thread about email marketing tools" → Angle: "Most people pick the wrong email platform. Here's why:" → Framework: Contrarian Take → Myths to bust: "Mailchimp is fine for beginners", "you need fancy automations" → Natural product mention: "After trying 5 tools, I settled on ConvertKit because..."
Example 3: User: "8-tweet thread about HeyGen for video creators" → Framework: How-to Tutorial — "How to create a talking-head video without a camera" → Step-by-step: sign up → upload script → pick avatar → generate → edit → export → Product mention woven in at step 1 (that's HeyGen) → CTA: "HeyGen has a free plan — I made my first 3 videos for free: [link] #ad"
shared/references/ftc-compliance.md — #ad placement rules for Twitter/Xshared/references/platform-rules.md — X character limits, link handling, thread best practicesshared/references/affiliate-glossary.md — terminologyshared/references/flywheel-connections.md — master flywheel connection mapAfter 48 hours: how many clicks on the affiliate link? How many bookmarks? Bookmarks predict long-term traffic — bookmarked threads get resurfaced by the algorithm for weeks.
Next step — copy-paste this prompt: "Expand my Twitter thread about [product] into a full blog review" → runs
affiliate-blog-builder
affiliate-blog-builder (S3) — thread content expanded into blog postscontent-pillar-atomizer (S2) — successful threads become content to atomizesocial-media-scheduler (S5) — threads ready to scheduleab-test-generator (S6) — hook variants for testingaffiliate-program-search (S1) — recommended_program product datapurple-cow-audit (S1) — remarkable angles for thread hookscontent-pillar-atomizer (S2) — atomized Twitter pieces from pillar contentperformance-report (S6) reveals which thread hooks and lengths perform best → optimize thread structureBefore delivering output, verify:
Any NO → rewrite before delivering.
When mode: "volume":
volume_output:
variants:
- id: string
content: string
angle: string
chain_metadata:
skill_slug: "twitter-thread-writer"
stage: "content"
timestamp: string
suggested_next:
- "social-media-scheduler"
- "content-pillar-atomizer"
- "ab-test-generator"