Help us improve
Share bugs, ideas, or general feedback.
From copyskills
Repurpose existing copy for a different channel, format, or audience. Use when transforming copy from one format to another (e.g., landing page to LinkedIn post, blog post to email, long-form to short-form).
npx claudepluginhub srstomp/copyskills --plugin copyskillsHow this skill is triggered — by the user, by Claude, or both
Slash command
/copyskills:copy-adaptThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Orchestrates copy adaptation across channels and formats. Takes existing copy and a target format, preserves the core message, and reshapes everything else to fit the destination. Contains NO domain knowledge -- only the adaptation sequence and routing logic.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Explores codebases via GitNexus: discover repos, query execution flows, trace processes, inspect symbol callers/callees, and review architecture.
Share bugs, ideas, or general feedback.
Orchestrates copy adaptation across channels and formats. Takes existing copy and a target format, preserves the core message, and reshapes everything else to fit the destination. Contains NO domain knowledge -- only the adaptation sequence and routing logic.
This skill is the central orchestrator for copy repurposing. It does not write copy from scratch. It analyzes existing copy, identifies what must be preserved and what must change, routes to the appropriate domain skill for format-specific patterns, enforces quality, and returns the adapted copy with a full account of what changed and why.
Every adaptation request starts here and ends here.
Accept the following inputs:
If source copy or target format is missing, ask before proceeding. Do not infer missing inputs.
Extract the following from the source copy:
Document each element explicitly. These become the adaptation map in Step 3.
Using the analysis from Step 2, sort each element into two columns:
Transfers (preserve exactly or nearly):
Changes (must be adapted for target format):
If source is long-form and target is short-form: prioritize the single strongest benefit. Drop supporting points before touching the differentiator.
If source is short-form and target is long-form: expand using existing proof points and examples from context. Do not pad with filler. If there is not enough substance in the source, note this in the output and ask for more material rather than inventing it.
Match the target format to a domain skill using keyword matching. Match is case-insensitive. Route to the first match found.
| Keywords in target format | Route to |
|---|---|
| "landing page", "ad", "CTA", "value prop", "hero" | marketing-copy |
| "email", "subject line", "newsletter", "drip", "sequence" | email-copy |
| "microcopy", "button", "error message", "onboarding", "tooltip", "UX" | ux-copy |
| "blog", "article", "SEO", "thought leadership", "whitepaper" | editorial-copy |
| "brand voice", "tone guide", "messaging", "style guide" | brand-copy |
| "proposal", "case study", "pitch deck", "one-pager", "sales email" | sales-copy |
| "LinkedIn", "Twitter", "X", "Instagram", "TikTok", "social", "thread", "carousel" | social-copy |
| "pricing", "signup", "checkout", "A/B", "variant", "trial" | conversion-copy |
If no match: Ask the user which domain skill applies. Do not default silently.
Load the matched domain skill. Use its format-specific patterns, structural conventions, length guidance, and CTA norms to govern the adaptation in Step 5.
Using the transfer/change map from Step 3 and the domain patterns from Step 4, produce the adapted copy.
Rules during adaptation:
Produce a working draft. Pass to Step 6.
MANDATORY. This step cannot be skipped under any circumstances.
Load quality-frameworks/references/anti-slop.md.
Apply the full de-slop pass to the adapted draft:
Do not move to Step 7 with any unfixed anti-slop violations. The de-slop pass is non-negotiable.
Return structured output that includes the adapted copy and a complete account of what changed and why. The "why" is not optional -- the user must be able to understand every significant adaptation decision.
See Output Contract below.
These rules apply to every adaptation regardless of format pair:
Never lose the core differentiator. If the target format cannot accommodate it, flag this explicitly rather than quietly dropping it.
Always adjust the CTA for the target channel. A direct response CTA does not belong on a LinkedIn post. A soft social CTA does not belong on a pricing page. Match the action ask to channel norms.
Respect platform and format constraints. Character limits, structural requirements, and platform-specific conventions are hard constraints. Work within them, do not ignore them.
Long-to-short: prioritize the strongest single benefit. When compressing, drop supporting points before diluting the core claim. One strong message beats three weak ones.
Short-to-long: expand with substance, not filler. Use existing proof points and examples. If the source does not contain enough material to expand credibly, say so and ask for more rather than padding.
Do not invent. Adaptation reshapes existing material. It does not add claims, proof points, or benefits that did not exist in the source.
adapted_copy:
primary: "..."
variants: ["...", "..."]
metadata:
source_format: "landing page"
target_format: "LinkedIn post"
domain_skill_used: "social-copy"
preserved:
- "Core message: [summary]"
- "Differentiator: [summary]"
- "Proof point: [summary]"
changed:
- element: "CTA"
from: "Book a demo"
why: "LinkedIn norms favor low-friction asks; hard CTAs perform poorly in feed"
to: "Curious what this looks like in practice?"
- element: "Structure"
from: "H1 + body + CTA"
why: "LinkedIn posts have no headline; hook must be in the first line of body text"
to: "Hook line + three short paragraphs + soft CTA"
- element: "Length"
from: "320 words"
why: "LinkedIn optimal length is 150-300 words; excess was supporting detail not core message"
to: "210 words"
flags: []
Fields:
adapted_copy.primary: The final adapted copy, ready to use.adapted_copy.variants: Optional alternate versions. Empty array if none produced.metadata.source_format: What the source copy was (inferred or stated).metadata.target_format: The target format/channel specified by the user.metadata.domain_skill_used: The domain skill loaded in Step 4.metadata.preserved: List of elements carried over unchanged or nearly unchanged from the source.metadata.changed: Each significant adaptation decision with the original, the change, and the reason.metadata.flags: Empty on clean pass. Populated if differentiator could not be preserved, source lacked sufficient material for expansion, or anti-slop violations could not be resolved.No domain knowledge in this skill. Format patterns, structural conventions, length guidance, and CTA norms all come from the domain skill loaded in Step 4. This skill sequences steps and routes -- nothing else.
Source copy is required. Never attempt adaptation without the full source text.
De-slop is mandatory. Step 6 runs on every adaptation without exception.
Do not invent. Adaptation only reshapes material that already exists in the source.
What changed and why is required output. The metadata block is not optional. Every significant change needs a reason.