Skill: charlie-morrison/content-repurposer-tool (version 1.0.0)

--- name: content-repurposer description: Repurpose long-form content (blog posts, articles, newsletters, YouTube transcripts) into platform-optimized social media posts, Twitter/X threads, LinkedIn posts, email newsletter snippets, and short-form summaries. Use when asked to repurpose content, turn an article into social posts, create a thread from a blog post, adapt content for different platforms, generate social media versions of existing content, or create multi-platform content from a single source. Triggers on "repurpose", "turn this into tweets", "make social posts from", "create a thread", "adapt for LinkedIn", "newsletter snippet", "content remix". --- # Content Repurposer Transform any long-form content into platform-optimized outputs. Feed it a URL, text, or document — get back ready-to-post content for multiple platforms. ## Workflow ### 1. Extract Source Content Determine the source type and extract content: - **URL** → Use `web_fetch` to extract readable text - **YouTube URL** → Use youtube-transcript skill if available, otherwise `web_fetch` - **Pasted text** → Use directly - **File path** → Read the file (supports .md, .txt, .html, .pdf) If extraction fails, inform the user and suggest alternatives. ### 2. Analyze Content Before generating outputs, analyze the source: 1. **Core message** — What is the single main takeaway? 2. **Key points** — List 3-5 supporting points or insights 3. **Quotable lines** — Extract 2-3 memorable phrases or statistics 4. **Target audience** — Infer from tone, vocabulary, and subject matter 5. **Content type** — Tutorial, opinion, news, case study, announcement, story ### 3. Generate Platform Outputs Generate requested formats (default: all). Each format follows platform-specific rules from `references/platform-guides.md`. **Available formats:** - **Twitter/X thread** — 3-10 tweets, hook-first, one idea per tweet - **Twitter/X single post** — Standalone tweet, max 280 chars - **LinkedIn post** — Professional tone, 1300 chars max, uses line breaks for readability - **Instagram caption** — Casual tone, hashtags, emoji-friendly, CTA at end - **Email newsletter snippet** — 2-3 paragraphs, subject line included - **Short summary** — 2-3 sentences, platform-agnostic - **Reddit post** — Title + body, informative tone, no self-promotion feel - **Hacker News** — Title only (concise, factual), optional top-level comment ### 4. Apply Tone & Style If user specifies a tone or brand voice, apply it. Otherwise, match the source's tone but optimize for each platform's conventions. Tone options: professional, casual, witty, authoritative, friendly, provocative, educational. ### 5. Output Format Present outputs in clear sections: ``` ## Source Analysis - Core message: ... - Key points: ... ## Twitter/X Thread (N tweets) 🧵 1/ [hook tweet] 2/ [supporting point] ... ## LinkedIn Post [post content] ## Email Newsletter Subject: ... [body] ``` ## Customization Options Users can specify: - **Platforms** — "just Twitter and LinkedIn" - **Tone** — "make it casual" / "keep it professional" - **Audience** — "targeting developers" / "for marketing managers" - **Length** — "keep the thread short, 3-4 tweets max" - **CTA** — "include a link to [URL]" / "ask them to subscribe" - **Hashtags** — "include hashtags" / "no hashtags" - **Emoji** — "use emojis" / "no emojis" - **Language** — generate in specified language ## Platform Guides For detailed platform-specific formatting rules, character limits, and best practices, see `references/platform-guides.md`. ## Tips - When repurposing tutorials: focus on the "aha moment" or key insight, not the step-by-step - When repurposing news: lead with impact/consequence, not the event itself - When repurposing case studies: lead with the result, then the method - For threads: each tweet should work standalone — readers may see any single tweet - Always adapt vocabulary and jargon level to the target platform's audience

path: STATUS.md
content: # Content Repurposer — Status

**Status:** Built, validated, packaged. Ready for publishing.
**Version:** 1.0.0
**Price:** $69

## Next Steps
- [x] Test with real content (blog post URL, YouTube video) — validated workflow
- [ ] Publish to ClawHub (after April 10 — GitHub account age requirement)
- [ ] Create free version (Twitter + LinkedIn only) for freemium funnel


path: log.md
content: # Content Repurposer — Log

## 2026-03-26

### Done
- Created skill with init_skill.py
- Wrote SKILL.md with full workflow: extract → analyze → generate → style → output
- Wrote references/platform-guides.md covering Twitter/X, LinkedIn, Instagram, Email, Reddit, HN
- Validated with quick_validate.py — passed
- Packaged to dist/content-repurposer.skill
- Installed locally for testing

