social-post
Skill8 starsChanged 4 months agoMITView on GitHub
Draft a single social post for one platform — LinkedIn, X (Twitter), Instagram, Facebook, Threads, Bluesky, or Mastodon — built for how that platform's feed actually reads: a hook that survives the fold, one idea, white-space rhythm, a specific call to action, and platform-correct links and hashtags. Use when the user says "write a post", "draft a LinkedIn post", "write an X post", "post this on Instagram", or asks for "a post about" something. Produces two hook variants and self-checks the draft against the user's voice rules. For the same message adapted across several platforms at once use social-crosspost; for a multi-post sequence use social-thread. Reads social-context.md for voice, audience, pillars, positioning, goals, and red lines so the post sounds like the user.
19 other projects use a version of this.
Adopted by
Most recently taken up by
- halilural/imprimaturtheir own version, first seen Nov 8, 2026
- shimo4228/claude-harnesstheir own version, first seen Nov 1, 2026
- Suryanandx/qvac-uitheir own version, first seen Nov 1, 2026
- estruyf/seshboardtheir own version, first seen Nov 1, 2026
- Scino/fstacktheir own version, first seen Oct 25, 2026
- razbakov/skillstheir own version, first seen Oct 17, 2026
Other versions19 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 19
- Hao0321/claude-skill-social-post★ 741same name
- publora/skills★ 68same name
- monaccode/astromesh★ 39same name
- estruyf/seshboard★ 20same name
- estruyf/switchboard★ 20same name
- PHY041/claude-agent-skills★ 18same name
- Scino/fstack★ 18same name
- calven-ai/marketing-as-code★ 10same name
- idapixl/social-media-suite★ 8same name
- razbakov/skills★ 4same name
9 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository15 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- idkSkill
- social-adSkill
- social-auditSkill
- social-calendarSkill
- social-carouselSkill
- social-checkSkill
- social-contextSkill
- social-crosspostSkill
- social-hookSkill
- social-replySkill
- social-repurposeSkill
- social-threadSkill
- social-voiceSkill
The file
We split this skill into the rules it gives an agent
7 rules. 0 are common, 6 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 15 edited versions we read keep these.
6
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 24
Write one platform-native post that sounds like the user and survives the feed: hook above the fold, one idea, room to breathe, a CTA that …
- Very specific: line 29
Read social-context.md at the project root (also check .agents/social-context.md) for Positioning, Voice rules, Audience, Pillars, Goals, …
- Distinctive: line 46
Never list. If the material could serve two audiences (peers vs.
- Distinctive: line 57
Never open with throat-clearing ("I've been thinking a lot lately about…") and respect any Voice rule about openers.
- Distinctive: line 58
Write the body for each hook, sized to the platform: one thought per paragraph, a line break every 1–2 sentences where the platform allows …
- Distinctive: line 66
Never "Thoughts?" or "Agree?".
- Distinctive: line 67
Place the link the platform's way (from the reference).
“Common” is measured: kept by at least 6 in 10 of the 15 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Write one platform-native post that sounds like the user and survives the feed: hook above the fold, one idea, room to breathe, a CTA that asks for something specific.
Context
Read social-context.md at the project root (also check .agents/social-context.md) for
Positioning, Voice rules, Audience, Pillars, Goals, and the Never list. If it's missing,
offer to run the social-context skill first, but don't block — ask three quick inline
questions (which platform, who's the audience, any hard nos) and proceed.
Workflow
- Confirm the platform and load its rules. One post targets one platform — ask which if
the user didn't say. Load references/platform-rules.md for
that platform's fold, length, link, hashtag, and formatting norms, and draft to them, not
from memory. (For the same message across several platforms at once, use
social-crosspost.) - Get the raw material immediately. Ask what the post is about if not stated; if the user gave a topic, dig for the specific: the number, the mistake, the exact moment, the line someone actually said. A post about "lessons from our launch" is dead; a post about "the day-3 metric that told us it was over" is alive. Don't draft until you have at least one concrete detail.
- Pick the angle. Map the material to one of the user's Pillars and check it against the Never list. If the material could serve two audiences (peers vs. buyers), ask which one this post is for — the same story is told differently to each.
- Ruthlessly cut to one idea. If the material contains two lessons, tell the user and ask which ships today (the other becomes a future post). A post that argues two things argues nothing.
- Draft the hook first, in two different patterns. The hook is everything above the fold —
the platform's visible-truncation point from the reference. Pick two contrasting patterns:
- Outcome-first: the result, no context. "We deleted our pricing page. Trials went up 40%."
- Confession: the mistake stated flat. "I spent $30k on a launch nobody noticed."
- Contrarian claim: the belief they're wrong about. "Your case studies aren't building trust. They're screening you out."
- Specific scene: drop into the moment. "Tuesday, 6:14am, our biggest customer's name in my inbox with the subject 'we need to talk'." Never open with throat-clearing ("I've been thinking a lot lately about…") and respect any Voice rule about openers.
- Write the body for each hook, sized to the platform: one thought per paragraph, a line break every 1–2 sentences where the platform allows it. Structure = tension → turn → takeaway. The takeaway must be something the reader can use, not a moral ("be resilient" fails; "kill the launch if week-1 activation is under 20%" passes).
- End with one specific CTA matched to the post's job and the user's primary goal (
## Goals):- a pointed question that has a real answer ("What's your kill threshold?"), or
- an offer ("I wrote up the full postmortem — comment 'launch' and I'll send it"), or
- a plain follow reason. Never "Thoughts?" or "Agree?".
- Place the link the platform's way (from the reference). Say why once when the platform penalizes body links; if the link belongs off-body, write the first-comment or bio version — one line of context plus the link.
- Apply the platform's hashtag norm from the reference: always specific (
#devtoolsnot#business), never a hashtag soup. - Self-check both variants against every Voice rule in
social-context.md, line by line. Fix violations; if a rule conflicts with a strong hook, keep the voice and note the tradeoff to the user. - Final pass — read each variant as it will render on the platform, then check both variants against every row of the Quality bar and the platform's rules in the reference. Fix any that fails. Count characters and show the hook and total counts.
- Present both variants labeled by hook pattern, with hook char count and total char count for each, plus the first-comment/bio link text if any. Ask which variant to refine, and iterate on the winner.
Quality bar
Per-platform limits (length, fold, links, hashtags, formatting) live in references/platform-rules.md — check every draft against its platform's row there, not against memory. For every post:
| Constraint | Rule |
| Hook | Works standing alone, above the platform's fold |
| Ideas per post | Exactly one |
| Length | Within the platform's limit; sweet spot well under it |
| Links | Placed the platform's way; off-body text provided when needed |
| Hashtags | The platform's norm; specific, never a soup |
| CTA | One, specific, answerable; no "Thoughts?"/"Agree?" engagement bait |
| Formatting | Renders clean on the platform (e.g. no markdown where it shows literal) |
| Voice | Passes every rule in the Voice section of social-context.md |
Deliverable
Two ready-to-paste variants (labeled by hook pattern, with hook and total character counts), the first-comment or bio link text if a link was involved, and a one-line note on which variant you'd pick and why. End there.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

