Agent Skills › AgriciDaniel/claude-repurpose

AgriciDaniel/claude-repurpose

GitHub

生成7天错峰发布日历,根据平台优化发布时间与频率,防止受众疲劳。输入内容文件与目标平台,输出包含日期、时间、平台及文件引用的详细排期表。

21 skills 113

Install All Skills

npx skills add AgriciDaniel/claude-repurpose --all -g -y
More Options

List skills in collection

npx skills add AgriciDaniel/claude-repurpose --list

Skills in Collection (21)

生成7天错峰发布日历,根据平台优化发布时间与频率,防止受众疲劳。输入内容文件与目标平台,输出包含日期、时间、平台及文件引用的详细排期表。
publishing calendar content calendar posting schedule 7-day calendar repurpose calendar
skills/repurpose-calendar/SKILL.md
npx skills add AgriciDaniel/claude-repurpose --skill repurpose-calendar -g -y
SKILL.md
Frontmatter
{
    "name": "repurpose-calendar",
    "license": "MIT",
    "metadata": {
        "author": "AgriciDaniel",
        "version": "1.0.0",
        "category": "content"
    },
    "description": "Generates a 7-day publishing calendar with staggered posts, optimal timing per platform, file references, engagement reminders, and theme-day grouping. Prevents audience fatigue by limiting to 2-3 posts per day. Sub-skill of the Content Repurposing Engine. Use when user says \"publishing calendar\", \"content calendar\", \"posting schedule\", \"7-day calendar\", or \"repurpose calendar\".\n",
    "argument-hint": "",
    "user-invokable": true
}

Publishing Calendar Generator

Produce a 7-day staggered publishing calendar starting from the current date. Maps all repurposed content to specific days, times, and platforms.

Inputs

Received from the parent orchestrator:

Input Description
generated_outputs List of all content files produced by other sub-skills
platforms_requested Which platforms were included (all if unspecified)
primary_topic Category or niche of the source content
target_audience Who benefits from this content
current_date Today's date (start of the 7-day window)

References

Load these before generating the calendar:

  • references/platform-specs.md -- posting limits and format rules
  • references/engagement-benchmarks.md -- optimal timing data and engagement windows

Output: calendar.md

File: calendar.md

Calendar Table Format

The calendar is a markdown table with these columns:

| Day | Date | Time | Platform | Content Type | File Reference | Image Needed | Notes |
|-----|------|------|----------|-------------|----------------|--------------|-------|

Column definitions:

Column Description
Day Day name (Monday, Tuesday, etc.)
Date Actual date (YYYY-MM-DD) calculated from current_date
Time Recommended posting time in local time
Platform Target platform name
Content Type What is being posted (tweet, thread, carousel, poll, etc.)
File Reference Relative path to the output file (e.g., twitter/thread.md)
Image Needed Yes/No -- whether this post requires an image or graphic
Notes Engagement reminders, dependencies, or special instructions

Optimal Posting Times

Use these windows as defaults. Adjust if the user specifies a timezone or audience location.

Platform Best Days Best Times (Local) Peak Window
Twitter/X Mon-Fri 9-11 AM or 1-3 PM Tue-Thu 10 AM
LinkedIn Tue-Thu 8-10 AM Wed 9 AM
Instagram Mon, Wed, Fri 11 AM - 1 PM Wed 12 PM
Facebook Tue-Fri 9 AM - 12 PM Thu 10 AM
YouTube Community Tue, Thu 10 AM - 12 PM Tue 11 AM
Skool Mon, Wed, Fri 9 AM - 11 AM Mon 10 AM
TikTok Tue, Thu, Sat 7-9 PM Thu 8 PM
Reddit Mon-Fri 8-10 AM EST Tue 9 AM EST
Quora Mon-Fri 9 AM - 12 PM Wed 10 AM
Threads Tue, Thu 10 AM - 1 PM Thu 11 AM
Pinterest Sat, Sun 8-11 PM Sat 9 PM
Snapchat Mon-Fri 10 PM - 1 AM Wed 11 PM
Discord Weekdays 3-8 PM EST Wed 5 PM EST
Medium Tue-Thu 8-10 AM Wed 9 AM
WhatsApp Daily 8-9 AM, 6-8 PM Tue 8 AM
Telegram Daily 9-11 AM, 7-9 PM Wed 10 AM
Newsletter Tue or Thu 8-10 AM Tue 9 AM

Scheduling Rules

Rule 1: Stagger Across Days

Never post to all platforms on the same day. Spread content across the full 7-day window to maintain consistent presence without flooding.

Rule 2: Maximum 2-3 Posts Per Day

No more than 3 posts on any single day. Audience fatigue is real. If a day has 3 posts, they must be on 3 different platforms.

Rule 3: Lead with Long-Form, Follow with Snippets

Publish comprehensive content first (LinkedIn article, newsletter, Reddit post), then extract and post shorter pieces (tweets, quote cards, polls) in subsequent days. This creates a natural content cascade.

Rule 4: Space Repeated Platforms

If a platform appears twice in the week (e.g., Twitter standalone tweet + Twitter thread), space them at least 2 days apart.

Theme Days

Organize the 7-day calendar by content theme. Adapt based on which platforms were actually generated.

Day 1 (Start Date): Long-Form Launch

Priority Platform Content Type Notes
1 LinkedIn Text post + carousel Lead with the authoritative version
2 Medium Article (1500-3000 words) In-depth launch; Google SEO play
3 Newsletter Email excerpt (Day 0 of drip) Send to existing subscribers

Engagement reminder: "Reply to every LinkedIn comment within 60 minutes."

Day 2: Threads and Discussions

Priority Platform Content Type Notes
1 Twitter/X Thread (8-12 tweets) Expand on Day 1's core insight
2 Threads Thread (5-10 posts) Parallel to Twitter; links allowed
3 Reddit Discussion post Peer-to-peer version of the same insight
4 Quora Answer post Authority version; targets high-traffic question

Engagement reminder: "Engage with every thread reply for 2 hours after posting."

Day 3: Visual Content

Priority Platform Content Type Notes
1 Instagram Carousel (7-10 slides) + caption Visual breakdown of the topic
2 TikTok Video script (15-60s) Post after Instagram carousel; reference same atoms
3 Pinterest 3-5 pins + idea pin SEO-rich; longest-lasting content format

Engagement reminder: "Reply to Instagram comments within first hour for algorithm boost."

Day 4: Engagement and Polls

Priority Platform Content Type Notes
1 LinkedIn Poll Ask audience to weigh in on a key question
2 Twitter/X Poll Same question, adapted for Twitter's format
3 Facebook Question post or poll Conversational version
4 Discord Poll or reaction vote Community engagement in server
5 Telegram Poll (quiz mode optional) Channel engagement

Engagement reminder: "Vote in your own polls (sets the tone). Comment on early responses."

Day 5: Community Building

Priority Platform Content Type Notes
1 Skool Challenge or action post Give the community something to do
2 YouTube Community Text post or poll Engage existing subscribers
3 Discord Discussion thread + announcement Community conversation

Engagement reminder: "Pin a follow-up comment with additional context."

Day 6: Drip and Reinforcement

Priority Platform Content Type Notes
1 Newsletter Email 2 (Day 2 of drip) Deeper dive for subscribers
2 WhatsApp Channel update Best insight as personal message
3 Telegram Channel post Formatted broadcast with key takeaway

Engagement reminder: "Monitor email replies; respond to any subscriber questions."

Day 7: Lightweight and Residual

Priority Platform Content Type Notes
1 Instagram Story or reel script Lightweight, behind-the-scenes feel
2 Snapchat Story script (3-5 frames) Ephemeral, raw feel
3 Skool Discussion post Open-ended community question

Engagement reminder: "Respond to any leftover comments from the week across all platforms."

Drip Sequence Integration

Map the 3-email drip to calendar days: Email 1 on Day 1 (with long-form launch), Email 2 on Day 3 or 6, Email 3 on Day 5 or 7. Shift to next weekday if start date falls on a weekend.

Platform Filtering

If not all platforms were generated, remove missing rows, redistribute content (max 2-3/day still applies), compress to 3-4 days for 1-2 platforms.

Calendar Footer

Include after the table: total pieces count, platforms covered, image assets needed (reference images/prompts.md), email drip status, and these engagement rules: respond to comments within 60 minutes, engage with 3-5 niche posts before and after yours, never post and ghost, track top performers for future repurposing.

Error Handling

Condition Action
No outputs generated yet Cannot build calendar; report error to orchestrator
Only 1 platform Generate 3-day schedule; 1 post per day
Start date is weekend Shift Day 1 to next Monday; compress weekend into light days
brief_mode was used Condense to 3-day calendar; top 3 platforms only
Missing image assets Mark "Image Needed: Yes" and reference images/prompts.md
Email drip not generated Remove drip rows; note in footer
基于内容原子生成Discord社区帖子,包括公告、讨论提示和富嵌入消息。强调对话式设计、休闲语气及互动引导,严格遵循平台规范与字符限制。
discord discord post discord announcement discord thread repurpose for discord
skills/repurpose-discord/SKILL.md
npx skills add AgriciDaniel/claude-repurpose --skill repurpose-discord -g -y
SKILL.md
Frontmatter
{
    "name": "repurpose-discord",
    "license": "MIT",
    "metadata": {
        "author": "AgriciDaniel",
        "version": "1.0.0",
        "category": "content"
    },
    "description": "Generates Discord community content from content atoms: announcement posts for channels, discussion thread prompts designed for reply-generation, and rich embed messages with structured fields. Enforces casual peer tone, reaction prompts, and conversation-first design. Sub-skill of the Content Repurposing Engine. Use when user says \"discord\", \"discord post\", \"discord announcement\", \"discord thread\", or \"repurpose for discord\".\n",
    "argument-hint": "[url-or-atoms]",
    "user-invokable": true
}

Discord Community Content Generator

Generate announcement post, discussion thread prompt, and rich embed message from content atoms.

Inputs

Received from the parent agent (repurpose-community):

Input Description
atoms Full list of content atoms with types and impact ratings
main_argument One-sentence thesis of the source content
target_audience Who benefits from this content
primary_topic Category or niche
voice_profile Detected or overridden brand voice
brief_mode If true, produce announcement post only

References

Load before generating:

  • references/platform-specs.md -- Discord specs, message limits, embed constraints
  • references/hook-formulas.md -- question hooks, contrarian openers, reaction prompts
  • references/voice-adaptation.md -- Discord tone rules (casual, peer, emoji-friendly)

Platform Rules