### Decisions
- Task-based structure with clear workflow steps
- Supports 8 output formats (Twitter single, thread, LinkedIn, Instagram, Email, Reddit, HN, summary)
- Includes anti-AI-slop language guidance in platform guides
- Price: $69 (mid-range, reflects broad utility)
- Plan: free version with limited platforms → paid with all platforms + customization

### Blockers
- None — skill is complete and ready for publishing


path: references/platform-guides.md
content: # Platform-Specific Formatting Guides

## Twitter/X

### Single Post
- **Max:** 280 characters (links count ~23 chars)
- **Hook first:** Lead with the most compelling claim or stat
- **No fluff:** Every word earns its place
- **CTA patterns:** "Bookmark this", "RT if you agree", "What do you think?"

### Thread
- **Format:** Number tweets: "1/", "2/", etc. First tweet gets 🧵 emoji
- **Hook tweet (1/):** Must standalone — it's what gets engagement. Use a bold claim, surprising stat, or provocative question
- **One idea per tweet:** Don't cram. Break naturally
- **Last tweet:** Recap or CTA ("Follow for more", link, ask a question)
- **Length:** 3-10 tweets. 5-7 is the sweet spot
- **Spacing:** Use line breaks between ideas within a tweet for readability
- **No hashtags in threads** unless specifically requested

### Style Notes
- Contractions are fine (don't, it's, you're)
- Numbers > words for stats ("3x faster" not "three times faster")
- Short sentences hit harder
- Em dashes — great for emphasis

## LinkedIn

### Post
- **Max:** 3,000 characters (but aim for 1,000-1,500 for engagement)
- **Hook:** First 2 lines visible before "see more" — make them count
- **Structure:** Short paragraphs (1-2 sentences). Heavy use of line breaks
- **Tone:** Professional but human. Storytelling works well
- **Emoji:** Sparingly — bullet points (→, •) are acceptable
- **Hashtags:** 3-5 at the bottom, relevant to industry
- **CTA:** "Agree? Disagree?", "What's your experience?", "Share this if..."
- **Pattern that works:**
  ```
  [Bold hook statement]

  [Context/story — 2-3 short paragraphs]

  [Key insight or lesson]

  [CTA question]

  #relevant #hashtags
  ```

## Instagram

### Caption
- **Max:** 2,200 characters
- **First line:** Hook (visible in feed before "...more")
- **Tone:** Casual, relatable, personal
- **Emoji:** Yes, but don't overdo it. 1-2 per paragraph
- **Hashtags:** 5-15, mix of popular and niche. Can go in caption or first comment
- **CTA:** "Save this for later 📌", "Tag someone who needs this", "Link in bio"
- **Line breaks:** Use them generously for readability
- **Stories vs Posts:** Captions here are for feed posts

## Email Newsletter

### Format
- **Subject line:** 6-10 words. Specific > vague. Numbers and questions work well
- **Preview text:** First 40-90 chars after subject — treat as second headline
- **Body structure:**
  - Opening hook (1-2 sentences — why should they care?)
  - Key content (2-3 paragraphs, scannable)
  - CTA (clear, single action)
- **Tone:** Conversational, as if writing to one person
- **Links:** Descriptive anchor text ("Read the full guide" not "Click here")
- **Length:** 200-400 words for snippets. Respect inbox time

## Reddit

### Post
- **Title:** Descriptive, not clickbaity. r/subreddit conventions matter
- **Body:** Informative, add value first. Self-promotion = downvotes
- **Tone:** Authentic, not salesy. "I found this interesting" > "Check out our amazing..."
- **Format:** Markdown supported. Use headers, lists, bold for scannability
- **TL;DR:** Include for longer posts

## Hacker News

### Submission
- **Title:** Factual, concise. No emoji, no ALL CAPS, no clickbait
- **Pattern:** "[Thing]: [what it does/why it matters]" or "[Show HN]: [description]"
- **Comment:** If posting your own content, add a substantive first comment explaining context
- **Tone:** Technical, understated. Let the content speak

## General Rules (All Platforms)

1. **Never start with "I"** on Twitter threads — feels self-centered
2. **Adapt formality:** Twitter < Instagram < LinkedIn < Email < HN
3. **One CTA per output** — multiple CTAs = no action
4. **Numbers outperform words** on every platform
5. **Questions drive engagement** — use them as hooks or closers
6. **Avoid AI-sounding language:** "delve", "landscape", "in today's", "here's the thing", "game-changer", "let's dive in"


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)