/social-post-writer
When the user wants to write a social media post for LinkedIn, Twitter/X, Threads, or Bluesky. Also use when the user mentions 'write a post,' 'draft a post,' 'LinkedIn post,' 'tweet,' 'Threads post,' 'Bluesky post,' 'social media post,' 'help me write,' or shares a topic and
$ npx -y skills add evolution-foundation/evo-nexus --skill social-post-writer --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/social-post-writer
Context preview
The summary Claude sees to decide when to auto-load this skill.
When the user wants to write a social media post for LinkedIn, Twitter/X, Threads, or Bluesky. Also use when the user mentions 'write a post,' 'draft a post,' 'LinkedIn post,' 'tweet,' 'Threads post,' 'Bluesky post,' 'social media post,' 'help me write,' or shares a topic and
SKILL.md
social-post-writer.SKILL.mdname: social-post-writer
description: "When the user wants to write a social media post for LinkedIn, Twitter/X, Threads, or Bluesky. Also use when the user mentions 'write a post,' 'draft a post,' 'LinkedIn post,' 'tweet,' 'Threads post,' 'Bluesky post,' 'social media post,' 'help me write,' or shares a topic and wants it turned into a post. For multi-part content, see social-thread-writer. For carousels, see social-carousel-writer. For opening lines specifically, see social-hook-writer."
metadata:
version: 1.1.0
Post Writer
When to Use
- User asks to **write a post** or draft social media content
- User mentions "write a post," "draft a post," or "LinkedIn post"
- User says "tweet," "Threads post," "Bluesky post," or "social media post"
- User says "help me write" or shares a topic and wants it turned into a post
- User provides a rough draft and wants it refined for a specific platform
- User wants a single standalone post (not a thread or carousel)
Role
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.
Context Check
Before writing, read `workspace/social/[C] social-context.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-context` skill first to capture your voice and preferences — it takes about 5 minutes and makes every post I write sound like you."
---
Input Gathering
Ask only for what the user has not already provided:
- **Topic or idea** — or a rough draft you want refined
- **Target platform(s)** — LinkedIn, Twitter/X, Threads, Bluesky, or multiple
- **Content type** — educational, storytelling, promotional, engagement, or personal
- **Specific angle or CTA** — what should the reader think, feel, or do?
If the user gives you a topic and a platform, start writing — don't over-ask.
---
Post Structure by Platform
LinkedIn
**Format:**
- **Hook** (1-2 lines) — must earn the "see more" click; no throat-clearing
- **Body** — line break every 1-2 sentences; white space is readability
- **CTA** — question, directive, or invitation to engage
**Specs:**
- 1200-1500 characters is the optimal range; under 3000 to avoid truncation in feed
- No links in the post body — they suppress reach; drop the link in the first comment
- 3-5 hashtags at the very end, after the CTA
- First-person, specific, professional but not corporate
- Personal stories + data hooks perform best here
**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 #Hashtag3
**Example 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 #linkedin
---
Twitter / X
**Format:**
- Hook → Core message → CTA — all in one tight unit
- Under 280 characters for single tweets
- Thread format if the idea needs more space (see social-thread-writer)
**Specs:**
- 0-2 hashtags maximum — hashtag stuffing kills reach on X
- No fluff — cut every word that doesn't earn its place
- Contrarian, bold, and question hooks get the most replies and quote-posts
- Conversational > authoritative; punchy > polished
---
Threads
**Format:**
- Conversational tone — write like you're texting a smart friend
- Can run longer than a tweet with less structural pressure than LinkedIn
- No established hashtag culture — skip them or use 1 at most
**Specs:**
- 500-character limit per post (but posts can be standalone, not thread-format)
- Relatable, human, a little raw — polish is suspicious here
- Empathy and story-opener hooks land best on Threads
- First-person specific experience outperforms advice-framing
**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.
---
Bluesky
**Format:**
- Concise, authentic, 300-character limit
- Clever > corporate — the community is allergic to marketing language
- Wit and genuine perspective outperform "growth hacks"
**Specs:**
- No hashtag culture yet — skip them
- Self-aware humor and dry observation perform well
- Treat it like early Twitter — raw, real, direct
- Contrarian and confession hooks fit the culture best
---
Writing Process
1. **Select or generate a hook** — use patterns from social-hook-writer (contrarian, question, story opener, statistic, list preview, bold claim, empathy, before/after, confession). Match the hook pattern to the platform and content type.
2. **Draft the post body** — use the user's voice from the context file. Mirror their vocabulary, sentence rhythm, and punctuation habits. Do not impose a generic "expert" voice.
3. **Add the CTA** — make it specific to the content type:
- Educational: "What would you add?"
- Storytelling: "Has this happened to you?"
- Promotional: "Link in comments / DM me [word]"
- Engagement: open question that invites a reply
- Personal: "Anyone else?"
4. **Format for readability** — use generous white space to make the post scannable and easy t
Read more
name: social-post-writer description: "When the user wants to write a social media post for LinkedIn, Twitter/X, Threads, or Bluesky. Also use when the user mentions 'write a post,' 'draft a post,' 'LinkedIn post,' 'tweet,' 'Threads post,' 'Bluesky post,' 'social media post,' 'help me write,' or shares a topic and wants it turned into a post. For multi-part content, see social-thread-writer. For carousels, see social-carousel-writer. For opening lines specifically, see social-hook-writer." metadata: version: 1.1.0
Post Writer
When to Use
- User asks to **write a post** or draft social media content
- User mentions "write a post," "draft a post," or "LinkedIn post"
- User says "tweet," "Threads post," "Bluesky post," or "social media post"
- User says "help me write" or shares a topic and wants it turned into a post
- User provides a rough draft and wants it refined for a specific platform
- User wants a single standalone post (not a thread or carousel)
Role
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.
Context Check
Before writing, read `workspace/social/[C] social-context.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-context` skill first to capture your voice and preferences — it takes about 5 minutes and makes every post I write sound like you."
---
Input Gathering
Ask only for what the user has not already provided:
- **Topic or idea** — or a rough draft you want refined
- **Target platform(s)** — LinkedIn, Twitter/X, Threads, Bluesky, or multiple
- **Content type** — educational, storytelling, promotional, engagement, or personal
- **Specific angle or CTA** — what should the reader think, feel, or do?
If the user gives you a topic and a platform, start writing — don't over-ask.
---
Post Structure by Platform
**Format:**
- **Hook** (1-2 lines) — must earn the "see more" click; no throat-clearing
- **Body** — line break every 1-2 sentences; white space is readability
- **CTA** — question, directive, or invitation to engage
**Specs:**
- 1200-1500 characters is the optimal range; under 3000 to avoid truncation in feed
- No links in the post body — they suppress reach; drop the link in the first comment
- 3-5 hashtags at the very end, after the CTA
- First-person, specific, professional but not corporate
- Personal stories + data hooks perform best here
**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 #Hashtag3
**Example 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 #linkedin
---
Twitter / X
**Format:**
- Hook → Core message → CTA — all in one tight unit
- Under 280 characters for single tweets
- Thread format if the idea needs more space (see social-thread-writer)
**Specs:**
- 0-2 hashtags maximum — hashtag stuffing kills reach on X
- No fluff — cut every word that doesn't earn its place
- Contrarian, bold, and question hooks get the most replies and quote-posts
- Conversational > authoritative; punchy > polished
---
Threads
**Format:**
- Conversational tone — write like you're texting a smart friend
- Can run longer than a tweet with less structural pressure than LinkedIn
- No established hashtag culture — skip them or use 1 at most
**Specs:**
- 500-character limit per post (but posts can be standalone, not thread-format)
- Relatable, human, a little raw — polish is suspicious here
- Empathy and story-opener hooks land best on Threads
- First-person specific experience outperforms advice-framing
**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.
---
Bluesky
**Format:**
- Concise, authentic, 300-character limit
- Clever > corporate — the community is allergic to marketing language
- Wit and genuine perspective outperform "growth hacks"
**Specs:**
- No hashtag culture yet — skip them
- Self-aware humor and dry observation perform well
- Treat it like early Twitter — raw, real, direct
- Contrarian and confession hooks fit the culture best
---
Writing Process
1. **Select or generate a hook** — use patterns from social-hook-writer (contrarian, question, story opener, statistic, list preview, bold claim, empathy, before/after, confession). Match the hook pattern to the platform and content type.
2. **Draft the post body** — use the user's voice from the context file. Mirror their vocabulary, sentence rhythm, and punctuation habits. Do not impose a generic "expert" voice.
3. **Add the CTA** — make it specific to the content type:
- Educational: "What would you add?"
- Storytelling: "Has this happened to you?"
- Promotional: "Link in comments / DM me [word]"
- Engagement: open question that invites a reply
- Personal: "Anyone else?"
4. **Format for readability** — use generous white space to make the post scannable and easy t
Other skills on evo-nexus.
- /ai-image-creator
Generate PNG images using AI (multiple models via OpenRouter including Gemini, FLUX.2, Riverflow, SeedDream, GPT-5 Image, proxied through Cloudflare AI Gateway BYOK). Also analyze/describe existing images using multimodal AI vision. Use when user asks to "generate an image",
Open skill - /create-agent
Create a new custom agent for the workspace. Guides the user through defining agent name, domain, personality, skills, model, and memory folder. Use when the user says 'create an agent', 'new agent', 'add an agent', 'I need a custom agent', or wants to create a specialized agent
Open skill - /create-command
Create a new slash command for Claude Code. Guides the user through defining the command name, what it does, and generates the markdown file in .claude/commands/. Use when the user says 'create a command', 'new command', 'add a slash command', 'I want a shortcut for', or wants
Open skill - /create-goal
Create a Mission, Project, or Goal (Mission → Project → Goal → Task hierarchy) in EvoNexus. Guides the user through picking a mission, choosing or creating a project, defining a measurable goal with metric_type and target_value. Writes to the SQLite goals tables via POST
Open skill - /create-heartbeat
Create a new heartbeat (proactive agent scheduled with a decision prompt) for EvoNexus. Guides the user through picking an agent, setting interval, wake triggers, and the decision prompt that governs when the agent acts. Writes to config/heartbeats.yaml with pydantic validation.
Open skill - /create-integration
Create a new custom integration (API/service wrapper) for the workspace. Guides the user through defining the integration's slug, display name, description, category, and required env keys. Writes .claude/skills/custom-int-{slug}/SKILL.md via POST /api/integrations/custom. Use
Open skill

