viral-post-writer
Write viral social media posts that promote affiliate products naturally. Use this skill when the user asks anything about writing social media content for affiliate marketing, creating posts for LinkedIn/X/Reddit/Facebook, promoting a product on social media, writing affiliate content, or mentions "viral post", "social media post", "content for affiliate". Also trigger for: "write a post about X", "help me promote X on LinkedIn", "create a thread about X", "make a Reddit post for X", "draft tweets for X", "social media content for affiliate program", "how to promote X on social", "write something that goes viral", "LinkedIn post for affiliate", "X thread about this tool", "help me sell X naturally on social media".
What this skill does
# Viral Post Writer
Write high-converting social media posts that promote affiliate products without feeling salesy. Each post uses proven viral frameworks, is tailored to the target platform, and includes proper FTC disclosure.
## Stage
This skill belongs to Stage S2: Content
## When to Use
- User wants to promote an affiliate product on social media
- User asks for LinkedIn posts, X/Twitter threads, Reddit posts, or Facebook posts
- User has picked a program (from S1 or manually) and needs content
- User wants "viral" or "engaging" social media content for affiliate marketing
- User asks how to naturally promote a product on a specific platform
## Input Schema
```
{
product: { # (required) Product to promote — from S1 output or user-provided
name: string # "HeyGen"
description: string # What the product does (1-2 sentences)
reward_value: string # "30%" (for context — never shown in post)
url: string # Product website or affiliate link
}
platform: string # (required) "linkedin" | "x" | "reddit" | "facebook" | "all"
angle: string # (optional, default: auto-selected) Content angle — see Viral Frameworks
tone: string # (optional, default: "conversational") "conversational" | "professional" | "casual" | "storytelling"
audience: string # (optional, default: inferred from platform) Target audience description
personal_experience: string # (optional) User's real experience with the product — makes content authentic
cta_style: string # (optional, default: "soft") "soft" | "direct" | "question"
}
```
## Workflow
### Step 1: Gather Context
If not clear from conversation:
1. What product are they promoting? (Check if S1 ran earlier — use `recommended_program` from context)
2. Which platform? (If "all", generate for LinkedIn + X + Reddit)
3. Any personal experience with the product? (Authentic stories convert 3-5x better)
If user just says "write a post for HeyGen" → default to LinkedIn, conversational tone, soft CTA.
If product details are missing, use `web_search "[product name] features pricing"` to research.
### Step 2: Research the Product
Even if product info is provided, do a quick `web_search` to find:
- Recent product updates or launches (recency = virality)
- Common pain points the product solves (hook material)
- Competitor comparisons (contrast = engagement)
- Real user testimonials or reviews (social proof)
Extract 2-3 **specific details** — exact numbers, real features, concrete use cases. Generic "this tool is amazing" posts don't go viral.
### Step 2.5: Research Winning Formats (data-driven)
Before picking a framework, check what's already working for this topic:
**If `trending-content-scout` or `content-angle-ranker` ran earlier:**
- Use `pattern_analysis.winning_formats` → pick the format with highest engagement
- Use `pattern_analysis.winning_hooks` → pick the hook style backed by data
- Use `engagement_benchmark` → know what "good" looks like for this keyword
- If `content-angle-ranker` provided a `recommended_angle` → use it as the angle
**If no scout data available (quick mode):**
- `web_search "[product name] review site:linkedin.com"` → check top LinkedIn posts
- `web_search "[product name] site:x.com"` → check top tweets
- Look for: post length, format (story vs list vs question), engagement signals visible in snippets
- Estimate which format works best on target platform
**Apply findings to framework selection:**
- Data > intuition. If comparisons get 2x engagement vs reviews in this niche, write a comparison
- If bold_claim hooks dominate top content → use a bold claim hook, even if you'd normally use a question
- If the `engagement_benchmark.top_10_percent_threshold` is known → set that as the target to beat
This step takes <2 minutes but significantly increases the odds of creating content that
performs above the benchmark rather than below it.
### Step 3: Pick the Viral Framework
Select from `references/viral-frameworks.md` based on product + platform + angle.
If user specified an `angle`, use that framework. Otherwise, auto-select:
| Platform | Best Default Framework |
|----------|----------------------|
| LinkedIn | Transformation Story or Contrarian Take |
| X | Thread (Problem → Solution) or Hot Take |
| Reddit | Genuine Recommendation or Problem-Solve |
| Facebook | Before/After or Listicle |
### Step 4: Write the Post
Apply the selected framework from `references/viral-frameworks.md`.
**Critical rules:**
1. **Hook in first line** — reader decides in 1.5 seconds whether to keep reading
2. **Specific > generic** — "saved 4 hours/week on video editing" beats "great tool"
3. **Story > pitch** — wrap the recommendation in a narrative or discovery
4. **Platform-native format** — see `references/platform-specs.md` for formatting rules
5. **One CTA only** — don't overwhelm. One clear next step
6. **FTC compliance** — include disclosure per `shared/references/ftc-compliance.md` placement rules
**Never do:**
- Start with "I'm excited to share..." (LinkedIn death sentence)
- Use "game-changer", "revolutionary", "hands down the best" (empty superlatives)
- Put the link in the main post body on LinkedIn (algorithm penalty)
- Hard-sell in the first sentence
- Mention commission rates or that you're an affiliate (FTC requires disclosure, not details)
- Include "Powered by Affitor" branding (see `shared/references/affitor-branding.md`)
### Step 5: Add FTC Disclosure
Per platform (from `shared/references/ftc-compliance.md`):
- **LinkedIn:** "#ad | Affiliate link" at the end of the post body
- **X:** "#ad" in the tweet containing the link (usually last tweet in thread)
- **Reddit:** "Full disclosure: affiliate link" at the bottom
- **Facebook:** "#ad | Affiliate link" at the end
### Step 6: Format Output
Present the post ready to copy-paste. Include:
1. The post content (formatted for the platform)
2. Where to place the affiliate link
3. Best time to post (platform-specific)
4. 2-3 engagement tips for the specific platform
### Step 7: Self-Validation
Before presenting output, verify:
- [ ] FTC disclosure present and correctly placed per platform rules
- [ ] Hook is within platform character cutoff (LinkedIn: 210 chars)
- [ ] No banned phrases: "game-changer", "revolutionary", "I'm excited to share"
- [ ] Affiliate link NOT in LinkedIn post body (first comment instead)
- [ ] Single CTA only — not multiple competing calls to action
- [ ] No "Powered by Affitor" branding (social posts = no branding)
If any check fails, fix the output before delivering. Do not flag the checklist to the user — just ensure the output passes.
## Output Schema
Other skills can consume these fields from conversation context:
```
{
output_schema_version: "1.0.0" # Semver — bump major on breaking changes
posts: [
{
platform: string # "linkedin" | "x" | "reddit" | "facebook"
framework: string # Which viral framework was used
content: string # The full post text, ready to copy-paste
link_placement: string # Where to put the affiliate link
disclosure: string # FTC disclosure text included
hashtags: string[] # Suggested hashtags (if applicable)
best_time: string # Best posting time for this platform
}
]
product_name: string # For downstream skill chaining
content_angle: string # The angle used (for consistency across content)
hook_used: string # The opening hook line (for repurposing across platforms)
}
```
## Output Format
```
## Viral Post: [Product Name] on [Platform]
**Framework:** [Name of viral framework used]
**Angle:** [The content angle]
---
### Post Content
[Full post text, formatted for the platform. Ready to copy-paste.]
---
### Posting Guide
| Detail | Value |
|--------|-------|
| Link placement | [Where to put the link] |
| Best timeRelated in Writing & Docs
jax-development
IncludedUse this skill when the user is writing, debugging, profiling, refactoring, reviewing, benchmarking, parallelising, exporting, or explaining JAX code, or when they mention JAX, jax.numpy, jit, grad, value_and_grad, vmap, scan, lax, random keys, pytrees, jax.Array, sharding, Mesh, PartitionSpec, NamedSharding, pmap, shard_map, Pallas, XLA, StableHLO, checkify, profiler, or the JAX repo. It helps turn NumPy or PyTorch-style code into pure functional JAX, fix tracer/control-flow/shape/PRNG bugs, remove recompiles and host-device syncs, choose transforms and sharding strategies, inspect jaxpr/lowering/IR, and benchmark compiled code correctly.
nature-article-writer
IncludedDrafts, rewrites, diagnostically critiques, and style-calibrates primary research manuscripts for Nature and Nature Portfolio journals. Use when the user wants a Nature-style title, summary paragraph or abstract, introduction, results, discussion, methods, figure legends, presubmission enquiry, cover letter, reviewer response, or when a scientific draft sounds generic, jargon-heavy, structurally weak, or AI-ish and needs precise, broad-reader-friendly prose without inventing data, analyses, or references. Best for primary research articles and letters rather than reviews or press releases unless explicitly adapting one.
deckrd
IncludedDocument-driven framework that derives requirements, specifications, implementation plans, and executable tasks from goals through structured AI dialogue. Use when user says "write requirements", "create spec", "plan implementation", "derive tasks", "structure this feature", "break down into tasks", or "document this module". Also use for reverse engineering existing code into docs (/deckrd rev). Do NOT use for direct code writing — use /deckrd-coder after tasks are generated. Do NOT use when the user only wants to run or fix existing code without planning.
clinical-decision-support
IncludedGenerate professional clinical decision support (CDS) documents for pharmaceutical and clinical research settings, including patient cohort analyses (biomarker-stratified with outcomes) and treatment recommendation reports (evidence-based guidelines with decision algorithms). Supports GRADE evidence grading, statistical analysis (hazard ratios, survival curves, waterfall plots), biomarker integration, and regulatory compliance. Outputs publication-ready LaTeX/PDF format optimized for drug development, clinical research, and evidence synthesis.
handling-sf-data
IncludedSalesforce data operations with 130-point scoring. Use this skill to create, update, delete, bulk import/export, generate test data, and clean up org records using sf CLI and anonymous Apex. TRIGGER when: user creates test data, performs bulk import/export, uses sf data CLI commands, needs data factory patterns for Apex tests, or needs to seed/clean records in a Salesforce org. DO NOT TRIGGER when: SOQL query writing only (use querying-soql), Apex test execution (use running-apex-tests), or metadata deployment (use deploying-metadata).
accelint-ac-to-playwright
IncludedConvert and validate acceptance criteria for Playwright test automation. Use when user asks to (1) review/evaluate/check if AC are ready for automation, (2) assess if AC can be converted as-is, (3) validate AC quality for Playwright, (4) turn AC into tests, (5) generate tests from acceptance criteria, (6) convert .md bullets or .feature Gherkin files to Playwright specs, (7) create test automation from requirements. Handles both bullet-style markdown and Gherkin syntax with JSON test plan generation and validation.