Kai root note: knowledge/, harness/, and scripts/ paths in this skill live in the Kai install, not the user's project. Resolve them against the first ancestor directory of this SKILL.md that contains a knowledge/ folder (the Kai plugin root, ~/.claude/kai, or the kai-cmo-harness repo). MARKETING.md, memory/, and any output files live in the current project. If a referenced scripts/ command is not available in this install, say so, skip it, and continue with the file-based guidance — never fabricate its output.
Objective
One pillar piece turned into 15–25 channel-native assets, each standing on its own, staged into a posting schedule that keeps them from cannibalizing each other. A derivative that reads as a repost of the pillar has failed — the same insight gets a different hook, a different length, and the platform's own register every time it appears.
Done when
Work type campaign — floor E5/C3/O4 (harness/eco-floors.yaml), composite. Every derivative is a child work item under its own type: social-post (E5/C2/O3), email-lifecycle (E5/C3/O3), blog-post for the expanded LinkedIn article (E5/C3/O3). The campaign is CLOSED only when every child is CLOSED and the campaign-level threshold is met; one unshipped asset keeps it open.
- E5 — each published derivative returns a provider id and its public permalink reads back matching the approved text. This skill drafts; publishing is a separate approved action.
- C3 — every piece passes
banned_word_check with zero violations, respects its platform's character and format limits, and a non-author read the set end to end for hook repetition.
- O4 — reach, engagement, and click-through against a threshold declared before the first post, read at the declared window from platform insights.
Constraints
- Read
MARKETING.md from the project root first. If it does not exist, build it from the codebase — CLAUDE.md, README.md, PROJECT.md, package.json, landing pages, email/ad/analytics config — using the template from /kai-email-system, and confirm the draft. Do not ask the user what the product is.
- Three things must be known before production: the source content (pasted, linked, or a file path), which platforms get derivatives, and what matters most (social reach, email engagement, SEO, video views).
- Transcript, podcast, webinar, interview, or long-article sources require a quote mining pass first, and
harness/references/transcript-video-research-rules.md loads before mining any third-party video, audio, podcast, webinar, or transcript material.
- Every quote keeps its exact source location — file path, URL, episode name, transcript timestamp, or paragraph locator — so any derivative can be traced back.
- Never invent quotes, credentials, or expert authority. Quote mining is source extraction; rewriting happens only in derivative files.
- Draft as a dry run. Publishing or scheduling requires explicit human approval.
- Each derivative stands alone — no "as I wrote in my blog post." Credit the pillar only where platform norms expect it.
- Different hook for every piece, even two pieces built on the same insight.
- Tone adapts to platform: LinkedIn professional, X punchy, TikTok conversational.
- Every piece runs the quality gate: zero banned words, zero AI slop, platform limits respected.
- Stagger the release over 1–2 weeks. Lead with the highest-reach platform, follow with niche channels.
Context
| Need | Load |
|---|
| Repurposing mechanics and channel fit | knowledge/playbooks/content-repurposing.md |
| Mining third-party video, audio, or transcripts | harness/references/transcript-video-research-rules.md |
| Organic social format contract and gate minimums | harness/skill-contracts/social-post.yaml |
| Product, ICP, voice, current channels | MARKETING.md (project root) |
Extraction map at workspace/repurposed/_extraction-map.md — one row per extract, with type, best channel, and format. Extract six kinds of material: key insights (3–5 standalone ideas), data points (stats, numbers, results), quotable lines (bold claims, memorable phrases), steps and frameworks, stories and examples, and contrarian takes.
Quote bank at workspace/repurposed/_quote-bank.md — per entry: source location; the quote or paraphrase, with direct quotes marked clearly and kept short; use case (hook, proof, objection, story, CTA, email subject, clip candidate); risk note (unsupported claim, private detail, medical/legal/financial claim, needs approval); and attribution requirement (guest name, customer approval, anonymous/internal, source citation).
Standard derivative set — adapt to the platforms chosen, but these are the format contracts:
| # | Asset | Platform | Format |
|---|
| 1–2 | Text post per insight | LinkedIn | 1200 chars |
| 3 | Carousel (framework) | LinkedIn | 8–10 slides outline |
| 4 | Thread (full argument) | X | 5–7 tweets |
| 5–6 | Single tweet per data point | X | 280 chars |
| 7 | Single tweet (contrarian take) | X | 280 chars |
| 8 | Carousel (key takeaways) | Instagram | 5–7 slides outline |
| 9 | Caption (story/example) | Instagram | 150–300 words |
| 10 | Video script (hook + insight) | TikTok | 30–60 seconds |
| 11 | Video script (contrarian take) | TikTok | 15–30 seconds |
| 12 | Newsletter section | Email | 100–200 words |
| 13 | Standalone value-add email | Email | 300–500 words |
| 14 | Expanded-angle article | LinkedIn | 2,200–3,000 words |
| 15 | Shorts script | YouTube | 30–60 seconds |
| 16–25 | Additional platform-specific variants | Various | Various |
Output tree — same paths as v1:
workspace/repurposed/
├── _extraction-map.md
├── _quote-bank.md
├── _source-pillar.md # copy of original for reference
├── linkedin/ # post-insight-1.md, post-insight-2.md, carousel-framework.md, article-expanded.md
├── x-twitter/ # thread-full.md, tweet-stat-1.md, tweet-stat-2.md, tweet-contrarian.md
├── instagram/ # carousel-takeaways.md, caption-story.md
├── tiktok/ # script-insight.md, script-contrarian.md
├── email/ # newsletter-section.md, standalone-email.md
├── youtube/ # shorts-script.md
└── _quality-report.md
Escalate when
- The pillar does not contain 15 distinct ideas — padding produces derivatives that hurt the brand.
- A quote's source location cannot be established, or its attribution requirement is unresolved.
- Source material contains medical, legal, or financial claims that need substantiation before any derivative repeats them.
- A third-party transcript's usage permission is unclear.
- The user wants the set scheduled or published without approval.