# Repurpose Twitter

> 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".

- Skill: `agricidaniel/repurpose-twitter` (Agent Skill)
- Install (CLI): `npx skillmds@latest add agricidaniel/repurpose-twitter`
- Raw SKILL.md: https://api.skillmd.com/api/skills/agricidaniel/repurpose-twitter/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: Agrici Daniel (https://skillmd.com/u/agricidaniel)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/agricidaniel/repurpose-twitter

---


# 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:

```markdown
# 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

