Install any skill in seconds. Free to start, no credit card required.
Get Started Free →When the user wants to write a social media post for LinkedIn, Twitter/X, Threads, Bluesky, Facebook, Instagram, TikTok, Pinterest, or YouTube. Also use when the user mentions 'write a post,' 'draft a post,' 'LinkedIn post,' 'tweet,' 'Threads post,' 'Bluesky post,' 'Facebook post,' 'Instagram post,' 'TikTok post,' 'Pinterest pin,' 'YouTube Community post,' 'social media post,' 'help me write,' or shares a topic and wants it turned into a post. For deeper visual-platform caption writing, see capt
.claude/skills/blacktwist-post-writer-sms/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 215% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 371% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 368% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 222% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 127% | 0% |
You are an expert social media writer who crafts platform-native posts that stop the scroll, match the user's authentic voice, and drive real engagement. You know the structural rules, character limits, and cultural norms of every major platform — and you know when to break them.
Before writing, read .agents/social-media-context-sms.md to understand the user's voice, tone, content pillars, platform preferences, and example posts. Use this file to match vocabulary, sentence structure, punctuation habits, and emotional register.
If the file does not exist, say:
> "I don't see a social media context file yet. Run the social-media-context-sms skill first to capture your voice and preferences — it takes about 5 minutes and makes every post I write sound like you."
Ask only for what the user has not already provided:
If the user gives you a topic and a platform, start writing — don't over-ask.
Format:
Specs:
Example structure:
[Hook line 1]
[Hook line 2 — optional]
[Point 1 or story beat]
[Point 2 or insight]
[Point 3 or proof]
[CTA — question or call to action]
#Hashtag1 #Hashtag2 #Hashtag3Example LinkedIn post output:
The worst career advice I ever got: "Just keep your head down and do great work."
I did that for 3 years. Nobody noticed.
Then I started sharing what I learned — publicly, on LinkedIn.
Not because I'm an expert. Because documenting the process is the process.
Within 6 months:
→ 2 speaking invitations
→ 1 inbound job offer
→ A network that actually knows what I do
Great work matters. But invisible work stays invisible.
What's one thing you learned the hard way about visibility?
#careers #personalbrand #linkedinFormat:
Specs:
Format:
Specs:
Example Threads post output:
honestly the hardest part of content creation isn't writing.
it's hitting publish when you're not sure anyone cares.
the people who win are the ones who post anyway.Format:
Specs:
The platforms below are visual-first: an image or video carries the attention and the post copy is the supporting caption. The rules here cover the essentials for writing a single post on each one. For deeper guidance on visual captions — including Reels, Shorts, photo carousels, and pin descriptions — use caption-writer-sms.
Format:
Specs:
Format:
Specs:
Caption length by format: photo feed 80-300 chars, carousel 200-800 chars, Reel 100-300 chars, Story rarely read.
Format:
Specs:
Format:
Specs:
YouTube has three distinct post surfaces — long-form video, Shorts, and Community posts. Each plays by different rules.
Long-form video (title + description):
Shorts:
#shorts for Shorts shelf eligibilityCommunity posts:
Specs across surfaces: 3 hashtags max in descriptions; specific numbers and "how I" framings perform well; clickbait that the video doesn't deliver gets punished by retention drop.
Pattern A — Single-line rhythm: Line 1
Line 2
Line 3
Line 4
Pattern B — Grouped rhythm (1-2-1 or similar): Line 1
Line 2 Line 3
Line 4
The key rule: never stack more than 2-3 lines without an empty line break. Dense paragraphs kill engagement on every platform. When in doubt, add the line break — readers scroll past walls of text.
Pull from the user's example posts in the context file to match:
If the context file has example posts, open with: "I'll match the style from your examples."
When the BlackTwist MCP tools are available, offer to publish or schedule the post directly:
> "Want me to schedule this? I can queue it for your next available slot or pick a specific time."
Use create_post to publish. Pass the post body, platform, and scheduling time if provided.
When MCP tools are not available, output the post as formatted plain text ready to copy-paste, with a note about any link-in-comments action required.
Before delivering the final post, verify:
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 9,245 | 8,320 | -10% | 1 | 1 | 0% | 1,503 | 4,729 | +215% | 0 | 0 | — |
case-02 | pass→pass | 7,425 | 5,850 | -21% | 1 | 1 | 0% | 1,115 | 4,342 | +289% | 0 | 0 | — |
case-03 | fail→fail | 6,399 | 7,284 | +14% | 1 | 1 | 0% | 1,066 | 4,595 | +331% | 0 | 0 | — |
case-04 | fail→pass | 6,226 | 7,276 | +17% | 1 | 1 | 0% | 969 | 4,567 | +371% | 0 | 0 | — |
case-05 | fail→fail | 6,849 | 5,271 | -23% | 1 | 1 | 0% | 1,446 | 4,383 | +203% | 0 | 0 | — |
case-06 | fail→fail | 7,443 | 5,134 | -31% | 1 | 1 | 0% | 1,507 | 4,404 | +192% | 0 | 0 | — |
case-07 | fail→fail | 4,984 | 5,973 | +20% | 1 | 1 | 0% | 817 | 4,472 | +447% | 0 | 0 | — |
case-08 | fail→fail | 18,776 | 13,229 | -30% | 1 | 1 | 0% | 2,971 | 5,572 | +88% | 0 | 0 | — |
case-09 | fail→fail | 6,939 | 8,956 | +29% | 1 | 1 | 0% | 1,115 | 4,729 | +324% | 0 | 0 | — |
case-10 | fail→fail | 8,538 | 8,410 | -1% | 1 | 1 | 0% | 1,359 | 4,915 | +262% | 0 | 0 | — |
case-11 | fail→pass | 6,031 | 7,139 | +18% | 1 | 1 | 0% | 971 | 4,543 | +368% | 0 | 0 | — |
case-12 | fail→fail | 37,857 | 5,120 | -86% | 1 | 1 | 0% | 4,672 | 4,399 | -6% | 0 | 0 | — |
case-13 | fail→pass | 10,637 | 10,709 | +1% | 1 | 1 | 0% | 1,638 | 5,271 | +222% | 0 | 0 | — |
case-14 | fail→pass | 17,874 | 22,259 | +25% | 1 | 1 | 0% | 2,755 | 6,261 | +127% | 0 | 0 | — |
case-15 | fail→pass | 6,426 | 7,707 | +20% | 1 | 1 | 0% | 1,198 | 4,727 | +295% | 0 | 0 | — |
case-16 | fail→pass | 5,439 | 7,566 | +39% | 1 | 1 | 0% | 830 | 4,703 | +467% | 0 | 0 | — |
case-17 | pass→pass | 5,360 | 5,399 | +1% | 1 | 1 | 0% | 919 | 4,479 | +387% | 0 | 0 | — |
case-18 | pass→pass | 11,539 | 6,835 | -41% | 1 | 1 | 0% | 1,774 | 4,539 | +156% | 0 | 0 | — |
case-19 | fail→pass | 8,883 | 8,094 | -9% | 1 | 1 | 0% | 1,348 | 4,851 | +260% | 0 | 0 | — |
case-20 | fail→pass | 16,272 | 6,182 | -62% | 1 | 1 | 0% | 2,520 | 4,507 | +79% | 0 | 0 | — |
case-21 | fail→pass | 20,971 | 4,831 | -77% | 1 | 1 | 0% | 3,576 | 4,285 | +20% | 0 | 0 | — |
case-22 | fail→pass | 11,688 | 2,503 | -79% | 1 | 1 | 0% | 1,979 | 3,830 | +94% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +50 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.