| name | content-repurposer |
| description | Take one piece of long-form content (blog post, podcast, talk, article, newsletter) and turn it into a multi-channel asset pack using the STEPPS framework (Jonah Berger, Contagious) to make each derivative asset more shareable. Use when the user says "repurpose this", "turn this into LinkedIn/Twitter/etc", "atomize this", "break this down for social", "create derivative content from X", "make a content pack from this", or wants to maximize output from one input. Each channel is mapped to its strongest STEPPS element. Orchestrates linkedin-post, content-writer, and other skills. For writing the original anchor piece, see thought-leadership-writer or newsletter-writer. For scheduling the derivatives, see social-calendar. |
| metadata | {"grounded_in":["Contagious - Berger (STEPPS)"],"reads":["knowledge/brand/voice.md","knowledge/icp/personas.md","knowledge/content-library/"],"writes":["output/repurposed/"]} |
content-repurposer
Orchestrator skill. One source piece becomes a coordinated asset pack across channels. Each output is fully native to its channel and optimized for shareability using STEPPS. Not a copy-paste with different word counts.
When to use
- "Repurpose this blog post"
- "Turn this article into LinkedIn / Twitter / email"
- "Atomize my podcast episode"
- "Make a content pack from this newsletter"
- "Break this talk into social posts"
Inputs needed
- Source: file path, URL, or pasted text
- Source type: blog, podcast transcript, conference talk, newsletter, video script, internal doc
- Channels to produce for: pick from list (default: all)
- Author voice: founder, CMO, company (default: company)
Channels this skill produces
| Output | Format | Length | Primary STEPPS element | Skill it calls |
|---|
| LinkedIn post | text | 80-220 words | Social Currency | linkedin-post |
| LinkedIn carousel outline | slide-by-slide | 6-10 slides | Practical Value + Social Currency | inline |
| Twitter/X thread | numbered tweets | 7-12 tweets | Practical Value | inline |
| Substack note | text | 3-5 sentences | Stories + Emotion | inline |
| Email teaser | subject + body | 80-150 words | Triggers + Emotion | content-writer |
| Reddit version (relevant subs) | text + subreddit suggestions | 200-400 words | Practical Value | inline |
| Quote graphic suggestions | pull quotes | 3-5 quotes | Emotion + Social Currency | inline |
| YouTube short script | spoken | 45-60 seconds | Stories + Emotion | inline |
| SEO snippet variant | optimized intro | 150 words | Practical Value | inline |
Framework: STEPPS (Jonah Berger, Contagious: Why Things Catch On)
Berger's argument in Contagious is that virality is a property of the content, not of the person sharing it. Six characteristics predict whether something gets passed on, and they are designable. That is why this skill scores the source before atomising it: if the source has none of the six, nine derivative assets inherit nothing, and you have produced nine posts that will not travel.
The trap Contagious is most often misread into: treating Emotion as "make it emotional". Berger's finding is narrower and more useful. High-arousal emotions drive sharing (awe, anger, anxiety, excitement, amusement). Low-arousal emotions suppress it (contentment, sadness), even when they are strongly felt. A warm, satisfying, gently positive post is a low-arousal post, and it will not move.
Six reasons things spread. Run this on the source piece before producing any assets.
| Element | What it means | Question to ask |
|---|
| S - Social Currency | Does sharing this make me look good, smart, or in-the-know? | Would someone share this to show off? |
| T - Triggers | What everyday cue will remind people of this idea? | What common situation or object does this connect to? |
| E - Emotion | High-arousal emotions drive sharing: awe, excitement, anxiety, anger. Low-arousal (contentment, sadness) do not. | Does this make someone feel something intensely? |
| P - Public | Can people see others engaging with this? Visibility drives imitation. | Is there a social proof layer? |
| P - Practical Value | Useful = shareable. "News you can use." | Can someone apply this today? |
| S - Stories | Information travels inside a narrative. The story is the Trojan horse. | Is there a narrative with tension and resolution? |
A score of 4+ out of 6 indicates high virality potential. Below 3, flag it.
What to do with the score
The score is a routing decision, not a grade. Act on it:
| Total /18 | Verdict | Action |
|---|
| 14-18 | Strong source | Produce the full pack. Lead with the two highest-scoring elements |
| 10-13 | Workable | Produce the pack, but drop the channels whose target element scored 1. A Twitter thread built on a Practical Value score of 1 is filler |
| 7-9 | Weak | Stop and say so. Name the two weakest elements and what would fix them. Offer to produce a reduced pack of three assets rather than nine |
| Below 7 | Not repurposable | Stop. The source has no spine to atomise. Nine assets from it produce nine weak posts and burn the channel's attention. Recommend rewriting the source first, or repurposing a different piece |
Never raise a low score by adding material the source does not contain. That is the failure mode this table exists to prevent: an agent that finds Emotion scoring 1, invents a dramatic anecdote, and ships a story the author never told under the author's name.
Which element to fix first when the score is low, in priority order: Practical Value, then Stories, then Social Currency. Practical Value is the only one that can usually be added honestly, by making the existing advice more specific. Emotion and Public are the hardest to add without inventing, so treat a low score on those as a fact about the source rather than a task.
Process
-
Load context. Read knowledge/brand/voice.md and the relevant persona from knowledge/icp/personas.md before touching the source. Nine assets in the wrong voice is nine rewrites. If knowledge/brand/voice.md is missing, stop: "I need voice context. Run /brand-context first." Also check knowledge/content-library/ for whether this source has already been repurposed, so the pack does not duplicate live posts.
-
Load source. If it's a file, read it. If it's a URL, use WebFetch. If pasted, use the chat content. Confirm with the user: "I read X. Source has N words and covers
. Proceed?"
Stop conditions on the source itself:
- Not the user's to republish. A third-party article, a client's content, or a talk recorded at someone else's event. Confirm the right to reuse before producing anything
- Contains customer names or figures whose consent covered only the original placement. Consent for a blog post is not consent for a paid carousel. Flag each one and ask
- A transcript with speakers other than the author. Their words are quotes, not raw material. Attribute or cut
-
Run STEPPS scoring on the source piece. Score each element 1-3 (1 = weak, 2 = present, 3 = strong). Show the table to the user before producing assets.
STEPPS Score - <source title>
| Element | Score (1-3) | Evidence from source | Notes |
|---|---|---|---|
| Social Currency | ? | <quote or example> | Does this make the sharer look good? |
| Triggers | ? | <quote or example> | What everyday cue connects to this? |
| Emotion | ? | <quote or example> | Awe, anxiety, excitement, anger? |
| Public | ? | <quote or example> | Visibility layer present? |
| Practical Value | ? | <quote or example> | Actionable, specific, saves time? |
| Stories | ? | <quote or example> | Narrative with tension + resolution? |
Total: ?/18
Top 2 elements: <element>, <element>
Weakest element: <element>
If the total is below 9/18, flag: "This piece scores low on shareable elements. Here is what would help: [specific suggestions per weak element]." Offer to strengthen before repurposing.
-
Extract the spine. Identify:
- The one sentence (the thesis or core insight)
- 3-5 supporting points (the substructure)
- The killer line (the most quotable sentence)
- The data points (numbers, examples)
- (what the source disagrees with)
Channel-specific rules
LinkedIn post (Social Currency)
- Open with an insight, not an announcement. Sharers want to look smart.
- The hook should be a claim someone would disagree with at first, then agree with after reading.
- End with a takeaway the reader can quote in their next meeting.
LinkedIn carousel (Practical Value + Social Currency)
- Slide 1: hook (8-12 words, big text)
- Slide 2: setup (the problem or context)
- Slides 3-7: one point per slide
- Last slide: CTA + tag line
- Output: structured outline ready for design ("Slide 3: Title 'X', body bullets, visual: graph showing Y")
Twitter/X thread (Practical Value)
- Tweet 1: hook only, no thread emoji
- Tweets 2-N: one actionable idea per tweet, max 280 chars each
- No "1/", use natural numbering only if it adds clarity
- Last tweet: payoff and CTA (link, follow, save)
- Practical Value = specific, actionable, saves time. Not opinion. Not commentary.
Substack note (Stories + Emotion)
- 3-5 sentences max
- Lead with a moment, not a point. Start mid-scene.
- One contrarian or counterintuitive claim
- The emotional payoff should land in the last sentence
- Link to full piece at the end
Email teaser (Triggers + Emotion)
- Subject line should connect to a recurring situation the reader faces (the trigger)
- Body opens with the emotional spike, not the content summary
- CTA is one click, zero friction
Reddit (Practical Value)
- Suggest 2-3 specific subreddits
- Adapt voice: less promotional, more conversational
- Lead with value, not the link
- Include "(I wrote about this in more depth here)" only at the end
- Flag any community rules to check (no self-promo, etc.)
YouTube short (Stories + Emotion)
- 45-60 seconds spoken (~120-150 words)
- Hook in 3 seconds - start with tension, not context
- One insight, one example, one takeaway
- Emotional arc: problem felt, resolution shown
- Visual cue suggestions in [brackets]
Quote graphics (Emotion + Social Currency)
- 3-5 pull quotes
- Each under 140 chars
- Each works without context
- High-arousal only: awe, anxiety, excitement. Cut contentment quotes.
- Specify which is best for which platform (LinkedIn carousel cover vs Instagram quote vs Twitter image)
Rules
- Never paraphrase the source word for word. Each asset must add framing or context appropriate to its channel.
- Never produce identical content with different word counts. A 220-word LinkedIn post is structurally different from a 220-word Substack note.
- The source's killer line should appear in at least one derivative, often the LinkedIn post or a quote graphic.
- If the source has no killer line, skip the quote graphics. Never write a quote and
attribute it to the source's author. A quote graphic ships with a name and often a face on it,
so an authored line is a fabricated attribution, not a draft. Offering the user the choice does
not fix it, because they say yes and the graphic ships.
- Every number, claim and quote in a derivative must already appear in the source. If a
derivative needs a fact the source does not contain, cut the fact, not the sourcing rule.
- Each asset file must include its STEPPS target as a comment at the top.
- If the STEPPS score is below 9/18, address it with the user before producing 9 assets from weak source material.
Quick Reference: STEPPS
| Element | Channel fit | What to amplify |
|---|
| Social Currency | LinkedIn post, quote graphics | Make the sharer look smart or ahead of the curve |
| Triggers | Email teaser, carousel | Connect to a cue the reader encounters regularly |
| Emotion (high-arousal only) | Quote graphics, YouTube short, Substack note | Awe, anxiety, excitement, anger - not contentment |
| Public | Carousel, thread | Add visible social proof or community signal |
| Practical Value | Thread, Reddit, carousel, SEO snippet | Specific, actionable, saves time |
| Stories | Substack note, YouTube short | Tension + resolution. Start mid-scene. |
Platform figures are not facts
Any cadence, character count, best-day, format spec or benchmark in this skill is a starting
default recorded at authoring time, not a published platform rule. Two obligations:
- Verify current specs in the platform itself before shipping anything that depends on them.
- This account's own historical data always wins. Where
knowledge/learnings.md or the
team's analytics contradict a default here, follow the data and say so in the output.
Never present a default from this file to a client as though the platform published it. That is
the claim their in-house specialist corrects in the meeting, and the correction discredits
everything else in the document.
Never invent
Repurposing has a specific fabrication risk that original writing does not: the derivative is published as if it were the source, so anything added travels with the author's name on it and the source's authority behind it.
- Never invent a statistic, a customer name, a date, a result, or an example to make a derivative land harder. If the source does not contain it, cut the beat, not the sourcing rule. Nine assets is nine chances to add one small thing that was never true.
- Never invent a quote. A quote graphic ships with a name and often a face. An authored line is a fabricated attribution regardless of how well it captures the source's meaning.
- Never sharpen a hedge. If the source says "roughly a third" or "we think", the derivative says the same. Tightening a hedged claim into a hard number is the most common way a true source becomes a false post.
- Never invent the source's opinion on something it does not discuss to fill a channel that wants a contrarian take. Mark it
[NEEDS INPUT: does the author hold a view on <X>?] and ask.
- If a channel cannot be produced honestly from this source, produce fewer assets. The pack size is not a target.
What this skill cannot know
These are limitations of the skill. Anything below that reaches the output must be labelled [UNVERIFIED] there.
- Current platform specs, character limits, image dimensions and format support. Everything in this file is a starting default from authoring time.
- Current community rules for a suggested subreddit or forum. Self-promotion rules, flair requirements and posting frequency limits are set per community and change. Read the sidebar and recent moderator posts before posting, and treat any subreddit suggestion here as a candidate to verify, not a recommendation.
- Whether the source's claims are still true. A post repurposed a year later carries last year's numbers into this year's feed.
- Whether the people, customers or partners named in the source consented to appear in these placements. Consent is usually scoped to the original piece.
- Whether the derivative duplicates something already published. Check
knowledge/content-library/ and the live channels.
Related skills
/brand-context first, if knowledge/brand/voice.md does not exist yet
/linkedin-post for the LinkedIn derivative, which this skill calls rather than duplicating
/social-calendar for scheduling the pack, so nine assets do not all ship in one week
/thought-leadership-writer or /newsletter-writer when the STEPPS score says the source itself needs strengthening before it is worth atomising
/seo-article-writer when the source should become a search-targeted article rather than social derivatives
/case-study-writer when the source is a customer story, because consent and approval rules apply that this skill does not enforce
/content-writer for the email teaser and any one-off asset outside the standard pack
/copy-review for a pass over the finished pack before it is scheduled
/retro after the pack has run, to record which derivative actually travelled