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)
- The contrarian angle (what the source disagrees with)
- The narrative thread (the story inside the content, if any)
Show this to the user before producing assets. Get confirmation.
Map each asset to its STEPPS element. Before writing, confirm the STEPPS target for each channel:
Asset STEPPS Map
LinkedIn post → Social Currency (makes sharer look insightful)
LinkedIn carousel → Practical Value + Social Currency (actionable + impressive)
Twitter/X thread → Practical Value (specific, step-by-step, saves time)
Substack note → Stories + Emotion (narrative hook, emotional pull)
Email teaser → Triggers + Emotion (tap a recurring cue + emotional spike)
Reddit post → Practical Value (genuine help, no promo feel)
Quote graphics → Emotion + Social Currency (striking + shareable identity signal)
YouTube short → Stories + Emotion (narrative, visual, emotional arc)
SEO snippet → Practical Value (answers question directly, useful)
Produce each channel asset. For each one, include a one-line STEPPS note at the top of the file:
<!-- STEPPS target: Social Currency - this post is designed to make the sharer
look ahead of the curve on [topic]. The hook uses [specific element] to signal
insider knowledge. -->
Each asset must be:
- Native to the channel (not a copy-paste with different word count)
- Stand-alone valuable (works without the source)
- Optimized for its primary STEPPS element (named explicitly)
- Linked back to the source if appropriate (CTA at the end)
Save all outputs as separate files in output/repurposed/<DD-MM-YYYY>-<source-slug>/:
output/repurposed/25-04-2026-thoughts-on-ai-pm/
├── linkedin-post.md
├── linkedin-carousel.md
├── twitter-thread.md
├── substack-note.md
├── email-teaser.md
├── reddit-post.md
├── quote-graphics.md
├── youtube-short.md
└── README.md
Generate the README.md for the folder summarizing:
- Source link or path
- STEPPS score table
- Spine (one sentence + 3 points)
- Which STEPPS element each asset targets
- Whether the pack covers at least 4 of 6 STEPPS elements
- Where each asset is meant to be published
- Suggested publishing sequence and cadence
Self-check. Every item is checkable against the saved files. Name the file and line, or the item fails.
- Each asset file opens with its
STEPPS target: comment, and the named element scored 2 or 3 on the source. An asset targeting an element that scored 1 is unsupported by the source
- The asset pack covers at least 4 of 6 STEPPS elements. Show the coverage table
- Every number, name, quote, date and claim in every derivative appears verbatim or in equivalent form in the source. Grep each derivative's numbers against the source text and list the matches
- No derivative contains a quote attributed to the author that is not in the source. If the source has no quotable line, the quote-graphics file says so and is empty
- No two derivatives share their opening sentence, and no derivative is the source's paragraph with words swapped. Compare the first 15 words of each
- Every derivative stands alone: read each one with the source closed and confirm it makes sense
- Every asset is inside its stated length, with the count written in the file
- Every claim about a platform spec in the pack is labelled
[UNVERIFIED default] or sourced to the platform's current docs
- Voice matches
knowledge/brand/voice.md. Name two specific voice traits and where each appears
STEPPS coverage check. The asset pack as a whole must cover at least 4 of 6 STEPPS elements. If it doesn't, name which are missing and suggest one asset type that would fill the gap.
STEPPS Coverage Check
Social Currency - covered by LinkedIn post
Triggers - covered by email teaser
Emotion - covered by quote graphics, YouTube short
Public - NOT COVERED (suggest: add a screenshot-friendly stat for the carousel)
Practical Value - covered by Twitter thread, carousel, Reddit post
Stories - covered by Substack note, YouTube short
Coverage: 5/6 - PASS
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
1---2name: content-repurposer3description: 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.4---56# content-repurposer78Orchestrator 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.910## When to use1112- "Repurpose this blog post"13- "Turn this article into LinkedIn / Twitter / email"14- "Atomize my podcast episode"15- "Make a content pack from this newsletter"16- "Break this talk into social posts"1718## Inputs needed1920- **Source**: file path, URL, or pasted text21- **Source type**: blog, podcast transcript, conference talk, newsletter, video script, internal doc22- **Channels to produce for**: pick from list (default: all)23- **Author voice**: founder, CMO, company (default: company)2425## Channels this skill produces2627| Output | Format | Length | Primary STEPPS element | Skill it calls |28|---|---|---|---|---|29| LinkedIn post | text | 80-220 words | Social Currency | linkedin-post |30| LinkedIn carousel outline | slide-by-slide | 6-10 slides | Practical Value + Social Currency | inline |31| Twitter/X thread | numbered tweets | 7-12 tweets | Practical Value | inline |32| Substack note | text | 3-5 sentences | Stories + Emotion | inline |33| Email teaser | subject + body | 80-150 words | Triggers + Emotion | content-writer |34| Reddit version (relevant subs) | text + subreddit suggestions | 200-400 words | Practical Value | inline |35| Quote graphic suggestions | pull quotes | 3-5 quotes | Emotion + Social Currency | inline |36| YouTube short script | spoken | 45-60 seconds | Stories + Emotion | inline |37| SEO snippet variant | optimized intro | 150 words | Practical Value | inline |3839## Framework: STEPPS (Jonah Berger, *Contagious: Why Things Catch On*)4041Berger'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.4243The 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.4445Six reasons things spread. Run this on the source piece before producing any assets.4647| Element | What it means | Question to ask |48|---|---|---|49| **S - Social Currency** | Does sharing this make me look good, smart, or in-the-know? | Would someone share this to show off? |50| **T - Triggers** | What everyday cue will remind people of this idea? | What common situation or object does this connect to? |51| **E - Emotion** | High-arousal emotions drive sharing: awe, excitement, anxiety, anger. Low-arousal (contentment, sadness) do not. | Does this make someone feel something intensely? |52| **P - Public** | Can people see others engaging with this? Visibility drives imitation. | Is there a social proof layer? |53| **P - Practical Value** | Useful = shareable. "News you can use." | Can someone apply this today? |54| **S - Stories** | Information travels inside a narrative. The story is the Trojan horse. | Is there a narrative with tension and resolution? |5556A score of 4+ out of 6 indicates high virality potential. Below 3, flag it.5758### What to do with the score5960The score is a routing decision, not a grade. Act on it:6162| Total /18 | Verdict | Action |63|---|---|---|64| 14-18 | Strong source | Produce the full pack. Lead with the two highest-scoring elements |65| 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 |66| 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 |67| 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 |6869**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.7071**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.7273## Process74750. **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.76771. **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 <main themes>. Proceed?"7879 Stop conditions on the source itself:80 - **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 anything81 - **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 ask82 - **A transcript with speakers other than the author.** Their words are quotes, not raw material. Attribute or cut83842. **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.8586 ```87 STEPPS Score - <source title>8889 | Element | Score (1-3) | Evidence from source | Notes |90 |---|---|---|---|91 | Social Currency | ? | <quote or example> | Does this make the sharer look good? |92 | Triggers | ? | <quote or example> | What everyday cue connects to this? |93 | Emotion | ? | <quote or example> | Awe, anxiety, excitement, anger? |94 | Public | ? | <quote or example> | Visibility layer present? |95 | Practical Value | ? | <quote or example> | Actionable, specific, saves time? |96 | Stories | ? | <quote or example> | Narrative with tension + resolution? |9798 Total: ?/1899 Top 2 elements: <element>, <element>100 Weakest element: <element>101 ```102103 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.1041053. **Extract the spine.** Identify:106 - **The one sentence** (the thesis or core insight)107 - **3-5 supporting points** (the substructure)108 - **The killer line** (the most quotable sentence)109 - **The data points** (numbers, examples)110 - **The contrarian angle** (what the source disagrees with)111 - **The narrative thread** (the story inside the content, if any)112113 Show this to the user before producing assets. Get confirmation.1141154. **Map each asset to its STEPPS element.** Before writing, confirm the STEPPS target for each channel:116117 ```118 Asset STEPPS Map119120 LinkedIn post → Social Currency (makes sharer look insightful)121 LinkedIn carousel → Practical Value + Social Currency (actionable + impressive)122 Twitter/X thread → Practical Value (specific, step-by-step, saves time)123 Substack note → Stories + Emotion (narrative hook, emotional pull)124 Email teaser → Triggers + Emotion (tap a recurring cue + emotional spike)125 Reddit post → Practical Value (genuine help, no promo feel)126 Quote graphics → Emotion + Social Currency (striking + shareable identity signal)127 YouTube short → Stories + Emotion (narrative, visual, emotional arc)128 SEO snippet → Practical Value (answers question directly, useful)129 ```1301315. **Produce each channel asset.** For each one, include a one-line STEPPS note at the top of the file:132133 ```134 <!-- STEPPS target: Social Currency - this post is designed to make the sharer135 look ahead of the curve on [topic]. The hook uses [specific element] to signal136 insider knowledge. -->137 ```138139 Each asset must be:140 - **Native to the channel** (not a copy-paste with different word count)141 - **Stand-alone valuable** (works without the source)142 - **Optimized for its primary STEPPS element** (named explicitly)143 - **Linked back to the source** if appropriate (CTA at the end)1441456. **Save** all outputs as separate files in `output/repurposed/<DD-MM-YYYY>-<source-slug>/`:146 ```147 output/repurposed/25-04-2026-thoughts-on-ai-pm/148 ├── linkedin-post.md149 ├── linkedin-carousel.md150 ├── twitter-thread.md151 ├── substack-note.md152 ├── email-teaser.md153 ├── reddit-post.md154 ├── quote-graphics.md155 ├── youtube-short.md156 └── README.md157 ```1581597. **Generate the README.md** for the folder summarizing:160 - Source link or path161 - STEPPS score table162 - Spine (one sentence + 3 points)163 - Which STEPPS element each asset targets164 - Whether the pack covers at least 4 of 6 STEPPS elements165 - Where each asset is meant to be published166 - Suggested publishing sequence and cadence1671688. **Self-check.** Every item is checkable against the saved files. Name the file and line, or the item fails.169170 - Each asset file opens with its `STEPPS target:` comment, and the named element scored 2 or 3 on the source. An asset targeting an element that scored 1 is unsupported by the source171 - The asset pack covers at least 4 of 6 STEPPS elements. Show the coverage table172 - Every number, name, quote, date and claim in every derivative appears verbatim or in equivalent form in the source. Grep each derivative's numbers against the source text and list the matches173 - No derivative contains a quote attributed to the author that is not in the source. If the source has no quotable line, the quote-graphics file says so and is empty174 - No two derivatives share their opening sentence, and no derivative is the source's paragraph with words swapped. Compare the first 15 words of each175 - Every derivative stands alone: read each one with the source closed and confirm it makes sense176 - Every asset is inside its stated length, with the count written in the file177 - Every claim about a platform spec in the pack is labelled `[UNVERIFIED default]` or sourced to the platform's current docs178 - Voice matches `knowledge/brand/voice.md`. Name two specific voice traits and where each appears1791809. **STEPPS coverage check.** The asset pack as a whole must cover at least 4 of 6 STEPPS elements. If it doesn't, name which are missing and suggest one asset type that would fill the gap.181182 ```183 STEPPS Coverage Check184185 Social Currency - covered by LinkedIn post186 Triggers - covered by email teaser187 Emotion - covered by quote graphics, YouTube short188 Public - NOT COVERED (suggest: add a screenshot-friendly stat for the carousel)189 Practical Value - covered by Twitter thread, carousel, Reddit post190 Stories - covered by Substack note, YouTube short191192 Coverage: 5/6 - PASS193 ```194195## Channel-specific rules196197### LinkedIn post (Social Currency)198- Open with an insight, not an announcement. Sharers want to look smart.199- The hook should be a claim someone would disagree with at first, then agree with after reading.200- End with a takeaway the reader can quote in their next meeting.201202### LinkedIn carousel (Practical Value + Social Currency)203- Slide 1: hook (8-12 words, big text)204- Slide 2: setup (the problem or context)205- Slides 3-7: one point per slide206- Last slide: CTA + tag line207- Output: structured outline ready for design ("Slide 3: Title 'X', body bullets, visual: graph showing Y")208209### Twitter/X thread (Practical Value)210- Tweet 1: hook only, no thread emoji211- Tweets 2-N: one actionable idea per tweet, max 280 chars each212- No "1/", use natural numbering only if it adds clarity213- Last tweet: payoff and CTA (link, follow, save)214- Practical Value = specific, actionable, saves time. Not opinion. Not commentary.215216### Substack note (Stories + Emotion)217- 3-5 sentences max218- Lead with a moment, not a point. Start mid-scene.219- One contrarian or counterintuitive claim220- The emotional payoff should land in the last sentence221- Link to full piece at the end222223### Email teaser (Triggers + Emotion)224- Subject line should connect to a recurring situation the reader faces (the trigger)225- Body opens with the emotional spike, not the content summary226- CTA is one click, zero friction227228### Reddit (Practical Value)229- Suggest 2-3 specific subreddits230- Adapt voice: less promotional, more conversational231- Lead with value, not the link232- Include "(I wrote about this in more depth here)" only at the end233- Flag any community rules to check (no self-promo, etc.)234235### YouTube short (Stories + Emotion)236- 45-60 seconds spoken (~120-150 words)237- Hook in 3 seconds - start with tension, not context238- One insight, one example, one takeaway239- Emotional arc: problem felt, resolution shown240- Visual cue suggestions in [brackets]241242### Quote graphics (Emotion + Social Currency)243- 3-5 pull quotes244- Each under 140 chars245- Each works without context246- High-arousal only: awe, anxiety, excitement. Cut contentment quotes.247- Specify which is best for which platform (LinkedIn carousel cover vs Instagram quote vs Twitter image)248249## Rules250251- Never paraphrase the source word for word. Each asset must add framing or context appropriate to its channel.252- Never produce identical content with different word counts. A 220-word LinkedIn post is structurally different from a 220-word Substack note.253- The source's killer line should appear in at least one derivative, often the LinkedIn post or a quote graphic.254- If the source has no killer line, **skip the quote graphics.** Never write a quote and255 attribute it to the source's author. A quote graphic ships with a name and often a face on it,256 so an authored line is a fabricated attribution, not a draft. Offering the user the choice does257 not fix it, because they say yes and the graphic ships.258- **Every number, claim and quote in a derivative must already appear in the source.** If a259 derivative needs a fact the source does not contain, cut the fact, not the sourcing rule.260- Each asset file must include its STEPPS target as a comment at the top.261- If the STEPPS score is below 9/18, address it with the user before producing 9 assets from weak source material.262263## Quick Reference: STEPPS264265| Element | Channel fit | What to amplify |266|---|---|---|267| Social Currency | LinkedIn post, quote graphics | Make the sharer look smart or ahead of the curve |268| Triggers | Email teaser, carousel | Connect to a cue the reader encounters regularly |269| Emotion (high-arousal only) | Quote graphics, YouTube short, Substack note | Awe, anxiety, excitement, anger - not contentment |270| Public | Carousel, thread | Add visible social proof or community signal |271| Practical Value | Thread, Reddit, carousel, SEO snippet | Specific, actionable, saves time |272| Stories | Substack note, YouTube short | Tension + resolution. Start mid-scene. |273274## Platform figures are not facts275276Any cadence, character count, best-day, format spec or benchmark in this skill is a starting277default recorded at authoring time, not a published platform rule. Two obligations:2782791. **Verify current specs in the platform itself before shipping** anything that depends on them.2802. **This account's own historical data always wins.** Where `knowledge/learnings.md` or the281 team's analytics contradict a default here, follow the data and say so in the output.282283Never present a default from this file to a client as though the platform published it. That is284the claim their in-house specialist corrects in the meeting, and the correction discredits285everything else in the document.286287## Never invent288289Repurposing 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.290291- **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.292- **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.293- **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.294- **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.295- If a channel cannot be produced honestly from this source, produce fewer assets. The pack size is not a target.296297## What this skill cannot know298299These are limitations of the skill. Anything below that reaches the output must be labelled `[UNVERIFIED]` there.300301- **Current platform specs, character limits, image dimensions and format support.** Everything in this file is a starting default from authoring time.302- **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.303- **Whether the source's claims are still true.** A post repurposed a year later carries last year's numbers into this year's feed.304- **Whether the people, customers or partners named in the source consented to appear in these placements.** Consent is usually scoped to the original piece.305- **Whether the derivative duplicates something already published.** Check `knowledge/content-library/` and the live channels.306307## Related skills308309- `/brand-context` first, if `knowledge/brand/voice.md` does not exist yet310- `/linkedin-post` for the LinkedIn derivative, which this skill calls rather than duplicating311- `/social-calendar` for scheduling the pack, so nine assets do not all ship in one week312- `/thought-leadership-writer` or `/newsletter-writer` when the STEPPS score says the source itself needs strengthening before it is worth atomising313- `/seo-article-writer` when the source should become a search-targeted article rather than social derivatives314- `/case-study-writer` when the source is a customer story, because consent and approval rules apply that this skill does not enforce315- `/content-writer` for the email teaser and any one-off asset outside the standard pack316- `/copy-review` for a pass over the finished pack before it is scheduled317- `/retro` after the pack has run, to record which derivative actually travelled