Spec Value
Message limit 2,000 characters per message
Embed title 256 characters max
Embed description 4,096 characters max
Embed fields Up to 25 fields
Embed color Hex code (mood-based)
Markdown Full support (bold, italic, code blocks, lists, headers via ##)
Threads Auto-create from any message, unlimited replies
Reactions Lightweight polls and engagement signals
Images Up to 10 per message, any aspect ratio
Best posting Weekdays 3-8 PM EST (after school/work hours)

Core Principle

Discord is about CONVERSATION, not broadcasting. Every post should invite a specific response. Silent posts get buried by the scroll. Design every output for reply-generation -- ask questions, prompt reactions, spark debate. A post with zero replies is a failed post.

Output 1: Announcement Post

Write to discord/announcement.md.

Formatted message for a #general or #announcements channel. Must stay under 2,000 characters.

Announcement Structure

  1. Bold headline (1 line)

    • Lead with the strongest insight or most surprising atom
    • Use **bold** markdown for the opening line
    • Keep it punchy: 8-15 words max
  2. Body (2-3 short paragraphs)

    • Expand on the headline with context from 2-3 atoms
    • Short paragraphs (2-3 sentences each)
    • Use line breaks between paragraphs for readability
    • Contractions and casual language throughout
  3. Bullet point takeaways (3-5 items)

    • Pull the most actionable or surprising atoms
    • Each bullet is one clear thought
    • Use emoji bullets where natural (not forced)
  4. Reaction prompt (final line)

    • Drive engagement through reactions: "React with :fire: if you've experienced this"
    • Or a direct question: "Drop your take below -- what's YOUR experience with this?"
    • Never end without a clear engagement hook

Announcement Rules

  • Total length under 2,000 characters (hard Discord limit)
  • No walls of text -- Discord users skim aggressively
  • At least one reaction prompt OR direct question
  • Bold the most important phrase in each paragraph

Output 2: Discussion Thread Prompt

Write to discord/thread-prompt.md.

Message designed to start a thread. Opens conversation, not delivers a lecture.

Thread Prompt Structure

  1. Opening hook (1-2 sentences)

    • Use a contrarian take, surprising stat, or provocative question from the atoms
    • Frame as your own observation or question, not a teaching moment
    • "Okay so ngl, I just learned something that kinda broke my brain..."
  2. Context (2-3 sentences)

    • Provide just enough background for people to form an opinion
    • Don't explain everything -- leave gaps that invite people to fill in
  3. Specific invitation (1-2 sentences)

    • NOT "What do you think?" (too generic, gets ignored)
    • Instead: "Drop your take below -- have y'all run into this?"
    • Or: "Genuinely curious -- does this match your experience or am I way off?"
    • Frame it so members share personal experience, not just agreement

Thread Prompt Rules

  • Under 1,000 characters (shorter = more replies)
  • Must contain at least one direct question
  • Designed for ongoing conversation, not one-and-done reactions
  • Leave room for disagreement -- don't present a settled conclusion

Output 3: Embed Message

Write to discord/embed.md.

Rich embed format for bot-posted or webhook content.

Embed Structure

  1. Title (256 chars max)

    • Bold insight or key finding from the strongest atom
    • Concise and curiosity-driving
  2. Description (under 4,096 chars)

    • Expanded context around the title insight
    • 2-3 short paragraphs with Discord markdown formatting
    • Include the "so what" -- why this matters to the community
  3. Color (hex code)

    • Match the content mood:
      • #FF6B6B -- urgent, warning, contrarian
      • #4ECDC4 -- tips, how-to, educational
      • #FFE66D -- insight, discovery, new finding
      • #95E1D3 -- community, discussion, collaborative
      • #A8E6CF -- success, case study, positive result
  4. Fields (3-5 key takeaways)

    • Each field has a name (bold label) and value (brief explanation)
    • One atom per field
    • Keep field values under 100 characters for clean formatting
    • Use inline: true for side-by-side fields where appropriate
  5. Footer

    • Source attribution: "Source: [original content title or URL]"
    • Timestamp if relevant

Embed Format Template

**Embed Title:** [insight or finding]
**Color:** #[hex]

**Description:**
[2-3 paragraphs of context]

**Fields:**
- **[Takeaway 1 Label]:** [brief value]
- **[Takeaway 2 Label]:** [brief value]
- **[Takeaway 3 Label]:** [brief value]

**Footer:** Source: [attribution]

Tone Rules

Do Do NOT
Use "y'all", "ngl", "tbh", contractions Use formal language or corporate speak
Include emoji naturally (not excessively) Force emoji into every sentence
Write like a peer sharing something cool Write like a brand broadcasting content
Ask specific questions that invite replies Use generic "Thoughts?" or "Agree?"
Use Discord markdown (bold, code blocks) Write plain unformatted text walls
Reference community inside jokes if known Assume knowledge of the community culture
Keep paragraphs short (2-3 sentences max) Write essay-length paragraphs
Use reaction prompts for quick engagement Ignore engagement hooks entirely

Output Format

# Discord Announcement: [Topic]

[Full message text]

---
**Channel suggestion:** #[recommended channel type]
**Best posting time:** Weekdays 3-8 PM EST
**Engagement strategy:** [reaction prompt, thread follow-up plan]
**Character count:** [count]/2000

Brief Mode

If --brief is active, produce only:

  • 1 announcement post (most versatile format)
  • Skip thread prompt and embed

Error Handling

Condition Action
Fewer than 3 atoms Write shorter announcement (under 1,000 chars); skip thread and embed
No contrarian or question atoms Use insight + howto atoms; frame announcement as a tip share
brief_mode is true Generate announcement only; skip thread prompt and embed
Content too formal for Discord tone Rewrite with casual language, contractions, and peer framing
Promotional content detected Reframe as community value -- "found this useful, thought y'all might too"
基于内容原子生成Facebook文本帖、投票及故事脚本。优化保存与私信分享,强调社区互动与结尾提问。支持--brief和--images参数,遵循平台算法与80/20价值推广比例规则。
facebook facebook post facebook poll facebook story repurpose for facebook
skills/repurpose-facebook/SKILL.md
npx skills add AgriciDaniel/claude-repurpose --skill repurpose-facebook -g -y
SKILL.md
Frontmatter
{
    "name": "repurpose-facebook",
    "license": "MIT",
    "metadata": {
        "author": "AgriciDaniel",
        "version": "1.0.0",
        "category": "content"
    },
    "description": "Generates Facebook content from content atoms: community-focused text posts, polls with up to 10 options, and story scripts. Optimizes for saves, DM shares, and question-ending formats that drive comments. Sub-skill of the Content Repurposing Engine. Use when user says \"facebook\", \"facebook post\", \"facebook poll\", \"facebook story\", or \"repurpose for facebook\".\n",
    "argument-hint": "[url-or-atoms]",
    "user-invokable": true
}

Facebook Content Generator

Generate text post, poll, and story script from content atoms.

Inputs

You receive from the orchestrator:

  • Content atoms (typed and impact-rated)
  • Main argument, target audience, primary topic
  • Brand voice profile (5-dimension scores or override flag)
  • Flags: --brief (1 post only), --images (generate image prompts)

References

Load before generating:

  • references/platform-specs.md -- post limits, image specs, algorithm weights
  • references/hook-formulas.md -- question hooks, curiosity gap, warning-style
  • references/voice-adaptation.md -- Facebook tone rules (warm, community-focused, question-ending)

Platform Rules

Spec Value
Post length No strict limit; optimal 40-80 chars for highest engagement
Images 1080x1350 (4:5) best for feed
Video Up to 240 min; all video auto-classified as Reels
Story 1080x1920 (9:16), 15-second segments
Algorithm Saves + DM shares most powerful signals
Feed composition 50% from non-followed accounts (discovery opportunity)
Content mix 80% value / 20% promotional (strict)
Poll options Up to 10
Best time Tuesday 9AM-12PM

Output 1: Text Post

Write to facebook/post.md.

Post Strategy

Facebook rewards community-building signals. Every post should feel like the start of a conversation, not a broadcast.

Post Structure

  1. Hook (first 1-2 lines)

    • Short, attention-grabbing opener
    • 40-80 characters is the sweet spot for pure engagement
    • For value-driven content, longer posts work if the hook earns the read
    • Use question hooks or curiosity gaps from hook-formulas.md
  2. Value body (for longer posts)

    • Short paragraphs, 1-2 sentences each
    • Conversational tone with warmth and inclusivity
    • Draw from 2-3 atoms: insights, stats, or how-to steps
    • Use emoji sparingly as visual markers (2-4 per post)
  3. Closing question

    • Every post MUST end with a question
    • Question-ending posts get 2x comments on Facebook
    • Ask for personal experience, opinions, or stories
    • Be specific: "What was YOUR biggest win this week?" not "Thoughts?"

Content Mix Rule

Ensure the post follows the 80/20 rule:

  • 80% pure value (education, entertainment, inspiration, community)
  • 20% promotional (only if explicitly needed)
  • When in doubt, lean 100% value. Facebook penalizes promotional content.

Save + Share Optimization

Saves and DM shares are the most powerful algorithm signals. Create content worth saving:

  • Frameworks and checklists
  • Surprising data points
  • Relatable observations
  • Actionable tips that apply immediately

Output 2: Poll

Write to facebook/poll.md.

Facebook polls support up to 10 options, making them more flexible than other platforms.

Spec Constraint
Options 2-10 (use 4-6 for best balance)
Image/GIF Strongly recommended (polls with images outperform text-only)
Tone Conversational, community question

Poll Structure

  1. Context (1-2 sentences)

    • Frame the poll question with a brief setup
    • Connect it to a relatable experience or the content's main theme
  2. Question

    • Conversational and specific
    • Derived from the content's key decision point, debate, or preference
    • Frame as a community question: "For our community..." or "I'm curious..."
  3. Options (4-6 recommended)

    • Each represents a genuine position or choice
    • Include one playful or unexpected option to boost engagement
    • Order from most expected to most surprising
  4. Image/GIF suggestion

    • Recommend adding a relevant image or GIF to boost visibility
    • Describe the visual concept for /banana or manual creation

Output 3: Story Script

Write to facebook/story.md.

Stories are ephemeral (24h) and should feel casual, in-the-moment, and interactive.

Story Structure (3-5 Frames)

Frame Duration Content Interactive Element
Frame 1 5-10s Hook question or bold statement Poll sticker or Question sticker
Frame 2 5-10s Key insight from content (1 atom) None (let them read)
Frame 3 5-10s Supporting point or stat Emoji slider or Quiz sticker
Frame 4 5-10s Actionable takeaway None
Frame 5 5-10s CTA: "See full post" or engagement prompt Link sticker (if applicable)

Story Rules

  • Dimensions: 1080x1920 (9:16) for all frames
  • 3-5 frames optimal (respect attention spans)
  • Ephemeral feel: casual, raw, less polished than feed posts
  • Use interactive stickers (polls, questions, emoji sliders) on at least 2 frames
  • Text should be large, centered, and readable at a glance
  • Each frame conveys one idea in under 10 seconds

Story Visual Direction

For each frame, specify:

  • Background (solid color, gradient, photo, or video still)
  • Text overlay (large, bold, 5-10 words max)
  • Sticker type and placement
  • Transition suggestion (if any)

Image Prompts

If --images flag is set, suggest:

  • Post image: 4:5 (1080x1350) concept for the text post
  • Poll image: visual concept to accompany the poll
  • Story frames: 9:16 (1080x1920) background concepts
  • Include /banana prompt descriptions

Output Format

# Facebook Post: [Topic]

[Full post text]

---
**Posting notes:** [best time, content mix compliance, engagement strategy]

Brief Mode

If --brief is active, produce only:

  • 1 text post (highest-impact atoms, question-ending)
  • Skip poll and story
基于内容原子生成Instagram轮播图脚本、优化标题及Reel脚本,专注提升完播与互动。支持指定格式输出,结合平台算法规则(如前125字符关键性)和视觉规范,适配品牌语调,实现内容高效复用。
instagram IG post instagram carousel reel script instagram caption repurpose for instagram
skills/repurpose-instagram/SKILL.md
npx skills add AgriciDaniel/claude-repurpose --skill repurpose-instagram -g -y
SKILL.md
Frontmatter
{
    "name": "repurpose-instagram",
    "license": "MIT",
    "metadata": {
        "author": "AgriciDaniel",
        "version": "1.0.0",
        "category": "content"
    },
    "description": "Generates Instagram content from content atoms: carousel slide scripts (7-10 slides), captions optimized for the 125-character fold, and reel scripts with hook-first structure. Optimizes for watch time, saves, and shares. Sub-skill of the Content Repurposing Engine. Use when user says \"instagram\", \"IG post\", \"instagram carousel\", \"reel script\", \"instagram caption\", or \"repurpose for instagram\".\n",
    "argument-hint": "[url-or-atoms]",
    "user-invokable": true
}

Instagram Content Generator

Generate carousel script, caption, and reel script from content atoms.

Inputs

You receive from the orchestrator:

  • Content atoms (typed and impact-rated)
  • Main argument, target audience, primary topic
  • Brand voice profile (5-dimension scores or override flag)
  • Flags: --brief (caption only), --images (generate image prompts)

References

Load before generating:

  • references/platform-specs.md -- carousel specs, reel dimensions, algorithm weights
  • references/hook-formulas.md -- first-slide hooks, caption openers, reel hooks
  • references/voice-adaptation.md -- Instagram tone rules (relaxed, emoji-rich, visual-first)

Platform Rules

Spec Value
Caption limit 2,200 characters (125 visible before "more")
Carousel slides 7-10 optimal, up to 20 max
Carousel dimensions 1080x1350 (4:5)
Mixed media carousel 2.33% engagement vs 1.80% image-only
Reel dimensions 1080x1920 (9:16)
Reel sweet spot 30-90 seconds
Algorithm priority Watch time #1, then sends/shares, then saves
Hashtags 3-5 niche (over-tagging reduces reach)
Best time Mon/Wed/Fri 11AM-1PM

Output 1: Carousel Script (7-10 Slides)

Write to instagram/carousel.md.

Slide-by-Slide Structure

Slide Purpose Content
Slide 1 Stop the scroll Hook headline (5-8 words), visual pattern interrupt, "Swipe left" prompt
Slides 2-3 Context + problem Set up why this matters, relatable pain point
Slides 4-6 Core value One insight per slide, drawn from highest-impact atoms
Slides 7-8 Proof + examples Stats, case studies, or before/after from atoms
Slide 9 Summary Key takeaway in one powerful sentence
Final slide Triple CTA Save + Follow + Share prompts

Carousel Rules

  • Dimensions: 1080x1350 (4:5 portrait) for all slides
  • One idea per slide -- never stack multiple concepts
  • Mix text-heavy slides with visual/graphic slides for rhythm
  • Consider mixed media (image + video slides): 2.33% vs 1.80% engagement
  • Text must be readable at mobile size (large, bold headlines)
  • Consistent visual style across all slides (colors, fonts, layout)
  • Slide 1 determines whether anyone swipes -- invest the most effort here

Visual Direction

For each slide, specify:

  • Headline text (5-10 words, bold)
  • Supporting text (1-2 short lines, if any)
  • Background treatment (color, gradient, image suggestion)
  • Layout (centered, left-aligned, split)
  • Any icon, illustration, or photo direction

"Swipe Left" Prompt

Include a directional cue on slide 1. Only 5% of creators use this, but it boosts engagement by ~10%. Options:

  • Arrow graphic pointing right
  • Text: "Swipe for the full breakdown"
  • Visual element that extends past the right edge (implies continuation)

Output 2: Caption

Write to instagram/caption.md.

Caption Structure

  1. First 125 characters (visible before "more" fold)

    • This is the hook. Front-load the most compelling statement.
    • Use a curiosity gap, bold claim, or question
    • Must work as a standalone micro-copy even if nobody taps "more"
  2. Body (up to 2,200 chars total)

    • Expand on the carousel's theme with personal context or story
    • Use line breaks and emoji bullets for scannability
    • Weave in 1-2 atoms that complement (not duplicate) the carousel content
    • Conversational tone with contractions and natural language
  3. Engagement question

    • End with a specific question that invites comments
    • Questions that ask for personal experience outperform yes/no questions
  4. Hashtags (3-5)

    • Place at the very end after a line break
    • Mix 1-2 broad niche tags with 2-3 specific tags
    • Never use 30 hashtags (reduces reach in 2026)

Caption Voice

  • Relaxed and creative, not corporate
  • Emoji used as visual markers and personality (3-8 per caption)
  • Storytelling tone: conversational, flowing, first-person

Output 3: Reel Script

Write to instagram/reel-script.md.

Reel Structure (30-90 seconds)

Timestamp Section Content
0-3s Hook Stop-scrolling statement or question. This determines everything.
3-10s Context Quick setup: "Here's what most people get wrong about [topic]..."
10-40s Value Core insight from 2-3 atoms. Break into 3-5 second segments with jump cuts.
40-55s Proof Stat, result, or example that validates the insight
55-70s CTA Tell viewers what to do: save, follow, comment, check link in bio
70-90s Bonus (optional) Extra tip or teaser for next reel

Reel Rules

  • Dimensions: 1080x1920 (9:16 vertical)
  • Sweet spot: 30-90 seconds (shorter = better for discoverability)
  • Jump cuts every 3-5 seconds to maintain attention
  • Hook in first 3 seconds is non-negotiable (determines watch-through rate)
  • Watch time is the #1 algorithm signal -- every second must earn the next

Text Overlay Suggestions

For each section of the reel, suggest:

  • On-screen text (key phrase or keyword, 3-6 words)
  • Text position (top, center, bottom -- avoid bottom 20% for UI overlap)
  • Animation style (pop-in, typewriter, static)

Audio Direction

  • Suggest whether to use: voiceover, trending audio, or original audio
  • If voiceover: the script IS the voiceover (write it conversationally)
  • Note: trending audio boosts discoverability but must match content mood

Image Prompts

If --images flag is set, suggest:

  • Carousel slides: 4:5 (1080x1350) visual concepts for each slide
  • Reel cover: 9:16 (1080x1920) thumbnail concept
  • Include /banana prompt descriptions for key slides

Output Format

Each file should include the content plus production notes:

# Instagram Carousel: [Topic]

## Slide 1 -- Hook
**Headline:** [text]
**Visual:** [direction]

## Slide 2 -- [Label]
...

---
**Posting notes:** [best time, hashtag guidance, engagement strategy]

Brief Mode

If --brief is active, produce only:

  • 1 caption (standalone, not tied to a carousel)
  • Skip carousel and reel script
基于内容原子生成LinkedIn文本帖、PDF轮播脚本及策略性投票。遵循平台算法规则(如前60-90分钟关键期、外链处理),优化钩子与互动,旨在提升保存率和高质量评论。
linkedin linkedin post linkedin carousel linkedin poll repurpose for linkedin
skills/repurpose-linkedin/SKILL.md
npx skills add AgriciDaniel/claude-repurpose --skill repurpose-linkedin -g -y
SKILL.md
Frontmatter
{
    "name": "repurpose-linkedin",
    "license": "MIT",
    "metadata": {
        "author": "AgriciDaniel",
        "version": "1.0.0",
        "category": "content"
    },
    "description": "Generates LinkedIn content from content atoms: text posts with hook-first formatting, PDF carousel slide scripts (10-12 slides), and strategic polls. Optimizes for saves, meaningful comments, and the critical first 60-90 minute window. Sub-skill of the Content Repurposing Engine. Use when user says \"linkedin\", \"linkedin post\", \"linkedin carousel\", \"linkedin poll\", or \"repurpose for linkedin\".\n",
    "argument-hint": "[url-or-atoms]",
    "user-invokable": true
}

LinkedIn Content Generator

Generate text post, carousel slide script, and poll from content atoms.

Inputs

You receive from the orchestrator:

  • Content atoms (typed and impact-rated)
  • Main argument, target audience, primary topic
  • Brand voice profile (5-dimension scores or override flag)
  • Flags: --brief (1 post only), --images (generate image prompts)

References

Load before generating:

  • references/platform-specs.md -- character limits, carousel specs, algorithm weights
  • references/hook-formulas.md -- curiosity gap, contrarian, data-driven, question hooks
  • references/voice-adaptation.md -- LinkedIn tone rules (professional, opinion-led, no bait)
  • references/poll-strategy.md -- poll derivation, option constraints, follow-up strategy

Platform Rules

Spec Value
Post character limit 3,000 characters
First visible line 60-90 characters before "see more" fold
PDF carousel Up to 300 pages, 100MB; 6.60% engagement (highest format)
Images 1080x1080 (1:1) or 1080x1350 (4:5)
Algorithm Saves = 5x a like; only comments >10 words count
External links 40% less reach -- always place in FIRST COMMENT
Hashtags 3-5 optimal
Poll engagement 4.4-8.9% (highest engagement format after carousels)
Best time Tuesday-Thursday 8-10AM
Critical window First 60-90 minutes determine distribution

Output 1: Text Post

Write to linkedin/post.md.

Post Structure

  1. Hook (first 60-90 characters)

    • This is the only text visible before the "see more" fold on mobile
    • Use a curiosity gap, bold claim, or data-driven hook from hook-formulas.md
    • Must compel the click to expand
    • No hashtags, no emoji, no fluff in the hook line
  2. Body (short single-line paragraphs)

    • One idea per paragraph, 1-2 sentences each
    • Use strategic line breaks and whitespace for scannability
    • Weave in 2-3 atoms: combine insights, stats, and actionable takeaways
    • Include at least one data point or specific result
  3. Key insight with data

    • Dedicate 1-2 paragraphs to the strongest stat or case study atom
    • Use precise numbers (6.60%, not "around 7%")
  4. Engagement question

    • End with a specific question that invites thoughtful responses (>10 words)
    • Avoid generic "Agree?" or "Thoughts?" -- ask something that requires personal experience
  5. Hashtags (3-5)

    • Place at the very end, after the engagement question
    • Mix broad (#ContentMarketing) with niche (#ContentRepurposing)

Save-Worthy Content

Saves = 5x a like on LinkedIn. Optimize for save-worthy formats:

  • Checklists and frameworks
  • Data-backed insights
  • Step-by-step processes
  • Counterintuitive findings

External Link Handling

Links in the post body reduce reach by 40%. Always:

  1. Write "Link in comments" or a specific note in the post body
  2. Include the URL separately, marked as "FIRST COMMENT" in the output
  3. The user posts the link as their first comment immediately after publishing

Output 2: PDF Carousel Slide Script

Write to linkedin/carousel.md.

Generate a 10-12 slide script. Each slide includes title, bullet points, and visual direction.

Slide Structure

Slide Content Visual Direction
Slide 1 Bold title (5-8 words) + hook subtitle Pattern interrupt: bold color, high contrast, "Swipe ->" cue
Slides 2-10 One insight per slide: title + 2-3 bullet points Clean typography, generous whitespace, 28px+ title text
Slide 11 Summary/key takeaway Recap the 3 most important points
Final slide CTA + "Save this for later" Follow prompt, profile tag, save reminder

Carousel Rules

  • Dimensions: 1080x1350 (4:5 portrait) for maximum feed presence
  • Each slide must be readable in under 5 seconds
  • Title text: 28px or larger equivalent (bold, high contrast)
  • Body text: 2-3 bullet points maximum per slide (not paragraphs)
  • One core idea per slide -- never combine two concepts
  • Progress indicator optional (e.g., "3/10" in corner)
  • Final slide CTA: combine "Save", "Share", and "Follow" prompts

Visual Direction Notes

For each slide, include:

  • Suggested background treatment (solid, gradient, or subtle pattern)
  • Text alignment and hierarchy
  • Any icon or visual element suggestions
  • Color guidance (consistent throughout the deck)

Output 3: Poll

Write to linkedin/poll.md.

Derive one poll from the content's key decision point.

Spec Constraint
Options 2-4
Chars per option 30 maximum
Duration Suggest 1 week (7 days)
Engagement rate 4.4-8.9% expected

Poll structure:

  • Context paragraph: 2-3 sentences framing why this question matters (hook + stakes)
  • Question: specific, relevant to the target audience's daily decisions
  • Options: represent real positions the audience holds; include one contrarian option
  • Follow-up note: suggest sharing results as a future post (closes the content loop)

Image Prompts

If --images flag is set, suggest:

  • Post image: 1:1 (1080x1080) or 4:5 (1080x1350) for the text post
  • Carousel cover: 4:5 (1080x1350) for slide 1
  • Include /banana prompt descriptions (subject, context, style, composition)

Output Format

Each output file should use this structure:

# LinkedIn Post: [Topic]

[Full post text with line breaks preserved]

---
**First comment:** [URL or additional context to post as first comment]
**Hashtags:** [included in post]
**Best posting time:** Tuesday-Thursday 8-10AM
**Optimization notes:** [save triggers, engagement hooks]

Brief Mode

If --brief is active, produce only:

  • 1 text post (use highest-impact atoms)
  • Skip carousel and poll
将内容原子转化为Medium长文(1500-3000字),包含SEO优化标题、副标题、标签及发布建议。支持简短模式,遵循平台规范以优化Google索引和阅读体验。
medium medium article medium post medium story repurpose for medium
skills/repurpose-medium/SKILL.md
npx skills add AgriciDaniel/claude-repurpose --skill repurpose-medium -g -y
SKILL.md
Frontmatter
{
    "name": "repurpose-medium",
    "license": "MIT",
    "metadata": {
        "author": "AgriciDaniel",
        "version": "1.0.0",
        "category": "content"
    },
    "description": "Generates Medium publication content from content atoms: long-form articles (1500-3000 words) with narrative arc, SEO-optimized titles and subtitles, tag and publication targeting, and canonical crosspost handling. Optimizes for Google indexing, read time, and publication submission. Sub-skill of the Content Repurposing Engine. Use when user says \"medium\", \"medium article\", \"medium post\", \"medium story\", or \"repurpose for medium\".\n",
    "argument-hint": "[url-or-atoms]",
    "user-invokable": true
}

Medium Article Generator

Produce a long-form article, tag and publication suggestions, and crosspost note from the content atoms provided by the orchestrator.

Inputs

Received from the parent agent (repurpose-broadcast):

Input Description
atoms Full list of content atoms with types and impact ratings
main_argument One-sentence thesis of the source content
target_audience Who benefits from this content
primary_topic Category or niche
voice_profile Detected or overridden brand voice
brief_mode If true, produce title + subtitle + opening only (500 words)

References

Load before generating:

  • references/platform-specs.md -- Medium specs, article length targets, SEO weight
  • references/hook-formulas.md -- title formulas, opening hooks, narrative structures
  • references/voice-adaptation.md -- Medium tone rules (authoritative, conversational, storytelling)
  • references/engagement-benchmarks.md -- read time targets, clap benchmarks

Platform Rules

Spec Value
Article length 1,500-3,000 words optimal (7-12 min read time)
Title 60 characters max (SEO-optimized, keyword-rich)
Subtitle (kicker) 140 characters max (expands on title, adds context)
Tags Exactly 5 (first tag = primary topic)
Images Inline, any aspect ratio, alt text REQUIRED
SEO value HIGH -- Google indexes Medium articles, often ranks in top results
Paywall Optional (recommend based on content depth and value)
Publications Curated collections that boost distribution significantly
Reading time Displayed prominently, affects click-through rate
Best posting Tuesday-Thursday 8-10 AM
Formatting Full markdown, pull quotes, code blocks, headers, images

Core Principle

Medium is a PUBLICATION platform, not social media. Articles should feel like magazine pieces -- structured, edited, with a narrative arc. Google ranks Medium articles highly, so SEO matters in titles, headers, and first paragraphs. Write for depth, personality, and lasting value. Information dumps get skimmed; narrative gets read.

Output 1: Article

File: medium/article.md

Length: 1,500-3,000 words (7-12 min read time).

Article Structure

  1. Title (60 chars max)

    • Keyword-rich for Google indexing
    • Curiosity-driven or value-driven (never clickbait)
    • Formulas:
      • "How [Specific Action] [Achieved Specific Result]"
      • "The [Adjective] Truth About [Topic] Nobody Talks About"
      • "[Number] Lessons From [Experience] That Changed How I [Outcome]"
      • "Why [Common Belief] Is Wrong (And What to Do Instead)"
    • Test: would you click this in Google search results?
  2. Subtitle / Kicker (140 chars max)

    • Expands on the title -- adds context the title couldn't fit
    • Should answer "Why should I read this?" in one line
    • Include a secondary keyword if natural
    • Example title: "Why Most Content Strategies Fail"
    • Example subtitle: "And the simple framework that turned my 200-view posts into 20K-view articles"
  3. Opening hook (2-3 sentences)

    • Set the stakes immediately -- why does this matter RIGHT NOW?
    • Options: start with a story, a surprising stat, or a bold claim
    • The first 2 sentences determine whether readers continue
    • Never open with a definition ("Content marketing is...")
  4. Section 1: Context / Problem (300-500 words)

    • Why this topic matters now
    • Frame the gap: what most people get wrong or miss
    • Use insight and contrarian atoms to build tension
    • Include at least one specific example or data point
    • Header: descriptive H2, keyword-rich
  5. Section 2: Core Insight (400-700 words)

    • The main argument with supporting evidence
    • This is the centerpiece -- spend the most words here
    • Use the highest-impact atoms
    • Include a pull quote (the single most quotable line, formatted as blockquote)
    • Header: H2 that reveals the insight
  6. Section 3: Supporting Evidence (300-500 words)

    • Stats, case studies, examples drawn from atoms
    • If stat or casestudy atoms exist, expand them with context
    • Use subheadings (H3) if covering multiple supporting points
    • Specific numbers always beat vague claims
  7. Section 4: Practical Application (300-500 words)

    • Actionable steps the reader can take today
    • Draw from howto and actionable atoms
    • Numbered steps or bulleted checklist format
    • Each step should be specific and measurable
    • Header: action-oriented H2 ("How to Apply This Today")
  8. Closing (100-200 words)

    • Forward-looking statement or call-to-action
    • Do NOT summarize the whole article -- trust the reader
    • End with a thought-provoking line or a question
    • Optional: invite claps, follows, or responses
  9. Pull quotes (2-3 throughout)

    • Formatted as blockquotes (> quote text)
    • Place one every 500-800 words for visual rhythm
    • Choose lines that work as standalone insights
    • These also serve as highlight-worthy text for Medium's highlight feature

SEO Optimization

  • Title: primary keyword in first 3 words when possible
  • First paragraph: include primary keyword naturally within first 100 words
  • Headers (H2/H3): include secondary keywords
  • Alt text: describe every image for accessibility and SEO
  • Internal links: reference other Medium articles if relevant
  • Meta description: subtitle serves as meta description on Google

Formatting Rules

  • Short paragraphs (2-4 sentences max)
  • Generous whitespace between sections
  • Bold key phrases for scanners (2-3 per section)
  • Use H2 for main sections, H3 for subsections
  • Code blocks for any technical content
  • Bulleted/numbered lists for actionable content
  • Pull quotes for visual breaks and emphasis

Output 2: Tags + Publication Suggestions

File: medium/tags-publications.md

Tags (exactly 5)

Position Strategy
Tag 1 (primary) Broadest relevant topic (highest search volume)
Tag 2 Specific niche within the topic
Tag 3 Audience-related tag (e.g., "Startup", "Self Improvement")
Tag 4 Format or methodology tag (e.g., "How To", "Case Study")
Tag 5 Trending or timely tag if applicable

The first tag carries the most weight for Medium's distribution algorithm. Choose the broadest relevant topic with the highest search volume.

Publication Suggestions (2-3)

For each publication, provide:

Field Description
Publication name Official name as it appears on Medium
Follower tier Small (<10K), Medium (10K-100K), Large (100K+)
Submission note Key guidelines or requirements for submission
Relevance Why this content fits the publication's focus (1 sentence)

Publication selection criteria:

  1. Topic alignment -- the publication actively covers this subject
  2. Size sweet spot -- medium publications (10K-100K) accept more submissions
  3. Acceptance rate -- larger publications are more selective; suggest a mix
  4. Audience overlap -- the publication's readership matches the target audience

Common publications by content type:

Content Topic Likely Publications
Technology Better Programming, Towards Data Science, The Startup
Business Better Marketing, The Startup, Entrepreneur's Handbook
Productivity Better Humans, Personal Growth, Mind Cafe
Writing/Content The Writing Cooperative, Better Marketing
Design UX Collective, Bootcamp, UX Planet
AI/ML Towards Data Science, Towards AI, AI in Plain English

Output 3: Crosspost Note

File: medium/crosspost-note.md

Handle canonical URL attribution to protect SEO.

If content was originally published elsewhere:

  • Include canonical URL import note: "Use Medium's Import tool (medium.com/p/import) to set the canonical URL to [original source]"
  • Footer text: "Originally published at [source name + URL]"
  • Note: Medium's import tool automatically sets rel=canonical to avoid duplicate content penalties

If this is original content:

  • Note: "First published on Medium"
  • Suggest the user set up a custom domain or publication for branding
  • Optional: suggest crossposting TO their blog later with canonical pointing back to Medium

Crosspost Format

**Canonical source:** [Original URL or "Medium (original)"]
**Import method:** [Medium Import tool / Manual paste]
**Footer attribution:** [Text to include at bottom of article]
**SEO note:** [Canonical URL guidance]

Tone Rules

Do Do NOT
Write in first person ("I discovered", "In my experience") Use third person or passive voice
Tell stories and share genuine insights Write dry, encyclopedia-style content
Use conversational language with personality Use academic jargon or corporate speak
Include specific numbers and evidence Make vague, unsubstantiated claims
Build a narrative arc (tension, insight, resolution) Dump information in list format only
Use pull quotes for visual rhythm Write unbroken walls of text
Acknowledge nuance and uncertainty Speak in absolutes without evidence
Write headlines that work in Google search Write clickbait or misleading titles

Output Format

# [Article Title]
## [Subtitle / Kicker]

[Full article text with headers, pull quotes, and formatting]

---
**Reading time:** ~[X] min
**Tags:** [tag1], [tag2], [tag3], [tag4], [tag5]
**Suggested publications:** [publication1], [publication2]
**Paywall recommendation:** [Yes/No + reasoning]
**Best posting time:** Tuesday-Thursday 8-10 AM
**SEO notes:** [primary keyword, secondary keywords, title optimization]

Brief Mode

If --brief is active, produce only:

  • Title + subtitle
  • Opening 3 paragraphs (~500 words)
  • 5 tags
  • Skip full article, publication suggestions, and crosspost note

Error Handling

Condition Action
Fewer than 5 atoms Write shorter article (800-1,200 words); reduce to 3 sections
No stat or casestudy atoms Use narrative-driven structure; lean on insight and contrarian atoms
brief_mode is true Generate title + subtitle + opening only (500 words) + tags
Content too short for full article Frame as a "thought piece" (800 words); note shorter read time
Promotional content detected Reframe as an insight story; strip product mentions, focus on lessons learned
Voice profile unclear Default to conversational-authoritative; note in output header
从内容原子生成Newsletter摘要、3个邮件主题行变体及3封 drip 序列。提供高打开率的主题公式、预览文本及个性化CTA,支持简报模式,适配品牌语调。
newsletter email sequence drip sequence subject lines repurpose for email
skills/repurpose-newsletter/SKILL.md
npx skills add AgriciDaniel/claude-repurpose --skill repurpose-newsletter -g -y
SKILL.md
Frontmatter
{
    "name": "repurpose-newsletter",
    "license": "MIT",
    "metadata": {
        "author": "AgriciDaniel",
        "version": "1.0.0",
        "category": "content"
    },
    "description": "Generates newsletter excerpts, subject line variants, and 3-email drip sequences from atomized content. Produces inbox-optimized copy with open-rate-tested subject formulas, preview text, personal tone, and single-CTA discipline per email. Sub-skill of the Content Repurposing Engine. Use when user says \"newsletter\", \"email sequence\", \"drip sequence\", \"subject lines\", or \"repurpose for email\".\n",
    "argument-hint": "[url-or-atoms]",
    "user-invokable": true
}

Newsletter and Email Sequence Generator

Produce a newsletter excerpt, 3 subject line options, and a 3-email drip sequence from the content atoms provided by the orchestrator.

Inputs

Received from the parent agent (repurpose-longform):

Input Description
atoms Full list of content atoms with types and impact ratings
main_argument One-sentence thesis of the source content
target_audience Who benefits from this content
primary_topic Category or niche
voice_profile Detected or overridden brand voice
brief_mode If true, produce excerpt + 1 subject line only

References

Load these before generating any output:

  • references/voice-adaptation.md -- tone rules for email/newsletter
  • references/hook-formulas.md -- subject line and opener formulas
  • references/engagement-benchmarks.md -- open rate and CTR targets

Output 1: Newsletter Excerpt

File: newsletter/newsletter.md

Length: 150-200 words.

Structure:

  1. Opening line -- Lead with the single most valuable insight from the atoms. Do NOT open with "Hi [name]" or "In this week's issue." Start with the insight.
  2. Body -- 2-3 short paragraphs (2-4 sentences each). Bold key phrases for scanners. Use contractions and first-person where the voice allows.
  3. Exclusive feel -- Frame the content as something the reader gets before everyone else: "Before I shared this anywhere else..." or "This one's just for the list."
  4. Single CTA -- One clear call-to-action at the end. Link text should describe the outcome, not the action ("See the full breakdown" not "Click here").

Rules:

  • Short paragraphs (max 3 sentences)
  • No walls of text
  • Bold 2-3 key phrases
  • Exactly one CTA
  • Personal, not corporate

Output 2: Subject Lines

File: newsletter/subject-lines.md

Generate exactly 3 subject line variants, each using a different formula.

Variant 1: Number-Driven (+57% open rate lift)

Formula: [Number] [insights/lessons/mistakes] from [topic] that [changed/revealed/broke] [outcome]

Examples:

  • "5 insights from content repurposing that doubled my reach"
  • "3 mistakes in email marketing that cost me 2,000 subscribers"

Rules: 40-60 characters. Must contain a specific number. Outcome must be concrete.

Variant 2: Question Hook

Formula: Are you [making/missing/ignoring] this [topic] [mistake/opportunity/signal]?

Examples:

  • "Are you making this LinkedIn mistake?"
  • "Are you ignoring this SEO signal?"

Rules: 40-60 characters. Must be a yes/no question. Should trigger self-doubt.

Variant 3: Curiosity Gap

Formula: [Topic]: what most [audience] get wrong

Examples:

  • "Content repurposing: what most creators get wrong"
  • "Newsletter growth: what most marketers miss"

Rules: 40-60 characters. Must imply a knowledge gap. No clickbait -- the email must deliver.

Preview Text

For each subject line, generate matching preview text:

  • 40-90 characters
  • Complements the subject -- does NOT repeat it
  • Adds a second reason to open
  • Example subject: "5 insights that changed my content game"
  • Example preview: "Plus the one tool I wish I'd found sooner."

Output 3: Email Drip Sequence

File: newsletter/email-sequence.md

Generate a 3-email sequence. Each email has: subject line, preview text, body, and CTA.

Email 1 -- Day 0: Immediate Value

Goal: Deliver the best insight instantly. Build trust.

Element Spec
Subject Use Number-Driven formula
Tone "Here's what I learned" -- personal discovery
Body 200-300 words
Content Lead with the highest-impact atom. One supporting point.
CTA Soft -- "Reply and tell me if this matches your experience"

Structure:

  1. Hook (1 sentence -- the key insight)
  2. Context (2-3 sentences -- why this matters)
  3. The insight expanded (2-3 sentences)
  4. CTA (1 sentence -- reply or read more)

Email 2 -- Day 2: Deeper Dive

Goal: Expand context. Tell a story or share a case study.

Element Spec
Subject Use Question Hook formula
Tone "Let me show you what I mean" -- teacher mode
Body 300-500 words
Content Story, case study, or expanded framework from the atoms
CTA Medium -- "Here's the full breakdown" (link to original content)

Structure:

  1. Callback to Email 1 (1 sentence -- "Remember when I said...")
  2. Story or case study (3-4 paragraphs)
  3. Key lesson distilled (1-2 sentences)
  4. CTA (1 sentence -- link to original)

Email 3 -- Day 4: Action CTA

Goal: Drive a specific next step. Create gentle urgency.

Element Spec
Subject Use Curiosity Gap formula
Tone "Here's exactly what to do" -- coach mode
Body 200-400 words
Content Actionable steps derived from howto/insight atoms
CTA Strong -- specific action with urgency element

Structure:

  1. "If you've been following along..." (1 sentence)
  2. 3-5 concrete steps (bulleted, brief)
  3. Urgency element ("This week only" / "Before the algorithm shifts" / time-bound)
  4. CTA (1 sentence -- specific action)

Rules for All Emails

  • Short paragraphs: 1-3 sentences max per paragraph
  • One CTA per email: Never compete with yourself
  • Personal tone: Write like one person to one person. Use "I" and "you."
  • 200-500 words per email: Respect inbox time
  • No image-heavy layouts: Text-first for deliverability
  • P.S. line optional: Use for a secondary hook or human aside

Error Handling

Condition Action
Fewer than 3 atoms Generate excerpt + 1 email only; skip sequence
No quote or insight atoms Synthesize from tldr and howto atoms
brief_mode is true Generate excerpt + 1 subject line; skip sequence
Voice profile unclear Default to professional; note in output header
基于内容原子生成Pinterest标准图钉、创意脚本及板块建议。强调SEO优化,提供关键词标题、描述及图片指引,适配视觉搜索引擎特性,提升保存与点击率。
pinterest pinterest pin idea pin pinterest board repurpose for pinterest
skills/repurpose-pinterest/SKILL.md
npx skills add AgriciDaniel/claude-repurpose --skill repurpose-pinterest -g -y
SKILL.md
Frontmatter
{
    "name": "repurpose-pinterest",
    "license": "MIT",
    "metadata": {
        "author": "AgriciDaniel",
        "version": "1.0.0",
        "category": "content"
    },
    "description": "Generates Pinterest content from content atoms: standard pin concepts (3-5 pins) with keyword-rich descriptions, idea pin scripts (5-10 slides), and board suggestions. Optimizes for saves, clicks, and SEO — Pinterest is a visual search engine, not social media. Sub-skill of the Content Repurposing Engine. Use when user says \"pinterest\", \"pinterest pin\", \"idea pin\", \"pinterest board\", or \"repurpose for pinterest\".\n",
    "argument-hint": "[url-or-atoms]",
    "user-invokable": true
}

Pinterest Content Generator

Generate standard pins, idea pin script, and board suggestions from content atoms.

Inputs

Received from the parent agent (repurpose-visual):

Input Description
atoms Full list of content atoms with types and impact ratings
main_argument One-sentence thesis of the source content
target_audience Who benefits from this content
primary_topic Category or niche
voice_profile Detected or overridden brand voice
images_flag If true AND /banana available, generate images directly
brief_mode If true, produce 1 pin description only

References

Load before generating:

  • references/platform-specs.md -- pin dimensions, algorithm weights, posting times
  • references/hook-formulas.md -- keyword-first titles, curiosity gap descriptions
  • references/image-sourcing.md -- 3-tier image pipeline, prompt templates, platform dimensions

Platform Rules

Spec Value
Pin title 100 characters max
Pin description 500 characters max (keyword-first, SEO-rich)
Standard pin image 1000x1500 (2:3 tall format)
Square pin image 1080x1080 (1:1)
Idea pin slides 2-20 slides, 1080x1920 (9:16)
Algorithm Freshness + keyword relevance + saves + clicks
SEO value HIGH -- Google indexes pins in image search and web results
Hashtags 2-5 relevant tags
Best time Sat/Sun 8-11PM, weekdays 2-4PM

Core Principle

Pinterest is a visual SEARCH ENGINE, not social media. Keyword placement matters more than engagement bait. Every pin description should read like a mini SEO snippet. Users are planners and dreamers -- they search with intent to save, try, and buy.

Output 1: Standard Pins (3-5)

Write to pinterest/pins.md.

Generate 3-5 pin concepts. Each pin must include:

Pin Structure

  1. Title (100 characters max)

    • Keyword-first: lead with the search term users would type
    • Use "How to", "Best", "Ideas for", "X Ways to" formats
    • Specific and descriptive -- avoid vague or clever wordplay
    • Include the primary topic keyword in the first 40 characters
  2. Description (500 characters max)

    • First sentence: restate the value proposition with the primary keyword
    • Middle: 2-3 sentences expanding on what the user will learn or gain
    • End with a CTA: "Click to read the full guide" or "Save this for later"
    • Naturally weave in 3-5 related keywords (no keyword stuffing)
    • Write as a mini SEO snippet -- imagine it appearing in Google search results
  3. Image direction

    • Dimensions: 1000x1500 (2:3 tall portrait)
    • Text overlay: title or key phrase in bold, readable font (5-10 words)
    • Visual style: clean, aspirational, high-contrast
    • Color: bright or warm tones perform best on Pinterest
    • Include /banana prompt if --images flag is set
  4. Suggested board

    • Which board this pin belongs to (from Output 3 or existing boards)
    • Why this board is the right fit

Pin SEO Rules

Do Don't
Lead titles with primary keyword Use clickbait or vague titles
Write descriptions like SEO snippets Stuff keywords unnaturally
Include "how to", "best", "ideas" in titles Use hashtags as the only discovery mechanism
Add 2-5 relevant hashtags at the end Use more than 5 hashtags
Front-load the most important keyword Bury the topic in the middle of the description
Write for searchers with intent Write for casual scrollers

Output 2: Idea Pin Script (5-10 Slides)

Write to pinterest/idea-pin.md.

Slide-by-Slide Structure

Slide Purpose Content
Slide 1 Hook/Cover Bold title (5-8 words), eye-catching visual, "Keep swiping" cue
Slides 2-3 Problem/Context Why this matters, relatable pain point or aspiration
Slides 4-7 Core value One insight per slide from highest-impact atoms, actionable steps
Slide 8-9 Summary/Result Key takeaway, before/after, or transformation promise
Final slide CTA Follow prompt, save prompt, link to full content

Idea Pin Rules

  • Dimensions: 1080x1920 (9:16 vertical) for all slides
  • One idea per slide -- never stack multiple concepts
  • Text overlay on every slide: large, bold, readable at mobile size
  • Visual consistency: same color palette, font style, and layout across all slides
  • Cover slide determines whether anyone swipes -- invest the most effort here
  • Include a "step" or "number" indicator on instructional slides (Step 1, Step 2...)
  • Background should be clean and not compete with text overlay

Visual Direction

For each slide, specify:

  • Headline text (5-10 words, bold)
  • Supporting text (1-2 short lines, if any)
  • Background treatment (solid color, lifestyle photo, flat lay, gradient)
  • Text position (centered, top-third, bottom-third)
  • Color palette (consistent across all slides)

Output 3: Board Suggestions

Write to pinterest/boards.md.

Suggest 2-3 relevant boards to pin content to.

Board Structure

For each board:

  1. Board name

    • Keyword-rich and descriptive (e.g., "Healthy Meal Prep Ideas" not "Food")
    • 3-5 words, search-friendly
  2. Board description (up to 500 characters)

    • SEO-optimized: include related keywords naturally
    • Describe what a user will find on this board
    • Aspirational tone: frame as a collection of valuable resources
  3. Why it fits

    • Brief explanation of how this content aligns with the board's theme
    • Which pins from Output 1 belong here

Board Strategy

  • Boards act as keyword categories -- name them for search, not creativity
  • A well-named board helps ALL pins on it rank higher in Pinterest search
  • Suggest one broad board and one niche board minimum

Image Prompts

If --images flag is set, suggest:

  • Standard pins: 2:3 (1000x1500) visual concepts for each pin
  • Idea pin cover: 9:16 (1080x1920) cover slide concept
  • Include /banana prompt descriptions (subject, context, style, composition, text overlay)

Output Format

Each file should include the content plus production notes:

# Pinterest Pin: [Topic]

## Pin 1
**Title:** [keyword-first title, 100 chars max]
**Description:** [SEO-rich description, 500 chars max]
**Image:** [visual direction]
**Board:** [suggested board name]
**Hashtags:** [2-5 tags]

## Pin 2
...

---
**Posting notes:** [best time, SEO tips, board strategy]

Brief Mode

If --brief is active, produce only:

  • 1 pin description + image direction (highest-impact atom, keyword-optimized)
  • Skip idea pin and board suggestions

Error Handling

Condition Action
Fewer than 3 atoms Generate fewer pins to match; minimum 1 pin
Content not visual Focus on text-overlay pins with clean backgrounds
No clear keywords Analyze main_argument and primary_topic for search terms
--images but no /banana Save prompts to file; suggest Canva templates as alternative
Content is time-sensitive Note in posting notes that Pinterest favors evergreen content
Atoms lack actionable angle Reframe as "how to" or "ideas for" to match Pinterest search intent
基于内容原子生成Quora深度回答、Space帖子及问题建议。遵循权威原则,提供SEO优化、证据支持的长文,避免营销话术,旨在建立专业影响力并获取高赞。
quora quora answer quora space quora post repurpose for quora
skills/repurpose-quora/SKILL.md
npx skills add AgriciDaniel/claude-repurpose --skill repurpose-quora -g -y
SKILL.md
Frontmatter
{
    "name": "repurpose-quora",
    "license": "MIT",
    "metadata": {
        "author": "AgriciDaniel",
        "version": "1.0.0",
        "category": "content"
    },
    "description": "Generates Quora content from content atoms: a detailed answer to a relevant question, a Quora Space post for thought leadership, and question suggestions for authority building. Optimizes for expertise signals, SEO value, and upvote-worthy depth. Sub-skill of the Content Repurposing Engine. Use when user says \"quora\", \"quora answer\", \"quora space\", \"quora post\", or \"repurpose for quora\".\n",
    "argument-hint": "[url-or-atoms]",
    "user-invokable": true
}

Quora Content Generator

Produce a detailed answer, a Quora Space post, and question suggestions from the content atoms provided by the orchestrator.

Inputs

Received from the parent agent (repurpose-longform):

Input Description
atoms Full list of content atoms with types and impact ratings
main_argument One-sentence thesis of the source content
target_audience Who benefits from this content
primary_topic Category or niche
voice_profile Detected or overridden brand voice
brief_mode If true, produce answer only (skip Space post and questions)

References

Load before generating:

  • references/platform-specs.md -- Quora character limits, posting times, algorithm weights
  • references/voice-adaptation.md -- Quora tone rules (expert, evidence-based)
  • references/hook-formulas.md -- opening hooks for answers and Space posts

Core Principle: Authority Through Depth

Quora rewards expertise, not marketing. The platform's algorithm and community both prioritize thorough, evidence-based answers over shallow or promotional content.

What this means for output:

  • The answer must be complete and standalone -- a reader should learn everything they need without clicking any link
  • Lead with direct answers, not preamble. Quora readers are impatient with "great question!" openings.
  • Credentials and specificity build trust. "After analyzing 200 campaigns..." beats "In my experience..."
  • Google indexes Quora answers heavily -- treat every answer as a mini SEO landing page
  • One external link maximum per answer, placed naturally in context or at the bottom
  • Never use phrases like "check out my article" or "I wrote about this on my blog"
  • Instead: "I covered the full methodology with data here: [link]" (if the link adds genuine value)

Output 1: Answer

File: quora/answer.md

Question

Derive the best question to answer from the content atoms. The question should be:

  • Something a real Quora user would actually search for or ask
  • Specific enough to have a clear answer, broad enough to attract traffic
  • Aligned with the strongest atoms (especially insight, stat, howto)

Question formulas (pick the best fit):

Formula When to Use
"What is the best way to [achieve outcome]?" When content has clear methodology or steps
"Why does [common approach] fail at [topic]?" When content has contrarian or diagnostic insights
"How do [professionals] approach [topic] differently?" When content reveals expert-level distinctions
"What are the most common mistakes in [topic]?" When content identifies pitfalls or anti-patterns
"Is [common belief] actually true for [topic]?" When content challenges conventional wisdom

Answer Structure

Length: 300-1000 words. Quora's algorithm favors depth -- longer detailed answers get 2-3x more upvotes than short ones.

Format: Quora-native formatting (bold, italic, headers, lists, blockquotes).

Structure:

  1. Direct Answer (2-3 sentences) Open by directly answering the question. No throat-clearing, no "Great question!", no biography. The first two sentences should deliver the core answer so clearly that a reader could stop here and still benefit.

  2. Evidence and Depth (3-5 paragraphs) Expand with the strongest atoms. Use specific numbers, examples, and comparisons. Each paragraph should add a distinct layer of value:

    • Paragraph 1: The primary insight with supporting data
    • Paragraph 2: A real-world example or case study
    • Paragraph 3: The nuance -- when this applies, when it doesn't
    • Paragraphs 4-5 (optional): Additional evidence or secondary insights
  3. Practical Steps (bulleted, 3-5 items) Translate insights into actionable takeaways. Use Quora formatting:

    **Step 1: [Action]** -- [Brief explanation]
    **Step 2: [Action]** -- [Brief explanation]
    
  4. Closing Thought (1-2 sentences) End with either a forward-looking statement or a qualifier that shows intellectual honesty ("This works for X context; for Y, you'd adjust by...").

  5. Optional Link (1 sentence, separate from the answer body) Only if the original content adds substantial depth beyond the answer. Frame: "Full breakdown with [specific extra value] here: [link]"

Tone Rules

Do Do NOT
Use "I" and share experience with specifics Make vague, unsubstantiated claims
Lead with the answer, then explain Start with "Great question!" or autobiography
Cite numbers, studies, or concrete examples Use marketing buzzwords or jargon
Acknowledge nuance and edge cases Speak in absolutes
Use bold for key terms and takeaways Use ALL CAPS or excessive formatting
Write in clear, structured paragraphs Write wall-of-text blocks
Be authoritative but approachable Be condescending or pedantic
Credit sources when referencing data Present others' work as your own

Quora Formatting Reference

**bold text**
*italic text*
- bullet point
1. numbered list
> blockquote
[link text](url)

Headers are created with bold text on its own line.
Two line breaks = new paragraph.

Output 2: Space Post

File: quora/space-post.md

A shorter, more opinion-forward piece for a relevant Quora Space.

Space Post Structure

Length: 150-300 words. Space posts are lighter than answers -- think LinkedIn post energy but with Quora's intellectual depth.

Structure:

  1. Hook (1-2 sentences) -- Bold observation or insight from the atoms
  2. Body (2-3 short paragraphs) -- Personal take, supporting evidence, practical angle
  3. Discussion prompt (1 sentence) -- Invite Space members to share their perspective
  4. Suggested Space -- Name 1-2 relevant Quora Spaces based on the content topic

Space Selection Criteria

  • Topic relevance: Space actively discusses this subject
  • Activity level: Prefer Spaces with regular posting and engagement
  • Size: Medium Spaces (10k-100k followers) for best visibility

Common Space categories by content type:

Content Topic Likely Spaces
Marketing Marketing Strategies, Digital Marketing, Content Marketing
Entrepreneurship Startups, Business Strategy, Entrepreneurship
Tech/SaaS Technology Trends, Software Engineering, Product Management
Productivity Personal Productivity, Self-Improvement, Time Management
Writing/Content Writing Tips, Content Creation, Blogging
SEO Search Engine Optimization, Digital Marketing
AI/Automation Artificial Intelligence, Machine Learning, AI Tools

Output 3: Question Suggestions

File: quora/questions.md

Analyze the content topic and suggest 3-5 questions the user could find and answer on Quora.

For each question, provide:

Field Description
Question The exact question text as it would appear on Quora
Relevance Why this content can answer it well (1 sentence)
Competition Low / Medium / High -- based on how many quality answers likely exist
SEO Potential Low / Medium / High -- based on whether the question likely gets Google traffic
Adaptation Notes Any changes needed to the answer for this specific question

Question selection criteria:

  1. Topic match -- the question naturally aligns with the content atoms
  2. Search intent -- the question reflects what people actually search for on Google
  3. Answer gap -- questions where existing answers are shallow or outdated
  4. Evergreen potential -- questions that will stay relevant for months or years

Error Handling

Condition Action
Fewer than 3 atoms Write a shorter answer (200-400 words); focus on one insight
No insight or stat atoms Use howto + quote atoms; frame as practical guide
brief_mode is true Generate answer only; skip Space post and question suggestions
Topic is too niche for broad Quora reach Note in questions.md; suggest specific Spaces instead
Content is purely promotional Reframe entirely around the expertise; strip all product mentions
No clear question derivable Use the tldr atom to reverse-engineer a "How to..." question
从内容片段中提取5个高价值金句,并生成适配多平台的图片提示词或卡片。支持直接调用/banana生成图像,适用于社交媒体分享场景。
quote cards quote graphics quotable moments image prompts repurpose quotes
skills/repurpose-quotes/SKILL.md
npx skills add AgriciDaniel/claude-repurpose --skill repurpose-quotes -g -y
SKILL.md
Frontmatter
{
    "name": "repurpose-quotes",
    "license": "MIT",
    "metadata": {
        "author": "AgriciDaniel",
        "version": "1.0.0",
        "category": "content"
    },
    "description": "Extracts the 5 most quotable moments from content atoms and generates \/banana image prompts for each using the 6-Component Brief. Produces quote cards ready for social sharing with platform-specific aspect ratios, color palettes, and text overlays. Sub-skill of the Content Repurposing Engine. Use when user says \"quote cards\", \"quote graphics\", \"quotable moments\", \"image prompts\", or \"repurpose quotes\".\n",
    "argument-hint": "[url-or-atoms]",
    "user-invokable": true
}

Quote Graphics and Image Prompt Generator

Extract 5 quotable moments from content atoms and produce /banana image generation prompts (or generate images directly if /banana is available).

Inputs

Received from the parent agent (repurpose-visual):

Input Description
atoms Full list of content atoms with types and impact ratings
main_argument One-sentence thesis of the source content
target_audience Who benefits from this content
primary_topic Category or niche
voice_profile Detected or overridden brand voice
images_flag If true AND /banana available, generate images directly
author_name Name for attribution on quote cards

References

Load these before generating output:

  • references/image-sourcing.md -- 3-tier image pipeline, prompt templates, platform dimensions
  • references/platform-specs.md -- image dimensions per platform

Output 1: Quotable Moments

File: quotes/quotes.md

Select exactly 5 quotes from the content atoms. Rank and pick using these criteria (in priority order):

Selection Criteria

# Criterion What to Look For Best Atom Types
1 Standalone impact Works perfectly without any surrounding context. A stranger seeing just this line would understand and feel something. quote, contrarian, tldr
2 Statistical weight Contains a specific number, percentage, or data point that anchors the claim. stat, casestudy
3 Contrarian angle Challenges conventional wisdom or says something most people would disagree with at first glance. contrarian, prediction
4 Emotional resonance Provokes a feeling -- surprise, validation, frustration, curiosity, motivation. quote, analogy, insight
5 Practical insight Gives the reader something actionable they can use immediately. howto, insight

Rules:

  • Pick the 5 BEST quotes across all criteria -- do not force one per criterion
  • Prefer atoms rated 4-5 impact
  • Polish slightly for readability if needed (fix grammar, trim filler) but preserve the author's voice and meaning
  • Each quote should be 1-2 sentences max (under 200 characters ideal for cards)
  • If the content has fewer than 5 strong quotes, use what exists; never pad

Quote Output Format

For each quote:

### Quote [N]

**Text:** "[Exact or polished quote]"
**Attribution:** [Author/Speaker Name]
**Criterion:** [Which selection criterion it satisfies]
**Source Atom:** [Atom number and type from atomization]
**Card Text (short):** [Condensed to under 120 chars if original is longer]

Output 2: /banana Image Prompts

File: quotes/banana-prompts.md

For each of the 5 quotes, generate a /banana-compatible image prompt using the 6-Component Brief (matching references/image-sourcing.md).

The 6-Component Brief

Every prompt must specify these 6 components in order:

Component Description Example
Subject What the image shows (abstract or concrete) "Minimalist desk workspace"
Action Movement or state of the subject "bathed in soft morning light"
Context Environment or background setting "against a clean gradient background"
Composition Layout, framing, text placement zone "left-aligned with 40% right margin for text overlay"
Lighting Light source, direction, temperature, quality "soft ambient glow, warm temperature, subtle vignette"
Style Visual aesthetic and rendering approach "editorial photography, muted tones, shallow depth of field"

Prompt Template

/banana generate

**Subject:** [subject description]
**Action:** [action or state]
**Context:** [background/environment]
**Composition:** [layout and text zone]
**Lighting:** [light source, direction, temperature]
**Style:** [aesthetic direction]
**Dimensions:** [WxH based on target platform]
**Text Overlay:** "[exact quote text]"
**Attribution:** [author name, positioned bottom-right]
**Color Palette:** [3-4 hex colors based on content mood]

Target Aspect Ratios

Generate prompts for all three sizes per quote:

Platform Aspect Ratio Dimensions Use Case
Social (general) 1:1 1080x1080 LinkedIn, Facebook, default
Instagram feed 4:5 1080x1350 Instagram posts
Twitter/X 16:9 1600x900 Twitter cards, blog headers

Default: Generate the 1:1 prompt. Note the other dimensions in the prompt file for manual adaptation.

Color Palette by Content Mood

Mood Palette Direction Example Hex
Professional/Authority Navy, charcoal, white, gold accent #1B2A4A, #333333, #FFFFFF, #C9A84C
Energetic/Motivational Deep orange, white, dark gray #E85D26, #FFFFFF, #2D2D2D, #FF8C42
Calm/Thoughtful Sage green, cream, soft gray #7C9A82, #F5F0E8, #9E9E9E, #4A6B52
Bold/Contrarian Red, black, white #D32F2F, #1A1A1A, #FFFFFF, #FF5252
Tech/Innovation Electric blue, dark bg, white text #2196F3, #0D1117, #FFFFFF, #64B5F6
Creative/Playful Purple, teal, light bg #7B1FA2, #00897B, #FAFAFA, #CE93D8

Analyze the primary_topic, voice_profile, and strongest atom types to select the appropriate mood and palette.

Image Generation — AI ONLY

Quote cards ALWAYS require AI generation because they need custom text overlays. Stock photos cannot be used for quotes.

When /banana IS available:

  1. Generate 5 quote card images using the 6-Component Brief
  2. Each quote card: topic-relevant background + quote text + attribution
  3. Save to images/quote-card-1.png through images/quote-card-5.png
  4. Also save prompts to banana-prompts.md for reference

When /banana is NOT available:

  1. Save all 5 prompts to banana-prompts.md with full detail
  2. Suggest stock photo backgrounds from Pixabay as alternatives:
    • Search: site:pixabay.com [topic] abstract background dark
    • User can overlay text manually in Canva or similar
  3. Note in output: "Quote card images pending — run /banana generate <prompt> or use saved backgrounds"

Font Style Suggestions

Include a font direction for each quote card:

Content Tone Font Style Examples
Professional Sans-serif bold Montserrat Bold, Inter Black
Personal/Story Serif elegant Playfair Display, Lora
Casual/Witty Rounded sans Nunito, Quicksand
Data/Technical Monospace accent JetBrains Mono, Fira Code
Motivational All-caps sans Oswald, Bebas Neue

Error Handling

Condition Action
Fewer than 5 quotable atoms Use what exists; generate prompts for each; note count
No quote type atoms Extract quotable lines from insight, contrarian, stat atoms
Author name unknown Use "Unknown" or ask parent agent; omit attribution line on card
/banana returns error Save prompts; note failure; suggest manual generation
brief_mode is true Generate 3 quotes instead of 5; 1:1 prompts only
Content mood ambiguous Default to Professional/Authority palette
将内容原子转化为符合特定子版块文化的Reddit讨论帖,遵循90/10原则避免硬广。输入主题与受众,输出非促销性、高价值的原创讨论内容及推荐子版块。
reddit reddit post subreddit reddit discussion repurpose for reddit
skills/repurpose-reddit/SKILL.md
npx skills add AgriciDaniel/claude-repurpose --skill repurpose-reddit -g -y
SKILL.md
Frontmatter
{
    "name": "repurpose-reddit",
    "license": "MIT",
    "metadata": {
        "author": "AgriciDaniel",
        "version": "1.0.0",
        "category": "content"
    },
    "description": "Generates Reddit discussion posts adapted to subreddit culture and norms. Produces peer-to-peer, non-promotional content with genuine discussion prompts and subreddit-specific recommendations. Sub-skill of the Content Repurposing Engine. Use when user says \"reddit\", \"reddit post\", \"subreddit\", \"reddit discussion\", or \"repurpose for reddit\".\n",
    "argument-hint": "[url-or-atoms]",
    "user-invokable": true
}

Reddit Discussion Post Generator

Produce a subreddit-ready discussion post and 2-3 targeted subreddit suggestions from the content atoms provided by the orchestrator.

Inputs

Received from the parent agent (repurpose-longform):

Input Description
atoms Full list of content atoms with types and impact ratings
main_argument One-sentence thesis of the source content
target_audience Who benefits from this content
primary_topic Category or niche
voice_profile Detected or overridden brand voice
brief_mode If true, produce post only (skip subreddit analysis)

Core Principle: The 10% Self-Promotion Rule

Reddit communities enforce a rough 90/10 rule: 90% of your posts should be genuine contributions, 10% can reference your own work.

What this means for output:

  • Position the author as a contributor, never a marketer
  • The post must deliver standalone value -- a reader who never clicks a link should still learn something
  • Any link to the original content goes at the bottom, framed naturally
  • Never use phrases like "check out my blog" or "I wrote an article about this"
  • Instead: "I put together a longer breakdown here if anyone wants the details: [link]"

Output 1: Discussion Post

File: reddit/post.md

Title

  • Max 300 characters (Reddit's limit)
  • Frame as a question or observation -- never as an announcement
  • Good: "After analyzing 50 newsletters, here's what actually drives opens"
  • Good: "Has anyone else noticed [specific trend] in [topic]?"
  • Bad: "My guide to newsletter marketing"
  • Bad: "Check out my latest blog post on [topic]"

Title formulas (pick the best fit):

Formula When to Use
"After [doing X], here's what I found" When content has original data or experience
"Has anyone else noticed [observation]?" When content identifies a trend
"[Topic] question: [specific question]" When content answers a non-obvious question
"I [did X] and the results surprised me" When content has a contrarian or unexpected finding
"[Number] things I learned about [topic]" When content has clear, numbered takeaways

Post Body

Length: 200-500 words. Reddit penalizes both too-short and wall-of-text posts.

Format: Reddit markdown.

Structure:

  1. Context/Observation (2-3 sentences) Open with a relatable situation or observation. Establish credibility through specificity, not credentials. "I've been doing X for Y months" not "As a certified expert in X."

  2. Key Insight (1-2 paragraphs) The meatiest atom from the content. Present it as a discovery or realization, not a teaching moment. Use evidence: numbers, examples, comparisons.

  3. Supporting Points (bulleted, 3-5 items) Pull from the strongest atoms. Each bullet should be one clear thought. Use Reddit markdown formatting:

    - **Bold the key phrase** then explain briefly
    - **Another point** with supporting detail
    
  4. Open Question (1-2 sentences) End with a genuine question that invites debate. NOT "What do you think?" (too generic). Instead, ask something specific that people can disagree on.

  5. Optional Link (1 sentence, at the very bottom) Only if the original content adds substantial value beyond the post. Frame: "Full breakdown with [specific extra detail] here: [link]" Separate from the discussion prompt with a line break.

Tone Rules

Do Do NOT
Use "I" and "we" Use "you should" or "you need to"
Share evidence and specifics Make unsubstantiated claims
Acknowledge uncertainty ("in my experience") Speak in absolutes
Use casual language and contractions Use marketing jargon
Ask genuine questions Ask rhetorical questions
Credit sources Claim everything as original
Use **bold** for emphasis Use ALL CAPS or excessive punctuation
Include line breaks between paragraphs Write wall-of-text blocks

Reddit Formatting Reference

**bold text**
*italic text*
- bullet point
1. numbered list
> blockquote
`inline code`
[link text](url)

Two line breaks = new paragraph

Output 2: Subreddit Suggestions

File: reddit/subreddits.md

Analyze the content topic and suggest 2-3 relevant subreddits.

For each subreddit, provide:

Field Description
Subreddit r/SubredditName
Relevance Why this content fits (1 sentence)
Size Approximate subscriber count tier (small <50k, medium 50-500k, large 500k+)
Culture Brief description of posting norms and community expectations
Flair Suggest applicable post flair if the subreddit uses them
Rules to Watch 1-2 specific rules that could affect this post
Adaptation Notes Any changes needed to the post body for this specific subreddit

Subreddit selection criteria:

  1. Topic match -- the subreddit actively discusses this subject
  2. Size sweet spot -- medium subreddits (50k-500k) often have the best engagement
  3. Self-promotion tolerance -- some subreddits ban all external links; note this
  4. Post type fit -- discussion-oriented subreddits over link-dump subreddits

Common subreddit categories by content type:

Content Topic Likely Subreddits
Marketing r/marketing, r/digital_marketing, r/content_marketing
Entrepreneurship r/Entrepreneur, r/smallbusiness, r/startups
Tech/SaaS r/SaaS, r/webdev, r/programming
Productivity r/productivity, r/getdisciplined
Writing/Content r/copywriting, r/ContentCreation, r/blogging
Social Media r/socialmedia, r/Instagram, r/Twitter
SEO r/SEO, r/bigseo
AI/Automation r/artificial, r/ChatGPT, r/MachineLearning

Error Handling

Condition Action
Fewer than 3 atoms Write a shorter post (150-200 words); focus on one insight
No contrarian or insight atoms Use stat + howto atoms; frame as a "TIL" style post
brief_mode is true Generate post only; skip subreddit suggestions
Topic is too niche for major subreddits Suggest smaller, specialized subreddits; note low traffic
Content is purely promotional Reframe entirely around the insight; strip all product mentions
生成跨平台SEO元数据,包括标题、描述、标签和关键词。确保内容原子与核心论点的一致性,遵循各平台规范(如Twitter限2个标签、LinkedIn需专业语气),输出统一文件以优化多平台搜索可见性。
seo metadata hashtags keywords alt text cross-platform seo repurpose seo
skills/repurpose-seo/SKILL.md
npx skills add AgriciDaniel/claude-repurpose --skill repurpose-seo -g -y
SKILL.md
Frontmatter
{
    "name": "repurpose-seo",
    "license": "MIT",
    "metadata": {
        "author": "AgriciDaniel",
        "version": "1.0.0",
        "category": "content"
    },
    "description": "Generates cross-platform SEO metadata including optimized titles, descriptions, hashtag sets, keywords, alt text, and platform-specific search signals. Ensures keyword consistency across all repurposed outputs. Sub-skill of the Content Repurposing Engine. Use when user says \"seo metadata\", \"hashtags\", \"keywords\", \"alt text\", \"cross-platform seo\", or \"repurpose seo\".\n",
    "argument-hint": "[url-or-atoms]",
    "user-invokable": true
}

Cross-Platform SEO Metadata Generator

Produce a unified SEO metadata file covering every platform in the repurposing pipeline. Ensures keyword consistency while respecting each platform's unique search and discovery mechanics.

Inputs

Received from the parent agent (repurpose-seo):

Input Description
atoms Full list of content atoms with types and impact ratings
main_argument One-sentence thesis of the source content
target_audience Who benefits from this content
primary_topic Category or niche
voice_profile Detected or overridden brand voice
platforms_requested Which platforms are being generated (all if unspecified)

References

Load these before generating output:

  • references/platform-specs.md -- character limits, hashtag counts, formatting rules
  • references/engagement-benchmarks.md -- click-through and engagement baselines

Output: seo-metadata.md

File: seo-metadata.md

Single file with clearly labeled sections per platform.

Core Keywords (Cross-Platform)

Before generating platform-specific metadata, establish the keyword foundation:

## Core Keywords

**Primary Keywords (3-5):**
- [keyword 1] -- highest relevance to main argument
- [keyword 2]
- [keyword 3]

**Secondary Keywords (5-10):**
- [long-tail keyword 1]
- [long-tail keyword 2]
- ...

**Keyword Selection Rules:**
- Primary: directly describe the content topic (1-2 words)
- Secondary: long-tail phrases the target audience would search
- Avoid generic terms ("marketing", "business") unless paired with specifics
- Include at least one audience-identifying keyword ("for founders", "SaaS")

All platform sections below must use these core keywords, adapted to each platform's conventions.


Twitter/X

Field Spec
Optimized Title Under 70 chars; include primary keyword; works as tweet text
Description 1-2 sentences; under 200 chars; for Twitter Card meta
Twitter Card Type summary_large_image (default) or summary if no hero image
Hashtags 0-2 max. Only if highly relevant. Twitter penalizes hashtag stuffing.
Keywords in Tweet Weave primary keyword naturally into tweet copy; never force
Alt Text For any attached image: descriptive, keyword-inclusive, under 420 chars

LinkedIn

Field Spec
Optimized Headline Under 150 chars; professional tone; include primary keyword
Description 1-2 sentences for link preview or article summary
Hashtags 3-5. Mix of broad (50k+ followers) and niche (<10k followers). Place at post bottom.
Article SEO If longform: suggest SEO title (under 70 chars) + meta description (under 155 chars) for LinkedIn article
Keywords Include primary keyword in first 2 lines of post (LinkedIn search indexes early text)
Alt Text For carousel cover or images: professional, descriptive

Instagram

Field Spec
Caption Headline First line of caption (before "more" fold); under 125 chars; hook + keyword
Description Not applicable (Instagram has no meta description)
Hashtags 3-5 niche hashtags. Avoid generic (#marketing, #inspo). Target hashtags with 10k-500k posts for discoverability.
Hashtag Research Notes For each hashtag: approximate post count and why it fits
Keywords Work primary keyword into caption naturally; Instagram search indexes caption text
Alt Text For each carousel slide and reel thumbnail: descriptive, specific, keyword-inclusive

Instagram hashtag rules:

  • Place in caption body or first comment (either works; caption preferred for indexing)
  • 3-5 total (algorithm penalizes 20+ hashtag lists)
  • Mix: 1 broad (100k+ posts), 2-3 niche (10k-500k), 1 micro (<10k)
  • Rotate sets across posts to avoid shadow-ban triggers

Facebook

Field Spec
Optimized Title Under 80 chars; conversational tone; primary keyword
Description For link preview: under 155 chars
Hashtags 0-3. Facebook hashtags have low impact; use only if highly topical.
Keywords Include in first sentence; Facebook search indexes post text
Alt Text For any images: descriptive, keyword-included

YouTube Community

Field Spec
Post Text First 2 lines (before fold) should contain primary keyword
Hashtags 1-3 relevant hashtags at post bottom
Keywords Work into poll questions and post body naturally

Reddit

Field Spec
Title Keywords Include primary keyword in post title naturally
Post Flair Suggest flair text based on subreddit conventions (e.g., "Discussion", "Resource", "Question")
No Hashtags Reddit does not use hashtags. Never include them.
Keywords Work into post body for Reddit search; use natural language

Newsletter / Email

Field Spec
Subject Line Keywords Primary keyword in at least 1 of 3 subject variants
Preview Text 40-90 chars; complements subject; includes secondary keyword
Alt Text For any email images: descriptive (many clients block images)
No Hashtags Email does not use hashtags.

Skool

Field Spec
Post Title Include primary keyword; frame as discussion or challenge
Hashtags 0-2 if the Skool community uses tags
Keywords Work into post body and discussion prompt

Cross-Platform Consistency Check

After generating all sections, verify:

  1. Primary keyword appears in every platform's title/headline
  2. No platform uses more hashtags than its recommended limit
  3. Alt text is unique per image, not copy-pasted across platforms
  4. Tone matches platform (professional for LinkedIn, casual for Twitter, peer-to-peer for Reddit)
  5. No keyword stuffing -- each keyword appears naturally, max 2 times per platform section

Keyword Adaptation Rules

Platform Keyword Style
Twitter Short, punchy, often as a noun phrase
LinkedIn Professional, may include industry jargon
Instagram Casual, may abbreviate or use slang
Facebook Conversational, question-friendly
Reddit Natural language, no optimization feel
Newsletter Benefit-oriented, action words
YouTube Search-query style, how-to phrasing

Error Handling

Condition Action
Topic too broad for specific keywords Ask parent agent for niche-down; use audience-specific long-tail
Platform not in platforms_requested Skip that section; note in output
No images generated Skip alt text sections; note "Add alt text when images are created"
brief_mode is true Generate core keywords + top 3 requested platforms only
Hashtag research unclear Default to topic + audience + format pattern
将内容原子转化为Skool社区讨论帖、挑战提示和投票。遵循内容轮换规则,保持教师/领导者语气,支持多日互动规划与图像生成。
skool skool post skool challenge community post repurpose for skool
skills/repurpose-skool/SKILL.md
npx skills add AgriciDaniel/claude-repurpose --skill repurpose-skool -g -y
SKILL.md
Frontmatter
{
    "name": "repurpose-skool",
    "license": "MIT",
    "metadata": {
        "author": "AgriciDaniel",
        "version": "1.0.0",
        "category": "content"
    },
    "description": "Generates Skool community content from content atoms: discussion posts framed as open debates, multi-day challenge prompts with action steps, and community polls. Enforces content rotation and teacher\/leader tone. Sub-skill of the Content Repurposing Engine. Use when user says \"skool\", \"skool post\", \"skool challenge\", \"community post\", or \"repurpose for skool\".\n",
    "argument-hint": "[url-or-atoms]",
    "user-invokable": true
}

Skool Community Post Generator

Generate discussion post, challenge prompt, and poll from content atoms.

Inputs

You receive from the orchestrator:

  • Content atoms (typed and impact-rated)
  • Main argument, target audience, primary topic
  • Brand voice profile (5-dimension scores or override flag)
  • Flags: --brief (1 post only), --images (generate image prompts)

References

Load before generating:

  • references/platform-specs.md -- Skool specs, community health benchmarks
  • references/hook-formulas.md -- question hooks, challenge framing
  • references/voice-adaptation.md -- Skool tone rules (teacher/leader, empowering, action-oriented)

Platform Rules

Spec Value
Character limit No strict limit
Supports Text, images, GIFs, short video
Healthy benchmark 20-30% monthly active members
Content rotation REQUIRED: polls, discussions, challenges, questions
Admin responsiveness Critical signal; respond within 2 hours
Growth timeline 60-90 days to build community momentum
Gamification Core to Skool; frame posts as challenges and action items

Content Rotation Rule

NEVER generate the same content type twice in a row. Skool communities thrive on variety. The three outputs below are designed to be posted on different days as part of a rotation cycle:

Day Type Purpose
Day 1 Discussion Open debate, gather perspectives
Day 2 Challenge Action-oriented, daily check-ins
Day 3 Poll Quick engagement, community opinion

Suggest this rotation in the output notes. The orchestrator may also generate question posts via other sub-skills -- those fill additional rotation slots.

Output 1: Discussion Post

Write to skool/discussion.md.

Discussion Structure

  1. Hook (first 1-2 lines)

    • Frame the content as an open question or debate
    • Use a contrarian, insight, or question atom as the seed
    • Tone: curious, inviting, not lecturing
  2. Context (2-3 paragraphs)

    • Share the key insight or finding from the source content
    • Present it as a topic for community exploration, not a settled answer
    • Include enough detail that members can form their own opinion
    • Use 2-3 atoms to build the case
  3. Discussion prompt

    • Ask a specific, open-ended question that invites detailed responses
    • Frame it so members share their own experience, not just agree/disagree
    • Examples:
      • "What has worked for YOU when it comes to [topic]?"
      • "Do you agree with this approach, or have you found something better?"
      • "I'd love to hear how your experience compares -- drop your take below."
  4. Engagement hooks (optional)

    • Tag specific community members who might have relevant experience
    • Reference a previous community discussion if relevant
    • Offer to compile the best responses into a resource

Discussion Tone

  • Teacher/leader voice: empowering and encouraging, not authoritative or preachy
  • Frame yourself as a fellow learner exploring alongside the community
  • Acknowledge that members bring valuable experience
  • Use contractions, casual language, and warmth

Output 2: Challenge Prompt

Write to skool/challenge.md.

Derive a 3-7 day challenge from the source content. Challenges drive the highest sustained engagement on Skool.

Challenge Structure

  1. Challenge title

    • Action-oriented: "The 5-Day [Topic] Challenge"
    • Specific outcome promise: "...to [measurable result]"
  2. Why this challenge (2-3 sentences)

    • Connect to the source content's main insight
    • Frame the gap: "Most people know [insight] but never act on it"
    • This challenge bridges knowing and doing
  3. Challenge rules (3-5 bullet points)

    • Duration: 3-7 days
    • One clear action per day
    • Reporting requirement: "Post your result in the comments each day"
    • Completion reward: badge, shoutout, or community recognition
  4. Daily action steps

Day Action Check-In Prompt
Day 1 [Specific, small action derived from content] "Post what you did + one thing you learned"
Day 2 [Build on Day 1] "Share your progress + any obstacles"
Day 3 [Increase difficulty slightly] "What surprised you so far?"
Day 4+ [Continue progression] [Relevant check-in question]
Final day [Culminating action] "Share your before/after or key takeaway"
  1. Completion CTA
    • "When you finish, post your results with #[ChallengeName]"
    • "I'll feature the best responses in a follow-up post"
    • Encourage members to cheer each other on

Challenge Rules

  • Each daily action must be completable in 15-30 minutes
  • Actions must be specific and measurable (not "think about X" but "write down 3 examples of X")
  • Progress should be visible (members can see each other's check-ins)
  • Include at least one "share with the community" touchpoint per day

Output 3: Poll

Write to skool/poll.md.

Community opinion poll derived from the content's key question.

Poll Structure

  1. Context (1-2 sentences)

    • Brief framing of the question
    • Connect to the source content or an ongoing community theme
  2. Question

    • Community-oriented: "Where does our community stand on [topic]?"
    • Specific to the audience's decisions or experiences
    • Avoid yes/no -- prefer multi-option
  3. Options (3-5)

    • Each represents a genuine position members might hold
    • Include one option that might spark debate
    • Members can elaborate in comments
  4. Follow-up invitation

    • "Drop your reasoning in the comments -- I want to hear the WHY behind your vote"
    • This transforms a quick poll into a discussion thread

Admin Responsiveness

Include a note in every output reminding the user:

  • Respond to comments within 2 hours (critical Skool engagement signal)
  • Ask follow-up questions to commenters to deepen discussion
  • Heart/react to every response (minimum engagement)
  • Admin silence kills Skool communities faster than anything else

Skool MCP Integration

If Skool MCP tools are detected in the current session (mcp__skool__* tools available), note in the output:

  • "Skool MCP tools detected. These posts can be published directly using the Skool MCP integration."
  • Reference available tools: skool_get_feed, skool_get_community
  • Note: check community guidelines before posting with skool_get_community

Output Format

# Skool Discussion: [Topic]

[Full post text]

---
**Content rotation:** Discussion (next: Challenge or Poll)
**Admin response plan:** Respond to first 5 comments within 2 hours
**Engagement target:** [realistic based on community size]

Brief Mode

If --brief is active, produce only:

  • 1 discussion post (most versatile format)
  • Skip challenge and poll
基于内容原子生成Snapchat故事脚本、Spotlight视频及AR镜头概念。优化完播率与互动,遵循平台规范(9:16竖屏、交互贴纸、深夜发布),适配品牌语调,旨在提升分享与截图保存量。
snapchat snap story snapchat spotlight snap repurpose for snapchat
skills/repurpose-snapchat/SKILL.md
npx skills add AgriciDaniel/claude-repurpose --skill repurpose-snapchat -g -y
SKILL.md
Frontmatter
{
    "name": "repurpose-snapchat",
    "license": "MIT",
    "metadata": {
        "author": "AgriciDaniel",
        "version": "1.0.0",
        "category": "content"
    },
    "description": "Generates Snapchat content from content atoms: story scripts (3-5 frames at 10s each), Spotlight scripts (up to 60s vertical video), and AR lens concepts. Optimizes for completion rate, shares, and screenshot saves. Sub-skill of the Content Repurposing Engine. Use when user says \"snapchat\", \"snap story\", \"snapchat spotlight\", \"snap\", or \"repurpose for snapchat\".\n",
    "argument-hint": "[url-or-atoms]",
    "user-invokable": true
}

Snapchat Content Generator

Generate story script, Spotlight script, and AR lens concept from content atoms.

Inputs

Received from the parent agent (repurpose-visual):

Input Description
atoms Full list of content atoms with types and impact ratings
main_argument One-sentence thesis of the source content
target_audience Who benefits from this content
primary_topic Category or niche
voice_profile Detected or overridden brand voice
images_flag If true AND /banana available, generate images directly
brief_mode If true, produce 1 story script only

References

Load before generating:

  • references/platform-specs.md -- story specs, Spotlight dimensions, algorithm weights
  • references/hook-formulas.md -- visual hooks, fast-cut openers, curiosity loops
  • references/voice-adaptation.md -- Snapchat tone rules (ultra-casual, ephemeral, raw)

Platform Rules

Spec Value
Story segments 10 seconds each, up to 60s total
Spotlight Up to 60 seconds (single video, like TikTok)
Dimensions 1080x1920 (9:16) for all content
Algorithm Completion rate + shares + screenshot saves
Text overlay Avoid bottom 25% (Snapchat UI elements)
Geofilters Location-based overlays (optional interactive layer)
Best time Mon-Fri 10PM-1AM (younger audience, late-night)

Output 1: Story Script (3-5 Frames)

Write to snapchat/story-script.md.

Frame-by-Frame Structure

Frame Duration Content Interactive Element
Frame 1 10s Hook -- bold text or shocking visual to stop tapping through Poll sticker or Question sticker
Frame 2 10s Key insight from content (1 atom, simplified) None (let them read/watch)
Frame 3 10s Supporting point, stat, or relatable moment Emoji slider or Quiz sticker
Frame 4 10s Actionable takeaway or "here's what to do" None
Frame 5 10s CTA: swipe-up link, "screenshot this", or reply prompt Link attachment (if applicable)

Story Rules

  • Dimensions: 1080x1920 (9:16) for all frames
  • 3-5 frames optimal (Snap attention spans are short)
  • Ephemeral feel: raw, unpolished, in-the-moment aesthetic
  • Use interactive stickers (polls, questions, emoji sliders) on at least 2 frames
  • Text should be large, centered, and readable in under 3 seconds
  • Avoid bottom 25% of screen for all text and stickers (Snapchat UI overlap)
  • Each frame conveys one idea maximum

Visual Direction

For each frame, specify:

  • Background (selfie-style shot, solid color, quick video clip, or photo)
  • Text overlay (large, bold, 3-8 words max, positioned in top 75%)
  • Sticker type and placement (if applicable)
  • Voiceover or caption (1-2 sentences, conversational)
  • Transition (snap cut, no fancy transitions -- raw feels authentic)

Tone Rules

Do Don't
Write like you're texting a friend Write like a brand or influencer
Use slang and informal language Use corporate speak or jargon
Keep it raw and unpolished Over-produce or over-edit
Make it feel spontaneous Make it feel scripted or rehearsed
Use "you" and "lol" and "ngl" Use formal language or complete sentences
Encourage screenshots and replies Ask for likes or follows (not Snap culture)

Output 2: Spotlight Script (Up to 60s)

Write to snapchat/spotlight-script.md.

Spotlight Structure

Timestamp Section Content
0-2s Hook Stop-scrolling moment. Visual or text that makes them NOT swipe away.
2-8s Setup Quick context: "ok so basically..." or "nobody talks about this but..."
8-30s Value Core insight from 2-3 atoms. Fast cuts, one point per segment.
30-45s Proof/Payoff The "aha" moment -- stat, result, or surprising reveal
45-55s CTA "screenshot this", "share with someone who needs this", or reply prompt
55-60s Loop point (optional) End with something that makes sense looping back to the start

Spotlight Rules

  • Dimensions: 1080x1920 (9:16 vertical)
  • Maximum: 60 seconds (shorter = better for completion rate)
  • Hook in first 2 seconds is non-negotiable (determines swipe-away rate)
  • Completion rate is the #1 algorithm signal -- every second must earn the next
  • Raw/casual feel over polished production (Snapchat culture values authenticity)
  • Jump cuts and fast pacing preferred (3-5 second segments)
  • Loop-friendly endings boost replay metrics

Text Overlay Suggestions

For each section of the Spotlight, suggest:

  • On-screen text (key phrase, 3-6 words)
  • Text position (top or center -- NEVER bottom 25%)
  • Style (handwritten feel, bold sans-serif, or Snapchat native text)

Audio Direction

  • Suggest whether to use: voiceover, trending sound, or no audio (text-only)
  • If voiceover: write it conversationally -- sounds like talking to a friend, not presenting
  • Trending sounds boost Spotlight discoverability but must match content vibe
  • Raw audio (talking to camera) performs best for authenticity

Output 3: AR Lens Concept

Write to snapchat/ar-concept.md.

Design one interactive AR lens concept tied to the content topic.

AR Concept Structure

  1. Lens name (catchy, shareable, 3-5 words)

  2. Description (1 paragraph)

    • What the lens does when activated
    • How it ties to the content topic
    • What the user sees and interacts with
    • Why it would be fun to share (virality angle)
  3. Interaction type

    • Face filter, world lens, or game lens
    • Trigger: tap, open mouth, raise eyebrows, point camera at object, etc.
  4. Shareability hook

    • Why someone would screenshot or send this to a friend
    • How it creates user-generated content around the topic

AR Concept Rules

  • Keep it simple -- one core interaction, not a complex game
  • Must tie directly to the content's primary topic or main argument
  • Prioritize shareability: the best lenses make people want to show others
  • Describe the concept clearly enough for a Lens Studio developer to build it

Image Prompts

If --images flag is set, suggest:

  • Story frames: 9:16 (1080x1920) background concepts for each frame
  • Spotlight thumbnail: 9:16 (1080x1920) cover frame concept
  • Include /banana prompt descriptions (subject, context, style, raw/casual aesthetic)

Output Format

Each output file should use this structure:

# Snapchat Story: [Topic]

## Frame 1 -- Hook
**Visual:** [direction]
**Text overlay:** [text, positioned in top 75%]
**Voiceover:** [caption]
**Sticker:** [type and placement]

## Frame 2 -- [Label]
...

---
**Posting notes:** [best time, interactive sticker strategy, completion tips]

Brief Mode

If --brief is active, produce only:

  • 1 story script (3 frames, highest-impact atoms)
  • Skip Spotlight script and AR lens concept

Error Handling

Condition Action
Fewer than 3 atoms Shorten story to 3 frames; skip Spotlight
Content too formal/corporate Aggressively rewrite in ultra-casual Gen-Z tone; preserve core meaning
No video-friendly content Focus on text-overlay story frames with bold visuals
--images but no /banana Save prompts to file; note for manual creation
Target audience skews older Note in posting notes that Snapchat skews 13-34; suggest adapting tone
Content is evergreen/long-form Break into bite-sized moments; Snapchat rewards ephemeral, timely content
从内容原子生成Telegram频道文章、深度解析和测验投票。优化Markdown排版与信息密度,提升转发率。适用于用户提及Telegram相关指令时。
telegram telegram channel telegram post telegram broadcast repurpose for telegram
skills/repurpose-telegram/SKILL.md
npx skills add AgriciDaniel/claude-repurpose --skill repurpose-telegram -g -y
SKILL.md
Frontmatter
{
    "name": "repurpose-telegram",
    "license": "MIT",
    "metadata": {
        "author": "AgriciDaniel",
        "version": "1.0.0",
        "category": "content"
    },
    "description": "Generates Telegram Channel content from content atoms: structured channel posts, formatted deep dives, and quiz-ready polls. Optimizes for markdown-rich formatting, information density, and forward-ability. Sub-skill of the Content Repurposing Engine. Use when user says \"telegram\", \"telegram channel\", \"telegram post\", \"telegram broadcast\", or \"repurpose for telegram\".\n",
    "argument-hint": "[url-or-atoms]",
    "user-invokable": true
}

Telegram Channel Content Generator

Generate a channel post, formatted deep dive, and poll from content atoms.

Inputs

You receive from the orchestrator (repurpose-broadcast):

Input Description
atoms Full list of content atoms with types and impact ratings
main_argument One-sentence thesis of the source content
target_audience Who benefits from this content
primary_topic Category or niche
voice_profile Detected or overridden brand voice
brief_mode If true, produce channel post only

References

Load before generating:

  • references/platform-specs.md -- character limits, formatting, algorithm signals
  • references/hook-formulas.md -- headline and editorial hook formulas
  • references/voice-adaptation.md -- Telegram tone rules (structured, editorial, dense)

Platform Rules

Spec Value
Channel post limit 4096 chars
Formatting Full markdown (bold, italic, code, links) + HTML subset
Images Unlimited per post, any ratio
Polls Up to 10 options, 100 chars each, quiz mode, anonymous/public
Buttons Inline URL buttons (up to 8 per row)
Silent messages Send without notification (supported)
Scheduled posts Native scheduling
Forward visibility Posts forwarded to other channels/groups
Best time 9-11 AM and 7-9 PM

Core Principle: Curated Feed

Telegram channels are curated feeds. Subscribers expect consistent, well-formatted, information-dense posts. Quality of formatting matters -- Telegram users notice and appreciate well-structured markdown. Forward-ability is a growth lever: design every post to be worth sharing.

Output 1: Channel Post

File: telegram/post.md

Length: 500-1000 chars.

Structure:

  1. Bold headline -- Editorial headline using **bold**. Must work as standalone hook.
  2. Key insight paragraphs -- 2-3 short paragraphs from highest-impact atoms. Use bold key terms, italic for emphasis, code for tools/commands.
  3. Takeaway list -- 3-5 actionable points. Bold the lead phrase of each item.
  4. Link button suggestion -- Inline URL button for CTA. Button text describes outcome, not action.

Rules:

  • Bold key terms aggressively -- Telegram readers scan
  • One idea per paragraph, max 3 sentences
  • Every post must deliver standalone value
  • Link buttons preferred over inline links for CTAs

Output 2: Formatted Deep Dive

File: telegram/deep-dive.md

Length: 1000-2000 chars. Only generate for high-value content with 5+ atoms.

Structure:

  1. Headline -- Bold, editorial, slightly longer than channel post headline.
  2. Problem/context -- 2-3 sentences. Use italic for the key question.
  3. Insight with evidence -- 2-3 paragraphs from stat, insight, and contrarian atoms. Bold data points and key conclusions.
  4. Actionable steps -- Numbered list (1-5 steps). Bold lead phrase + one sentence explanation per step. Must be concrete and immediate.
  5. CTA with inline button -- Suggested URL button ("get the full breakdown").

Rules:

  • Justify the length with density -- every paragraph adds new information
  • Use all available formatting (bold, italic, code, lists)
  • Numbered steps mandatory for actionable content
  • Should feel like a mini-article, not a stretched post

Output 3: Poll

File: telegram/poll.md

Spec Constraint
Options 3-5 (under 100 chars each)
Max options 10 (platform limit)
Quiz mode Optional -- mark correct answer with explanation
Voting Anonymous for opinions, public for quizzes

Poll structure:

  1. Setup message -- 1-2 sentences of context posted before the poll.
  2. Question -- Specific and debatable. From the content's central tension or common misconception.
  3. Options -- Defensible positions. Include one that challenges conventional thinking. Order from most to least expected.
  4. Quiz mode (optional) -- For content with a clear correct answer. Include 1-sentence explanation for the correct option.

Tone Rules

Do Do NOT
Use editorial, structured voice Write casually like a text message
Bold key terms and data points Leave text unformatted
Use numbered lists for steps Use bullets for sequential actions
Format aggressively (bold, italic, code) Rely on plain text
Write information-dense paragraphs Pad with filler or pleasantries
Design posts worth forwarding Write self-referential content
Use inline button suggestions for CTAs Bury links in paragraph text

Output Format

# Telegram Channel Post: [Topic]

**[Bold headline]**

[Formatted post body with markdown]

---
**Posting notes:** [best time, silent message suggestion, button configuration]

Brief Mode

If --brief is active, produce only:

  • 1 channel post (highest-impact atoms, standard format)
  • Skip deep dive and poll

Error Handling

Condition Action
Fewer than 3 atoms Shorter post (300-500 chars); skip deep dive
No stat or insight atoms Use howto + quote atoms; frame as practical guide
brief_mode is true Generate channel post only; skip deep dive and poll
Content too casual Increase structure; add bold formatting and lists
Content is promotional Reframe as editorial insight; strip product mentions
Long content (10+ atoms) Split into channel post + deep dive
基于内容原子生成Meta Threads帖子,包括5-10条的线程、3-5个独立帖及图片概念。优化参与度与真实性,遵循平台规则(如无标签、自由链接)。
threads threads post threads thread meta threads repurpose for threads
skills/repurpose-threads/SKILL.md
npx skills add AgriciDaniel/claude-repurpose --skill repurpose-threads -g -y
SKILL.md
Frontmatter
{
    "name": "repurpose-threads",
    "license": "MIT",
    "metadata": {
        "author": "AgriciDaniel",
        "version": "1.0.0",
        "category": "content"
    },
    "description": "Generates Meta Threads content from content atoms: threaded breakdowns (5-10 posts), standalone posts (3-5 variations), and image post concepts. Optimizes for engagement, shares, and conversational authenticity. Sub-skill of the Content Repurposing Engine. Use when user says \"threads\", \"threads post\", \"threads thread\", \"meta threads\", or \"repurpose for threads\".\n",
    "argument-hint": "[url-or-atoms]",
    "user-invokable": true
}

Threads Content Generator

Generate thread, standalone posts, and image post concept from content atoms.

Inputs

You receive from the orchestrator:

  • Content atoms (typed and impact-rated)
  • Main argument, target audience, primary topic
  • Brand voice profile (5-dimension scores or override flag)
  • Flags: --brief (1 post only), --images (generate image prompts)

References

Load before generating:

  • references/platform-specs.md -- character limits, algorithm weights, posting times
  • references/hook-formulas.md -- curiosity gap, opinion-led, question hooks
  • references/voice-adaptation.md -- Threads tone rules (casual, conversational, authentic)

Platform Rules

Spec Value
Character limit 500 per post
Thread length Unlimited posts (5-10 optimal)
Images Up to 10 per post, 1080x1350 (4:5) or 1080x1080 (1:1)
Video Up to 5 min, 1080x1920 (9:16)
Algorithm Engagement + shares + follows from post
Links NO suppression (unlike Twitter -- use freely in-body)
Hashtags Not supported as discovery mechanism (use keywords in text instead)
Best time Tuesday/Thursday 10AM-1PM

Output 1: Thread (5-10 Posts)

Write to threads/thread.md.

Thread Structure

  1. Hook post (post 1)

    • Must work as a standalone post even if nobody reads the rest
    • Use an opinion-led hook or bold claim from the highest-impact atom
    • Conversational opener -- feels like the start of a story, not a lecture
    • Under 500 characters; aim for 100-200 for maximum punch
    • Never open with "Thread:" or "1/"
  2. Insight posts (posts 2-8)

    • One key point per post, drawn from individual atoms
    • No hashtags -- weave keywords naturally into the text
    • Links allowed in-body (no reach penalty, unlike Twitter)
    • Use line breaks for readability within a single post
    • Alternate between insight, story, contrarian, and data atoms
    • Insert a breather post every 3-4 posts: a one-liner opinion, rhetorical question, or relatable observation
  3. Closing post (final post)

    • Summarize the main argument in one conversational sentence
    • Include a clear CTA: follow, repost, or reply
    • End with a question that invites personal experience (community-building)

Thread Rules

  • Each post must be under 500 characters
  • Thread should flow like a conversation, not a listicle
  • Frame at least 2 posts as opinions or questions to invite replies
  • Links can go directly in-body -- no need for "link in bio" workarounds
  • Do not use hashtags anywhere in the thread (Threads does not use them for discovery)

Output 2: Standalone Posts (3-5)

Write to threads/standalone-posts.md.

Generate 3-5 standalone posts. Each one:

  • Captures a single atom and works completely independently
  • Uses a different format from the others:
    • Opinion post: first-person take that invites agreement or pushback
    • Question post: asks the community for their experience
    • Story post: short personal-feeling anecdote or observation
    • Tip post: one actionable piece of advice, conversational delivery
    • Hot take post: bold claim designed to spark discussion
  • Stays under 500 characters (sweet spot: 150-300)
  • No hashtags; weave keywords naturally into text
  • Links allowed where relevant

Tone Rules

Do Don't
Write like you're texting a smart friend Write like a brand account
Use first-person and contractions Use corporate jargon or hedging
Share opinions confidently Be vague or non-committal
Ask genuine questions Use "Thoughts?" or "Agree?"
Include links freely in-body Hide links or use "link in bio"
Keep it casual and conversational Over-polish or sound scripted

Output 3: Image Post Concept

Write to threads/image-post.md.

Design one visual post concept that pairs an image with a caption.

Image Post Structure

  1. Image direction

    • Dimensions: 1080x1350 (4:5) or 1080x1080 (1:1)
    • Visual concept description (subject, mood, style)
    • Text overlay suggestion (if applicable): 5-8 words max, bold and readable
    • Include /banana prompt description if --images flag is set
  2. Caption (under 500 characters)

    • Complements the image -- adds context the visual cannot convey
    • Conversational tone, first-person
    • Ends with a question or CTA
  3. Posting note

    • Why this visual + text combination works for the topic
    • Suggested post timing

Image Prompts

If --images flag is set, suggest:

  • Image post: 4:5 (1080x1350) or 1:1 (1080x1080) visual concept
  • Include /banana prompt description (subject, context, style, composition)

Output Format

Each output file should use this structure:

# Threads Thread: [Topic]

## Post 1 -- Hook
[post text]

## Post 2
[post text]

...

## Closing Post
[post text]

---
**Posting notes:** [best time, link placement, engagement strategy]

Brief Mode

If --brief is active, produce only:

  • 1 standalone post (highest-impact atom, opinion-led)
  • Skip thread and image post concept

Error Handling

Condition Action
Fewer than 5 atoms Shorten thread to match available atoms; minimum 3 posts
Content too technical Simplify language; Threads audience expects casual tone
No clear opinion angle Frame insights as "Here's what most people miss..."
--images but no /banana Save prompt to file; note for manual generation
Content has no links Omit link references; focus on text-only engagement
Atoms lack conversational tone Rewrite in first-person casual voice; preserve meaning
基于内容原子生成TikTok视频脚本、图文轮播及拼接/合拍创意。遵循钩子优先结构,优化完播率与互动,适配平台算法规范。
tiktok tiktok script tiktok video tiktok carousel tiktok stitch tiktok duet tiktok photo mode repurpose for tiktok
skills/repurpose-tiktok/SKILL.md
npx skills add AgriciDaniel/claude-repurpose --skill repurpose-tiktok -g -y
SKILL.md
Frontmatter
{
    "name": "repurpose-tiktok",
    "license": "MIT",
    "metadata": {
        "author": "AgriciDaniel",
        "version": "1.0.0",
        "category": "content"
    },
    "description": "Generates TikTok content from content atoms: video scripts (15-60s) with hook-first structure and text overlay timestamps, carousel\/photo mode scripts (2-10 slides), and stitch\/duet concepts for trend-riding. Optimizes for completion rate and hook engagement. Sub-skill of the Content Repurposing Engine. Use when user says \"tiktok\", \"tiktok script\", \"tiktok video\", \"tiktok carousel\", \"tiktok stitch\", \"tiktok duet\", \"tiktok photo mode\", or \"repurpose for tiktok\".\n",
    "argument-hint": "[url-or-atoms]",
    "user-invokable": true
}

TikTok Content Generator

Generate video script, carousel/photo mode, and stitch/duet concept from content atoms.

Inputs

You receive from the orchestrator:

  • Content atoms (typed and impact-rated)
  • Main argument, target audience, primary topic
  • Brand voice profile (5-dimension scores or override flag)
  • Flags: --brief (video script only), --images (generate cover/thumbnail prompts)

References

Load before generating:

  • references/platform-specs.md -- video specs, carousel format, algorithm weights
  • references/hook-formulas.md -- opening hooks, pattern interrupts
  • references/voice-adaptation.md -- TikTok tone rules (fast, casual, raw/authentic)

Platform Rules

Spec Value
Video length 15-60s sweet spot (up to 3 min, 10 min for some accounts)
Video dimensions 1080x1920 (9:16)
Carousel/Photo mode 2-10 slides, 1080x1350 (4:5)
Algorithm priority Completion rate #1, then shares, comments, likes
Hook window 0.5-1.5 seconds (determines whether viewer stays or scrolls)
Hashtags 3-5 (mix 1-2 trending + 2-3 niche)
Text overlay safe zone Avoid bottom 20% (TikTok UI overlap)
Post types Video, photo carousel, stitch, duet, LIVE
Best time Tue/Thu/Sat 7-9 PM

Output 1: Video Script (15-60s)

Write to tiktok/video-script.md.

Timestamp Structure

Timestamp Section Content
0-1.5s Hook Pattern interrupt, bold claim, or unexpected question. This single moment determines everything.
1.5-5s Context Quick setup: who you are OR why this matters. Keep it raw, not polished.
5-25s Value Core insight from 2-3 highest-impact atoms. Jump cuts every 2-3 seconds. Each sentence must earn the next.
25-45s Proof Stat, result, example, or before/after. Show, don't just tell.
45-55s CTA Follow, comment, stitch, or "link in bio." Only ONE ask.
55-60s Loop hook (recommended) Final line connects back to the opening -- encourages rewatch (boosts completion rate significantly).

Video Script Rules

  • Every second must justify the next. If a viewer can skip 3 seconds and miss nothing, cut those 3 seconds.
  • Jump cuts every 2-3 seconds minimum. No static talking-head shots longer than 3s.
  • Write the script as spoken words, not written prose. Fragments. Pauses. Emphasis marks.
  • Completion rate is king. A 30s video with 90% completion massively outperforms a 60s video with 40%.
  • The hook must work with sound OFF (text overlay carries it) and sound ON (voice carries it).

Text Overlay Plan

For each timestamp section, specify:

Timestamp On-Screen Text Position Animation
0-1.5s [Hook phrase, 3-6 words] Top-center Pop-in or zoom
1.5-5s [Context keyword] Center Typewriter
5-25s [Key phrases per jump cut] Top or center Cut-sync
25-45s [Stat or result number] Center-bold Scale-up
45-55s [CTA text] Center Pulse

Critical: Avoid bottom 20% of frame for all text overlays -- TikTok's UI (caption, buttons, progress bar) covers this area.

Audio Direction

  • Option A: Voiceover -- The script IS the voiceover. Write it conversationally with natural pauses.
  • Option B: Trending sound -- Note: "Use trending audio for discoverability. Voice as text overlay only."
  • Option C: Original audio -- Direct-to-camera delivery. Mark emphasis and pace changes.
  • Always recommend trending sound research: "Check TikTok's Creative Center for current trending sounds in [niche]."

Tone Rules

Do Do NOT
Use casual, conversational language Use corporate or formal phrasing
Start mid-thought ("So I just found out...") Start with introductions ("Hi, I'm...")
Use trending phrases and patterns Use dated slang or forced memes
Speak in short, punchy fragments Write in complete, polished sentences
Be raw and authentic Over-produce or over-edit the feel
Use "you" and "I" naturally Lecture or teach from above
Show genuine reactions and opinions Be neutral or hedging

Output 2: Carousel / Photo Mode (2-10 Slides)

Write to tiktok/carousel.md.

Slide Structure

Slide Purpose Content
Slide 1 Stop the scroll Hook headline (5-8 words), bold visual, "Swipe" implied by format
Slides 2-5 Core value One idea per slide from highest-impact atoms. Text-forward, minimal graphics.
Slides 6-8 Proof + examples Stats, comparisons, or actionable steps
Final slide CTA Follow + save prompt, or teaser for related content

Carousel Rules

  • Dimensions: 1080x1350 (4:5) for all slides
  • TikTok carousels are text-forward -- prioritize readability over visual complexity
  • One idea per slide, large readable text
  • Consistent visual style across slides
  • TikTok carousel captions are shorter than Instagram -- keep to 150-300 chars
  • Photo mode is a rising format with lower competition than video (2026)

Caption for Carousel

  • 150-300 characters (shorter than Instagram)
  • Hook in first line
  • 3-5 hashtags (mix trending + niche)
  • End with engagement prompt ("Save this for later" or "Which one surprised you?")

Output 3: Stitch/Duet Concept

Write to tiktok/stitch-duet.md.

Concept Structure

Field Content
Trending angle Describe the type of trending content to respond to (not a specific video)
Your hook Opening line for the stitch/duet (0.5-1.5s)
Response script 15-30s script with your angle from the atoms
Why it works 1-2 sentences on why stitch/duet boosts reach (algorithm loves participatory content: 20-30% more reach)

Stitch vs Duet

  • Stitch: Use the first 1-5s of another video, then cut to your take. Best for "reacting to" or "adding to" a trending topic.
  • Duet: Side-by-side with another video. Best for comparisons, demonstrations, or visual responses.

Concept Rules

  • Suggest the TYPE of trending content to stitch/duet with, not a specific creator or video
  • The response portion must deliver standalone value from the atoms
  • Frame as contributing to a conversation, not stealing content
  • Keep the response to 15-30 seconds

Image Prompts

If --images flag is set, suggest:

  • Video thumbnail: 9:16 (1080x1920) eye-catching cover frame concept
  • Carousel slides: 4:5 (1080x1350) visual concepts for key slides
  • Include /banana prompt descriptions

Output Format

Each file should include content plus production notes:

# TikTok Video Script: [Topic]

## Hook (0-1.5s)
**Say:** "[spoken text]"
**Text overlay:** [on-screen text] | Position: [top/center] | Animation: [type]
**Visual:** [what the viewer sees]

## Context (1.5-5s)
...

---
**Production notes:** [audio direction, posting time, hashtag suggestions, trending sound research]

Brief Mode

If --brief is active, produce only:

  • 1 video script (15-60s)
  • Skip carousel and stitch/duet concept

Error Handling

Condition Action
Fewer than 3 atoms Write a shorter script (15-30s); focus on one insight
No stat or casestudy atoms Skip the Proof section; extend Value section
brief_mode is true Generate video script only; skip carousel and stitch/duet
Content is too academic/formal Increase casual rewording; add "imagine this..." framing
Topic doesn't suit video Prioritize carousel/photo mode over video script
Content is purely promotional Reframe around the insight; strip product mentions
根据内容原子生成Twitter/X帖子,包括8-12条的线程、3-5个独立推文及投票。优化回复率与算法友好格式,支持--brief和--images参数,适用于提及twitter、tweet等场景。
用户提到“twitter” 用户提到“tweet” 用户提到“X post” 用户提到“thread” 用户提到“tweet thread” 用户提到“repurpose for twitter”
skills/repurpose-twitter/SKILL.md
npx skills add AgriciDaniel/claude-repurpose --skill repurpose-twitter -g -y
SKILL.md
Frontmatter
{
    "name": "repurpose-twitter",
    "license": "MIT",
    "metadata": {
        "author": "AgriciDaniel",
        "version": "1.0.0",
        "category": "content"
    },
    "description": "Generates Twitter\/X content from content atoms: threaded breakdowns (8-12 tweets), standalone tweets (3-5 variations), and engagement polls. Optimizes for reply-driven reach, curiosity-gap hooks, and algorithm-friendly formatting. Sub-skill of the Content Repurposing Engine. Use when user says \"twitter\", \"tweet\", \"X post\", \"thread\", \"tweet thread\", or \"repurpose for twitter\".\n",
    "argument-hint": "[url-or-atoms]",
    "user-invokable": true
}

Twitter/X Content Generator

Generate thread, standalone tweets, and poll from content atoms.

Inputs

You receive from the orchestrator:

  • Content atoms (typed and impact-rated)
  • Main argument, target audience, primary topic
  • Brand voice profile (5-dimension scores or override flag)
  • Flags: --brief (1 tweet only), --images (generate image prompts)

References

Load before generating:

  • references/platform-specs.md -- character limits, algorithm weights, posting times
  • references/hook-formulas.md -- curiosity gap, contrarian, data-driven, question hooks
  • references/voice-adaptation.md -- Twitter tone rules (concise, punchy, no hedging)

Platform Rules

Spec Value
Character limit 280 (standard), 25,000 (Premium)
Sweet spot 71-100 characters for highest engagement
Thread length 8-12 tweets (+63% impressions vs single)
Hashtags 0-2 max per tweet (more = lower reach)
Algorithm Reply = 27x a like; Conversation = 150x a like
External links Near-zero reach for non-Premium accounts
Images 1600x900 (16:9), up to 4 per tweet
Best time Tuesday 9AM, generally 8-10AM weekdays

Output 1: Thread (8-12 Tweets)

Write to twitter/thread.md.

Thread Structure

  1. Hook tweet (tweet 1)

    • Must work as a standalone tweet even if nobody expands the thread
    • Use a curiosity gap OR bold stat from the highest-impact atom
    • End with : or A thread: to signal continuation
    • Never open with "Thread:" or "1/"
    • 71-100 characters is the sweet spot
  2. Insight tweets (tweets 2-9)

    • One key point per tweet, drawn from individual atoms
    • Number each tweet for scannability (2/ prefix)
    • Use line breaks between ideas within a single tweet
    • Alternate between stat, insight, contrarian, and howto atoms
    • Insert a visual break every 3-4 tweets: a one-liner quote, a question, or an image suggestion
  3. Closing tweet (final tweet)

    • Summarize the main argument in one sentence
    • Include a clear CTA: follow, repost, reply, or bookmark
    • If a link is needed: suggest placing it in a reply to the final tweet (not in the tweet body) to avoid reach suppression
    • For non-Premium accounts, alternatively suggest "link in bio"

Thread Rules

  • Each tweet must be under 280 characters
  • Thread should flow logically even if individual tweets are read in isolation
  • Frame at least 2 tweets as questions or contrarian takes to invite replies (Reply = 27x like)
  • Do not repeat the same hook formula twice in one thread

Output 2: Standalone Tweets (3-5)

Write to twitter/standalone-tweet.md.

Generate 3-5 standalone tweets. Each one:

  • Captures a single atom and works completely independently
  • Uses a different format from the others:
    • Stat tweet: leads with a number or data point
    • Question tweet: asks a thought-provoking question
    • Hot take tweet: bold/contrarian claim that invites debate
    • Tip tweet: one actionable piece of advice
    • Analogy tweet: comparison that makes the concept click
  • Stays within the 71-100 character sweet spot when possible (never exceed 280)
  • Includes 0-1 hashtags maximum

Engagement Optimization

  • Frame for replies, not likes. Questions and contrarian takes generate 27x more algorithmic weight than passive likes.
  • Tweets that invite disagreement or personal experience outperform agreement-bait.
  • Avoid "Agree?" or "Thoughts?" -- ask a specific question instead.

Output 3: Poll

Write to twitter/poll.md.

Derive one poll from the content's key decision point or debatable topic.

Spec Constraint
Options 2-4
Chars per option 25 maximum
Duration Suggest 24h or 7 days

Poll structure:

  • Question: specific, not generic (derived from the content's central tension or choice)
  • Options: represent real positions; include one surprising/contrarian option
  • Context tweet: 1-2 sentences above the poll that frame why this question matters

External Link Warning

Links in tweet bodies receive near-zero reach for non-Premium accounts. Always:

  1. Place links in a reply to the main tweet (not the tweet body)
  2. Or suggest "Link in bio" with a directional cue
  3. Note this in the output so the user understands the trade-off

Image Prompts

If --images flag is set, suggest one hero image for the thread opener:

  • Dimensions: 1600x900 (16:9)
  • Purpose: visual hook for tweet 1 of the thread
  • Include a prompt description for /banana (subject, context, style, composition)

Output Format

Each output file should use this structure:

# Twitter Thread: [Topic]

## Hook Tweet
[tweet text]

## Tweet 2/N
[tweet text]

...

## Closing Tweet
[tweet text]

---
**Posting notes:** [best time, link placement advice, image suggestions]

Brief Mode

If --brief is active, produce only:

  • 1 standalone tweet (highest-impact atom)
  • Skip thread and poll
基于内容原子生成WhatsApp频道更新、投票和预告。遵循个人化语气与移动端阅读规范,强调许可式互动。适用于用户提及WhatsApp相关指令时,由内容复用引擎调用。
whatsapp whatsapp channel whatsapp broadcast whatsapp update repurpose for whatsapp
skills/repurpose-whatsapp/SKILL.md
npx skills add AgriciDaniel/claude-repurpose --skill repurpose-whatsapp -g -y
SKILL.md
Frontmatter
{
    "name": "repurpose-whatsapp",
    "license": "MIT",
    "metadata": {
        "author": "AgriciDaniel",
        "version": "1.0.0",
        "category": "content"
    },
    "description": "Generates WhatsApp Channel content from content atoms: concise channel updates, conversational polls, and content teasers. Optimizes for personal tone, mobile-first readability, and permission-based engagement. Sub-skill of the Content Repurposing Engine. Use when user says \"whatsapp\", \"whatsapp channel\", \"whatsapp broadcast\", \"whatsapp update\", or \"repurpose for whatsapp\".\n",
    "argument-hint": "[url-or-atoms]",
    "user-invokable": true
}

WhatsApp Channel Content Generator

Generate a channel update, poll, and content teaser from content atoms.

Inputs

You receive from the orchestrator (repurpose-broadcast):

Input Description
atoms Full list of content atoms with types and impact ratings
main_argument One-sentence thesis of the source content
target_audience Who benefits from this content
primary_topic Category or niche
voice_profile Detected or overridden brand voice
brief_mode If true, produce channel update only

References

Load before generating:

  • references/platform-specs.md -- character limits, formatting, posting cadence
  • references/hook-formulas.md -- curiosity gap and personal-tone openers
  • references/voice-adaptation.md -- WhatsApp tone rules (personal, direct, emoji-driven)

Platform Rules

Spec Value
Channel update limit 2048 chars
Formatting NO markdown; emoji-driven structure; liberal line breaks
Images 1 per update, any ratio (1080x1080 square recommended)
Polls Single question, up to 12 options
Links Supported, show preview
Algorithm Chronological (no algorithmic feed)
Cadence 2-3x per week max (overposting = permanent unsubscribes)
Best time 8-9 AM and 6-8 PM (commute windows)

Core Principle: Permission-Based and Personal

WhatsApp is the most personal platform -- content lands in the same app as family and friends messages. Every update must deliver enough value that the reader does not mute the channel. Overposting causes permanent unsubscribes. Quality over frequency, always.

Output 1: Channel Update

File: whatsapp/update.md

Length: 100-300 chars.

Structure:

  1. Emoji opener -- Single emoji signaling topic or mood.
  2. Key insight -- 1-2 sentences with the single most valuable takeaway. Must feel like a personal message, not a broadcast. Mobile-first.
  3. Value hook -- One line on why this matters to the reader.
  4. Link (if applicable) -- Bare URL or short context + URL.

Rules:

  • Write as if texting ONE person; use "you" and "I"
  • Short sentences, line breaks between every thought
  • No formal language, no corporate feel
  • Emoji as paragraph markers (1-2 per update max)

Output 2: Poll

File: whatsapp/poll.md

Spec Constraint
Options 2-4 (under 25 chars each)
Max options 12 (platform limit)
Question Conversational, derived from content

Poll structure:

  • Context message: 1-2 sentences framing why this question matters.
  • Question: Specific, conversational. Write as if asking a friend.
  • Options: Real positions, under 25 chars each. Include one lighthearted option.

Output 3: Content Teaser

File: whatsapp/teaser.md

Length: 200-500 chars.

Structure:

  1. Curiosity hook -- One line creating an information gap.
  2. Bullet points -- 2-3 emoji-bulleted items of what they will learn.
  3. Link -- Full URL to original content.
  4. Emoji CTA -- Single-line casual call-to-action.

Tone Rules

Do Do NOT
Write like texting a friend Write like a newsletter
Use "you" and "I" Use "we are pleased to announce"
Use emoji as paragraph markers Overload with emoji (max 3-4)
Keep sentences under 15 words Write multi-clause sentences
Line breaks between every thought Write dense paragraphs
Deliver value in every message Post just to stay visible

Output Format

# WhatsApp Channel Update: [Topic]

[Full update text with emoji formatting and line breaks]

---
**Posting notes:** [best time, cadence reminder, link preview note]

Brief Mode

If --brief is active, produce only:

  • 1 channel update (highest-impact atom, shortest format)
  • Skip poll and teaser

Error Handling

Condition Action
Fewer than 3 atoms Single update only (shortest format)
No stat atoms Use insight + question framing
brief_mode is true Generate update only; skip poll and teaser
Content too formal Aggressively rewrite to casual, personal tone
Content is promotional Reframe as tip or insight; strip product mentions
Long content Extract single best takeaway for update
根据内容原子生成YouTube社区帖子,包括文本、图片概念和投票。旨在提升上传间隔期的互动与订阅留存,支持自定义语气并遵循平台规范。
youtube community community post youtube poll youtube tab repurpose for youtube
skills/repurpose-youtube/SKILL.md
npx skills add AgriciDaniel/claude-repurpose --skill repurpose-youtube -g -y
SKILL.md
Frontmatter
{
    "name": "repurpose-youtube",
    "license": "MIT",
    "metadata": {
        "author": "AgriciDaniel",
        "version": "1.0.0",
        "category": "content"
    },
    "description": "Generates YouTube Community tab content from content atoms: text posts, image concepts, and polls with up to 5 options. Optimizes for between-upload engagement, subscriber retention, and poll-driven interaction. Sub-skill of the Content Repurposing Engine. Use when user says \"youtube community\", \"community post\", \"youtube poll\", \"youtube tab\", or \"repurpose for youtube\".\n",
    "argument-hint": "[url-or-atoms]",
    "user-invokable": true
}

YouTube Community Post Generator

Generate text post, image concept, and poll from content atoms.

Inputs

You receive from the orchestrator:

  • Content atoms (typed and impact-rated)
  • Main argument, target audience, primary topic
  • Brand voice profile (5-dimension scores or override flag)
  • Flags: --brief (1 post only), --images (generate image prompts)
  • Source URL (if input was a YouTube video, reference it)

References

Load before generating:

  • references/platform-specs.md -- Community tab specs, poll limits, image sizes
  • references/hook-formulas.md -- question hooks, curiosity gap openers
  • references/voice-adaptation.md -- YouTube tone rules (casual, fan-oriented, interactive)

Platform Rules

Spec Value
Text limit 5,000 characters
Poll options Up to 5
Chars per option 65 (text polls), 36 (image polls)
Images 1080x1080 or 1280x1280, max 16MB, JPG/PNG/GIF/WEBP
Frequency 2-4 posts per week optimal
Best format Polls (2-3x engagement vs text posts)
Post types Text, image, poll, GIF

Core Purpose

YouTube Community posts serve a specific role: keeping subscribers engaged between video uploads. Every post should:

  • Feel like a direct conversation with the audience (not a broadcast)
  • Invite participation (vote, comment, share an opinion)
  • Build anticipation for upcoming content
  • Reinforce the creator's personality and niche authority

Output 1: Text Post

Write to youtube-community/post.md.

Post Structure

  1. Opening hook (first 1-2 lines)

    • Casual, conversational tone -- like talking to a friend
    • Use a question, behind-the-scenes insight, or teaser
    • Reference the source content naturally if the input was a YouTube URL
  2. Value body (2-4 paragraphs)

    • Draw from 2-3 atoms: insights, stats, or questions
    • Keep paragraphs short and scannable
    • Use contractions and casual language throughout
    • Match the channel's personality (detected from voice profile)
  3. Engagement close

    • End with a direct question or invitation to comment
    • "Drop your answer below" or "Tell me in the comments"
    • Avoid generic CTAs -- be specific to the content

Source Video Cross-Reference

If the input content was a YouTube video URL:

  • Reference the video naturally: "In my latest video, I covered..."
  • Do NOT just summarize the video -- add a new angle, ask for feedback, or share a behind-the-scenes take
  • Link back only if it adds value (Community posts can include links)

Post Tone

  • Casual and fan-oriented, like a creator talking to their community
  • First-person, personal, conversational
  • Emoji usage matches the channel personality (moderate by default)
  • Never formal, corporate, or scripted-sounding

Output 2: Image Concept

Write to youtube-community/image-concept.md.

Create a concept description for a shareable image post. This is NOT the image itself -- it is a detailed brief for creation via /banana or manual design.

Image Concept Structure

  1. Post text (1-3 sentences above the image)

    • Brief context that frames the image
    • Question or prompt that invites comments
  2. Image description

    • Dimensions: 1080x1080 (1:1) or 1280x1280
    • Subject: what the image depicts (quote card, infographic, meme, behind-the-scenes)
    • Text overlay: exact text to display on the image (if any)
    • Style: matches channel aesthetic
    • Color palette: suggest based on brand or content mood
  3. /banana prompt (if --images flag is set)

    • Full 5-component prompt: Subject, Action, Context, Composition, Style
    • Aspect ratio: 1:1
    • Filename suggestion

Image Types That Work

  • Quote cards with a key insight from the content
  • Data/stat highlights (one big number with context)
  • Behind-the-scenes or "making of" concept
  • Meme-style content that matches the niche
  • Infographic snippet (one section, not a full infographic)

Output 3: Poll

Write to youtube-community/poll.md.

Polls are the highest-engagement Community post format (2-3x vs text). Always generate one.

Spec Constraint
Options Up to 5
Chars per option 65 maximum
Format Text poll (image polls: 36 chars/option)

Poll Structure

  1. Context (1-2 sentences)

    • Frame the question with brief setup
    • Make it feel like you genuinely want to know the audience's opinion
  2. Question

    • Derived from the content's key debate, decision point, or prediction
    • Specific and relevant to the audience's experience
    • Conversational tone: "Quick question for you all..."
  3. Options (3-5 recommended)

    • Each represents a genuine position
    • Include one fun/unexpected option (e.g., "Show me the results" or a humorous take)
    • Order: most common answer first, wildcard last
  4. Follow-up plan

    • Note: suggest sharing results in a future video or Community post
    • Creates a content loop: poll -> results post -> discussion

Between-Upload Value

Community posts fill the gap between video uploads. Suggest a posting rhythm:

  • Day after upload: Poll related to the video's topic
  • Mid-week: Behind-the-scenes or teaser for next video
  • Weekend: Casual question or image post
  • Target: 2-4 Community posts per week

Output Format

# YouTube Community Post: [Topic]

[Full post text]

---
**Posting notes:** [frequency, cross-reference to source, engagement strategy]
**Source video:** [URL if applicable, "N/A" otherwise]

Brief Mode

If --brief is active, produce only:

  • 1 poll (highest engagement format)
  • Skip text post and image concept
内容再利用引擎,将视频、博客等素材转化为17+平台优化内容。支持原子化拆解、品牌语调适配、生成帖子及日历。
repurpose content repurpose turn into social media cross-platform content atomization repurpose blog repurpose video turn this into posts threads pinterest snapchat discord medium whatsapp telegram
skills/repurpose/SKILL.md
npx skills add AgriciDaniel/claude-repurpose --skill repurpose -g -y
SKILL.md
Frontmatter
{
    "name": "repurpose",
    "license": "MIT",
    "metadata": {
        "author": "AgriciDaniel",
        "version": "1.0.0",
        "category": "content"
    },
    "description": "Content Repurposing Engine. Transforms any content (YouTube videos, blog posts, podcasts, local files, pasted text) into platform-optimized outputs for Twitter\/X, Threads, LinkedIn, Instagram, TikTok, Pinterest, Snapchat, Facebook, YouTube Community, Skool, Discord, Reddit, Quora, Medium, WhatsApp Channels, Telegram, and email newsletters. Atomizes content into reusable pieces, adapts brand voice per platform, generates polls, image prompts (via \/banana), publishing calendars, and SEO metadata. Triggers on: \"repurpose\", \"content repurpose\", \"turn into social media\", \"cross-platform\", \"content atomization\", \"repurpose blog\", \"repurpose video\", \"turn this into posts\", \"threads\", \"pinterest\", \"snapchat\", \"discord\", \"medium\", \"whatsapp\", \"telegram\".\n",
    "argument-hint": "[url-or-file] [--platforms X,Y] [--voice casual|professional|witty] [--brief] [--images]",
    "user-invokable": true
}

Content Repurposing Engine

Transform any content into platform-optimized outputs across 17+ channels.

Quick Reference

Command Description
/repurpose <url-or-file> Full repurpose pipeline (all platforms)
/repurpose <input> --platforms twitter,linkedin Repurpose to specific platforms only
/repurpose <input> --voice casual Override brand voice (casual/professional/witty)
/repurpose <input> --brief Quick mode: 1 post per platform, no calendar
/repurpose <input> --images Generate image prompts (or /banana images if available)
/repurpose analyze <input> Atomize content only, no platform outputs
/repurpose calendar <input> Generate 7-day publishing calendar only

Step 1: Input Detection

Detect the input type and extract raw content accordingly.

Detection patterns (check in order):

Pattern Type Extraction Method
youtube\.com/watch|youtu\.be/|youtube\.com/shorts YouTube video Run scripts/extract_transcript.py <url>
https?:// (any other URL) Blog/article Run scripts/extract_article.py <url>
Path ending in .mp3, .wav, .m4a, .ogg, .flac Audio file Run scripts/transcribe_audio.py <path>
Path ending in .md, .txt, .pdf Local file Read file directly with the Read tool
No URL or file path detected Pasted text Use the inline text as-is

Extraction rules:

  • For YouTube: extract transcript, video title, channel name, description, and duration
  • For blog URLs: extract title, author, publication date, body text, and any embedded media descriptions
  • For audio: transcribe to text, note duration and any speaker labels
  • For local files: read full contents; for PDF use the Read tool with page ranges if large
  • For pasted text: use verbatim; ask the user for a title/topic if not obvious

If extraction fails, report the error clearly and ask the user to paste the content directly.

Step 2: Content Atomization

Break the extracted content into 5-15 reusable "atoms." Each atom is a self-contained content unit.

Atom types:

Type Description Example
stat A specific number, percentage, or data point "73% of marketers repurpose content"
quote A quotable sentence or phrase "Distribution is the new creation."
insight A non-obvious takeaway or lesson "Repurposing beats fresh creation 3:1 on ROI"
question A thought-provoking question from the content "What if you never had to write from scratch again?"
contrarian A bold or counterintuitive claim "Posting less actually grows your audience faster"
howto An actionable step or mini-tutorial "Step 1: Record a 10-min video. Step 2: Extract 8 clips."
analogy A comparison that makes the concept click "Repurposing is composting: old material feeds new growth"
casestudy A real example, result, or before/after "Gary Vee turns one keynote into 35M+ views across platforms"
prediction A forward-looking claim or trend "By 2027, 90% of content will be AI-assisted remixes"
tldr The single-sentence summary of the entire piece Always extract exactly one

Atomization rules:

  1. Extract between 5 and 15 atoms (aim for 8-12 for most content)
  2. Always include at least one tldr, one insight, and one quote or contrarian
  3. Label each atom with its type
  4. Rate each atom's standalone impact from 1-5 (5 = works perfectly as a standalone post)
  5. Identify the main argument, target audience, and primary topic
  6. Preserve the original author's voice in quoted atoms
  7. For longer content (>2000 words), aim for 12-15 atoms; for shorter, 5-8

Atomization output format:

## Content Atoms

**Main Argument:** [one sentence]
**Target Audience:** [who benefits from this content]
**Primary Topic:** [category/niche]

| # | Type | Atom | Impact |
|---|------|------|--------|
| 1 | tldr | ... | 5 |
| 2 | insight | ... | 4 |
| ... | ... | ... | ... |

Step 3: Voice Detection and Adaptation

Default behavior: Detect the brand voice from the source content. Analyze formality, humor level, directness, emotion, and jargon to infer the author's natural voice.

Override flags:

  • --voice casual — friendlier, more emoji, conversational, contractions
  • --voice professional — formal, data-driven, authoritative, measured
  • --voice witty — personality-forward, clever wordplay, punchy, unexpected angles

Core rule: The brand voice stays consistent across all platforms. Only the TONE adapts per platform. Load references/voice-adaptation.md for the full platform-tone matrix.

Step 4: Orchestration — Spawn 6 Parallel Agents

After atomization, spawn 6 subagents in parallel. Each agent receives:

  • The full list of content atoms (with types and impact ratings)
  • The main argument, target audience, and primary topic
  • The detected or overridden brand voice
  • The --brief flag status (if true, produce 1 post per platform instead of full sets)
  • The --images flag status

Agent 1: repurpose-social

Platforms: Twitter/X, Threads, LinkedIn, Facebook Receives: All atoms, voice profile, platform specs Produces:

  • Twitter: 1 standalone tweet + 1 thread (8-12 tweets) + 1 poll + image prompt
  • Threads: 1 thread (5-10 posts) + 3-5 standalone posts + 1 image post concept
  • LinkedIn: 1 text post + 1 carousel outline (8-10 slides) + 1 poll
  • Facebook: 1 text post + 1 question post + 1 poll Sub-skills invoked: repurpose-twitter, repurpose-threads, repurpose-linkedin, repurpose-facebook

Agent 2: repurpose-visual

Platforms: Instagram, TikTok, Pinterest, Snapchat, Quote cards, Image prompts Receives: All atoms (especially quotes, stats, insights), voice profile Produces:

  • Instagram: 1 carousel (7-10 slides with copy) + 1 reel script (30-60s) + caption + hashtags
  • TikTok: 1 video script (15-60s) + 1 carousel (2-10 slides) + 1 stitch/duet concept
  • Pinterest: 3-5 pin descriptions + 1 idea pin script (5-10 slides) + board suggestions
  • Snapchat: 1 story script (3-5 frames) + 1 Spotlight script (60s) + AR lens concept
  • Quote cards: 3-5 text overlays for image generation
  • Image prompts: hero image + carousel cover + 3 quote card prompts Sub-skills invoked: repurpose-instagram, repurpose-tiktok, repurpose-pinterest, repurpose-snapchat, repurpose-quotes

Agent 3: repurpose-longform

Platforms: Newsletter, Email sequence, Reddit, Quora Receives: All atoms, full original content reference, voice profile Produces:

  • Newsletter: subject line + preview text + 200-500 word body
  • Email sequence: 3-email drip (day 0, day 2, day 4) with subject lines and CTAs
  • Reddit: title + post body adapted to subreddit norms
  • Quora: 1 answer (300-1000 words) + 1 Space post + question suggestions Sub-skills invoked: repurpose-newsletter, repurpose-reddit, repurpose-quora

Agent 4: repurpose-community

Platforms: YouTube Community, Skool, Discord Receives: All atoms (especially questions, polls, insights), voice profile Produces:

  • YouTube Community: 1 text post + 1 poll (5 options) + 1 image post concept
  • Skool: 1 discussion post + 1 challenge/action post + 1 poll
  • Discord: 1 announcement post + 1 discussion thread prompt + 1 embed message Sub-skills invoked: repurpose-youtube, repurpose-skool, repurpose-discord

Agent 5: repurpose-seo

Platforms: Cross-platform SEO metadata Receives: All atoms, main argument, target audience, topic Produces:

  • Primary keywords (3-5) and secondary keywords (5-10)
  • Hashtag sets per platform
  • SEO title and meta description (for blog/newsletter)
  • Alt text suggestions for all generated images
  • Schema markup suggestions (Article, VideoObject, FAQPage) Sub-skills invoked: repurpose-seo

Agent 6: repurpose-broadcast

Platforms: WhatsApp Channels, Telegram Channels, Medium Receives: All atoms, full original content reference, voice profile Produces:

  • WhatsApp: 1 channel update (100-300 chars) + 1 poll + 1 content teaser
  • Telegram: 1 channel post (500-1000 chars) + 1 deep dive (1000-2000 chars) + 1 poll
  • Medium: 1 article (1500-3000 words) + title/subtitle + 5 tags + publication suggestions Sub-skills invoked: repurpose-whatsapp, repurpose-telegram, repurpose-medium

Platform filtering

If --platforms is specified, only spawn the agents that cover the requested platforms:

  • twitter, threads, linkedin, facebook → Agent 1
  • instagram, tiktok, pinterest, snapchat, quotes, images → Agent 2
  • newsletter, email, reddit, quora → Agent 3
  • youtube, skool, discord → Agent 4
  • seo → Agent 5
  • whatsapp, telegram, medium → Agent 6

If a single platform is requested, spawn only the relevant agent.

Step 5: Collect Outputs and Generate Summary

After all agents complete:

  1. Compile all outputs into the output directory structure (see below)
  2. Generate images — ALWAYS attempt image generation when /banana is available (do NOT wait for --images flag). If /banana is unavailable, save prompts to quotes/banana-prompts.md for manual use later
  3. Generate a summary table showing what was produced per platform
  4. Generate a 7-day publishing calendar (unless --brief was used)
  5. Generate HTML viewer — Run python3 scripts/generate_html.py <output-dir> to create index.html (dark-themed viewer with Copy buttons per content piece) and all-content.md (single consolidated file with all platform outputs)
  6. Report to user — Show summary and link to index.html for easy browsing and copying

Output Directory Structure

./repurposed/<YYYY-MM-DD_HHMMSS>/
  summary.md              # Overview of all outputs + publishing calendar
  atoms.md                # Content atomization results
  twitter/
    standalone-tweet.md
    thread.md
    poll.md
  linkedin/
    post.md
    carousel.md
    poll.md
  instagram/
    carousel.md
    reel-script.md
    caption.md
  threads/
    thread.md
    standalone-posts.md
    image-post.md
  facebook/
    post.md
    question.md
    poll.md
  pinterest/
    pins.md
    idea-pin.md
    boards.md
  snapchat/
    story-script.md
    spotlight-script.md
    ar-concept.md
  youtube-community/
    text-post.md
    poll.md
    image-post.md
  skool/
    discussion.md
    challenge.md
    poll.md
  discord/
    announcement.md
    thread-prompt.md
    embed.md
  tiktok/
    video-script.md
    carousel.md
    stitch-duet.md
  reddit/
    post.md
  quora/
    answer.md
    space-post.md
    questions.md
  newsletter/
    newsletter.md
    email-sequence.md
  medium/
    article.md
    tags-publications.md
    crosspost-note.md
  whatsapp/
    update.md
    poll.md
    teaser.md
  telegram/
    post.md
    deep-dive.md
    poll.md
  seo/
    keywords.md
    hashtags.md
    metadata.md
  quotes/
    quotes.md             # 5 quotable moments
    banana-prompts.md     # /banana prompts (always generated)
  images/                 # Generated images (auto when /banana available)
    quote-card-*.png
    carousel-cover.*
    hero.*
  seo-metadata.md         # Cross-platform SEO metadata
  all-content.md          # MANDATORY: Single consolidated markdown (all platforms)
  index.html              # MANDATORY: HTML viewer with Copy buttons per content piece
  calendar.md             # 7-day publishing calendar

MANDATORY OUTPUT: Every /repurpose run MUST produce all-content.md (single file with everything) and index.html (viewer with Copy buttons). Run python3 scripts/generate_html.py <output-dir> as the final step.

Reference Files

Load these references as needed during the pipeline:

File When to Load
references/platform-specs.md Always — before generating any platform output
references/hook-formulas.md When writing hooks, headlines, thread openers, email subjects
references/voice-adaptation.md After voice detection, before generating any output
references/repurposing-frameworks.md During atomization and calendar generation
references/poll-strategy.md When generating polls for any platform
references/image-sourcing.md When sourcing images (3-tier: website → stock → AI)
references/mistakes-to-avoid.md Quality check pass before finalizing outputs
references/engagement-benchmarks.md Calendar generation, engagement predictions

Sub-Skills

Sub-Skill Platform Key Output
repurpose-twitter Twitter/X Standalone tweet, thread, poll
repurpose-threads Threads Thread, standalone posts, image post
repurpose-linkedin LinkedIn Text post, carousel, poll
repurpose-instagram Instagram Carousel, reel script, caption
repurpose-tiktok TikTok Video script, carousel, stitch/duet concept
repurpose-pinterest Pinterest Pin descriptions, idea pin, board suggestions
repurpose-snapchat Snapchat Story script, Spotlight script, AR concept
repurpose-facebook Facebook Post, question, poll
repurpose-youtube YouTube Community Text post, poll, image concept
repurpose-skool Skool Discussion, challenge, poll
repurpose-discord Discord Announcement, thread prompt, embed
repurpose-reddit Reddit Subreddit-adapted post
repurpose-quora Quora Answer, Space post, question suggestions
repurpose-medium Medium Article, tags/publications, crosspost note
repurpose-whatsapp WhatsApp Channel update, poll, teaser
repurpose-telegram Telegram Channel post, deep dive, poll
repurpose-newsletter Email Newsletter, 3-email drip
repurpose-quotes Visual Quote cards, text overlays
repurpose-seo Cross-platform Keywords, hashtags, metadata
repurpose-calendar Scheduling 7-day publishing calendar

Image Sourcing Pipeline — 3-Tier System

Images are sourced automatically for every platform. The pipeline follows a 3-tier priority chain.

Tier 1: Website Images (if input is a URL)

When the input is a blog post or article URL, extract_article.py extracts images from the page.

  • Use scripts/fetch_images.py --article-images to filter: skip logos, icons, avatars, ads, SVGs, < 400px
  • Rank by keyword overlap with content atoms
  • These are the MOST relevant — they came from the source content itself

Tier 2: Stock Photos (Pixabay → Unsplash → Pexels)

Search for topic-relevant images via WebSearch:

  • site:pixabay.com [topic keywords] wide professional (preferred, no attribution required)
  • site:unsplash.com [topic keywords] professional (resize params supported)
  • site:pexels.com [topic keywords] high quality (fallback)
  • Extract direct CDN URLs from results
  • Verify each URL with HEAD request before using
  • Target: 3-5 relevant images

Tier 3: AI-Generated (Gemini via /banana)

  • ALWAYS for quote cards (text overlay requires custom design)
  • ALWAYS for carousel covers with title text
  • FALLBACK when Tiers 1-2 produce < 3 suitable images
  • Uses 6-Component Brief: Subject → Action → Context → Composition → Lighting → Style
  • Load references/image-sourcing.md for templates and platform dimensions

Execution Order

  1. Check if input URL has images → extract and filter (Tier 1)
  2. Generate stock photo queries → use WebSearch to find Pixabay/Unsplash/Pexels images (Tier 2)
  3. Count total images found. If < 3 usable, generate more via /banana (Tier 3)
  4. ALWAYS generate 5 quote cards via /banana (or save prompts if unavailable)
  5. Save all images to ./repurposed/<timestamp>/images/
  6. Include image URLs/paths in platform output files

/banana Detection

Check for gemini_generate_image MCP tool OR ~/.claude/skills/banana/SKILL.md OR GOOGLE_API_KEY env var.

  • Available: generate images automatically
  • Not available: save all prompts to quotes/banana-prompts.md for manual generation later

Error Handling

Error Resolution
YouTube transcript unavailable Ask user to paste transcript or provide alternate URL
Blog URL returns 403/404 Ask user to paste article text directly
Audio transcription fails Check file format; suggest converting to .wav or .mp3
Extraction script not found Fall back to WebFetch for URLs; Read for local files
Platform not recognized Show supported platforms list; suggest closest match
Content too short (<100 words) Warn user; reduce atom target to 3-5; skip thread/carousel
Content too long (>10,000 words) Chunk into sections; atomize each; merge top atoms
/banana not available Generate prompts only; note in summary
Output directory write fails Fall back to printing all outputs inline
Voice detection ambiguous Default to professional; note in summary

Subcommand: analyze

Usage: /repurpose analyze <url-or-file>

Runs only Steps 1-2 (input detection + atomization). Does NOT generate platform outputs.

Output:

  • Content atoms table with types and impact ratings
  • Main argument, target audience, primary topic
  • Recommended platforms based on content type
  • Suggested voice profile
  • Atom count and quality assessment

Use this to preview what the engine extracts before committing to full repurposing.

Subcommand: calendar

Usage: /repurpose calendar <url-or-file>

Runs Steps 1-2 (extraction + atomization), then generates a 7-day publishing calendar.

Calendar rules:

  • Monday: Long-form (newsletter or Reddit post)
  • Tuesday: Thread (Twitter) + Carousel (LinkedIn)
  • Wednesday: Quote cards + Instagram carousel
  • Thursday: Polls across all platforms
  • Friday: Newsletter send or email drip start
  • Saturday: YouTube Community + Skool posts
  • Sunday: Stories + light engagement posts (Facebook question, Skool discussion)

Calendar output includes:

  • Day-by-day schedule with platform, content type, and which atom(s) to use
  • Suggested posting times per platform (from platform-specs.md)
  • Dependencies (e.g., "Tuesday carousel requires Monday's images")
  • Total pieces count

Output: Saved to ./repurposed/<timestamp>/calendar.md and printed to console.

Execution Flow Summary

User input
    |
    v
[1] Detect input type (URL/file/text)
    |
    v
[2] Extract raw content (script or Read)
    |
    v
[3] Atomize into 5-15 labeled atoms
    |
    v
[4] Detect or apply voice profile
    |
    v
[5] Spawn 6 agents in parallel:
    |-- repurpose-social (Twitter + Threads + LinkedIn + Facebook)
    |-- repurpose-visual (Instagram + TikTok + Pinterest + Snapchat + Quotes)
    |-- repurpose-longform (Newsletter + Email + Reddit + Quora)
    |-- repurpose-community (YouTube Community + Skool + Discord)
    |-- repurpose-seo (Keywords + Hashtags + Metadata)
    |-- repurpose-broadcast (WhatsApp + Telegram + Medium)
    |
    v
[6] Collect all outputs → write to ./repurposed/<timestamp>/
    |
    v
[7] Generate summary table + 7-day calendar
    |
    v
[8] Report results to user

- 위키
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-07-06 02:54
浙ICP备14020137号-1 $방문자$