frontmatter · SKILL.md+
name: cross-post description: > Turn one story, blog post, announcement, or idea into native-feeling drafts for multiple platforms at once — LinkedIn, X (Twitter), Instagram, Facebook, Threads, Bluesky, and Mastodon — adapting tone, length, structure, hashtags, and format per platform instead of copy-pasting one caption everywhere. Use when someone says "cross-post", "post this everywhere", "turn this blog post into social posts", or "adapt this for LinkedIn and X". Each draft comes with a one-line note explaining what changed for that platform and why. Reads social-context.md for brand voice, audience, and default platform setup so every draft sounds like the same person speaking each platform's dialect. metadata: version: 1.0.0 category: Create topics: [cross-posting, linkedin, x, instagram, facebook] examplePrompt: "Turn https://blog.example.com/launch into posts for LinkedIn and X"
Given one source — a URL, pasted text, or a raw idea — produce a native draft per platform, each shaped for how that platform actually reads, with a one-line rationale per draft.
Context
Read social-context.md (also check .agents/social-context.md) before drafting. You need:
- Brand voice: register, person ("I" vs "we"), emoji policy, banned phrases
- Audience per platform, if specified — the LinkedIn reader and the Bluesky reader are rarely the same person
## Platforms: the default platform list when the user does not name targets
If the file is missing, offer to run the social-context skill first — but do not block. Ask two or three quick questions inline (Which platforms? Personal voice or company voice? Anything off-limits?) and proceed.
Workflow
- Ingest the source. Fetch the URL or read the pasted text in full — the best social material is often a buried aside, not the headline. If it is only an idea, ask one clarifying question at most, then work with what you have.
- Extract the ONE core claim plus 2–3 supporting points. Write these down and show them before drafting. Every platform draft argues the same claim; what varies is how. If you cannot state the claim in one sentence, the source is not ready — say so and propose the sharpest available angle. Also harvest the receipts: any number, quote, or before/after in the source, because those survive adaptation better than prose.
- Confirm target platforms. Use the user's list if given; otherwise default to
## Platformsfrom social-context; otherwise ask. Do not silently produce all seven — an unwanted Mastodon draft is noise, not thoroughness. - Draft each platform natively, from the claim — not from another draft. These are siblings, not truncations of each other:
- LinkedIn — hook line that survives the ~200-char fold, short paragraphs with whitespace, a professional lesson or takeaway, end on a question or a crisp close. Link in the post is acceptable; many prefer first comment — follow social-context if it says.
- X — decide single post vs thread by weight: one claim + one punch fits a single ≤280 post; a claim with supporting evidence becomes a thread where the first tweet works alone. No hashtags; one link max, at the end.
- Instagram caption — first ~125 chars carry the hook (visible before "more"), then a story-shaped caption; note what image or carousel should accompany it. Hashtag block (3–8, specific not generic) after a spacer. No bare URLs — say where the link lives.
- Facebook — conversational, first-person, slightly longer is fine; links unfurl well, so include one. Write like you are telling a friend group, not broadcasting.
- Threads — casual, lowercase-friendly if on-voice, ≤500 chars, ends with something reply-able. Hashtags off.
- Bluesky — ≤300 chars, wry and plainspoken; the culture rewards understatement and punishes marketing-speak hardest here.
- Mastodon — ≤500 chars, sincere and direct; add a CW line when the topic warrants (politics, health, spoilers); CamelCase multi-word hashtags for screen readers.
- Write the per-draft rationale. One line under each draft: what you changed for this platform and why ("compressed to the stat because X rewards one sharp number", "led with the customer story because LinkedIn's fold buries anything slower"). The rationale teaches the user the platform, not just this post.
- Voice-check the set. Read all drafts in a row and hold them to three tests:
- Same person, different rooms — if any draft could not have been written by the voice in social-context, revise it.
- No verbatim repeats — kill any phrase that appears word-for-word in three or more drafts; siblings, not clones.
- Claim intact — every draft still argues the core claim from step 2; a draft that drifted into a different point gets rewritten, not kept.
- Length-check against the hard caps. Count characters on X, Threads, Bluesky, and Mastodon drafts and trim to fit — never by amputating the ending, always by cutting the weakest middle clause.
- Flag gaps honestly. If a platform is a poor fit for this story (a B2B pricing memo on Instagram), include the draft but say so in its rationale rather than forcing false enthusiasm — the user may still want it, but they should not be surprised when it underperforms.
Quality bar
| Platform | Length | Structure | Hashtags | Links |
|---|---|---|---|---|
| ≤3,000 chars; hook in first ~200 | Short paragraphs, whitespace | 0–3, end only | In post or first comment | |
| X | ≤280, or thread of 3–7 | Hook tweet stands alone | None | One, final position |
| Hook in first ~125 chars | Caption + hashtag block | 3–8, specific | No bare URLs | |
| 1–3 short paragraphs | Conversational | 0–2 | Yes, unfurls | |
| Threads | ≤500 chars | Casual, reply-bait close | None | Sparingly |
| Bluesky | ≤300 chars | Plain, wry | 0–2 | Yes |
| Mastodon | ≤500 chars | Sincere; CW etiquette | CamelCase, 1–3 | Yes |
- Every draft must contain the core claim; no draft may contradict another.
- Numbers and concrete nouns survive adaptation; adjectives do not have to.
- Never pad a short-form draft to feel "complete" — Bluesky at 180 chars beats Bluesky at 300.
- Hooks differ per platform: reusing the same first line on LinkedIn and X wastes the one variable that matters most.
- Hashtags are platform culture, not decoration: Instagram expects them, X and Threads punish them, Mastodon wants them CamelCase.
- Emoji follow the social-context policy; when in doubt, LinkedIn and Mastodon get fewer, Instagram and Threads tolerate more.
- Thread decisions are structural: only thread on X when there are 3+ distinct beats — a two-tweet thread is a long tweet that lost its nerve.
Deliverable
Return, in order:
- A two-line summary: the core claim in one sentence, and the platforms covered.
- One section per platform: a heading, the ready-to-copy draft in a fenced block, and the one-line rationale beneath it.
- Character counts on every draft with a hard cap (X, Threads, Bluesky, Mastodon), shown as
(214/280).
Nothing else — end there.