social-post
Skill1 starsChanged 7 months agoMITView on GitHub
Use when the user wants to draft social media posts for LinkedIn or X (Twitter) from a blog post, case study, or raw topic. Drafts by default; optionally publishes via LinkedIn or X API when credentials are configured.
- Reads credentials
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
- inklate/social-skills★ 8same 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 repository14 other files it gives its agents.
- blog-postSkill
- competitor-analysisSkill
- content-briefSkill
- content-calendarSkill
- content-marketingSkill
- editorial-guidelinesSkill
- email-copySkill
- landing-page-copySkill
- proofreading-style-checkSkill
- publish-webflowSkill
- publish-wordpressSkill
- repurpose-linkedin-carouselSkill
- repurpose-threads-xSkill
- seo-auditSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
16 rules. 0 are common, 13 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 15 edited versions we read keep these.
13
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 15
No required keys (draft-only mode).
- Very specific: line 41
Read editorial-guidelines.md if present (fall back to shared voice reference).
- Distinctive: line 42
If the source is a blog post file, read it in full.
- Distinctive: line 43
If the source is a URL, fetch it via the scraping fallback chain.
- Distinctive: line 44
If the source is a raw topic, ask 2–3 quick questions to pin down angle and audience.
- Very specific: line 74
Write to social/<slug>-<platform>.md.
- Distinctive: line 102
Only if the user explicitly confirmed publish AND credentials are set.
- Very specific: line 127
Use the current LinkedIn-Version header value (monthly YYYYMM format).
- Distinctive: line 145
After drafting (and optional publishing), print:
- Distinctive: line 148
If published: URNs/tweet IDs with direct links
- Distinctive: line 152
Source fetch fails: ask the user to paste the content or point to a local file.
- Distinctive: line 153
No editorial guidelines: use shared voice reference, note it.
- Distinctive: line 155
Rate limited: stop the thread, save progress, print which tweets posted and which didn't.
- Distinctive: line 161
No banned words from editorial guidelines.
- Distinctive: line 162
Every variant has an explicit hook identified.
- Distinctive: line 163
If publish was requested, the report shows the real post URL or a clear error.
“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
Social Post
Draft high-signal LinkedIn and X posts from a source article or topic. Always drafts to a local file; optionally publishes if the user explicitly asks and credentials are set.
Setup
No required keys (draft-only mode). Optional:
- LinkedIn publish:
LINKEDIN_ACCESS_TOKEN— OAuth2 access token withw_member_social(personal) orw_organization_social(company page) scopeLINKEDIN_AUTHOR_URN—urn:li:person:xxxxorurn:li:organization:xxxx
- X publish:
X_API_KEY,X_API_SECRET,X_ACCESS_TOKEN,X_ACCESS_TOKEN_SECRET— OAuth1.0a user-context creds.- Posting requires the Basic tier ($100/month) or higher. The Free tier cannot call
POST /2/tweetsand returns 403. If the user only has Free, this skill drafts locally and skips publish.
Neither set is required for drafting.
Inputs
- Source — either a path to a blog post (preferred) or a raw topic/brief.
- Platforms —
linkedin,x, orboth. Multi-select viaAskUserQuestion. - Format per platform:
- LinkedIn:
short(≤600 chars, hook + punchline),long(800–1300 chars, 4–6 short paragraphs),carousel-teaser(post that points to a LinkedIn carousel). - X:
single(one tweet ≤280 chars),thread(5–10 tweets),long-tweet(one post up to 25,000 chars for X Premium accounts).
- LinkedIn:
- Number of variants — default 3 per platform.
- CTA — optional: link, lead magnet, demo booking, reply prompt.
- Publish or draft only — default draft. Ask via
AskUserQuestion.
Process
1. Load context
- Read
editorial-guidelines.mdif present (fall back to shared voice reference). - If the source is a blog post file, read it in full.
- If the source is a URL, fetch it via the scraping fallback chain.
- If the source is a raw topic, ask 2–3 quick questions to pin down angle and audience.
2. Extract angles
From the source, pull 5–8 candidate angles:
- The single strongest data point or number
- The most contrarian claim
- The one practical tactic a reader could apply today
- A surprising failure story (if present)
- A named opinion the author is willing to be wrong about
- A short framework (3–5 steps)
Rank angles by "would a tired practitioner stop scrolling for this?".
3. Draft per platform
For each requested platform and format, produce the requested number of variants using the top-ranked angles. Each variant must:
- Open with a hook (first line must be able to stand alone in the feed).
- Never bury the lede — the payoff is in line 1–2.
- Obey the editorial guidelines on voice, banned words, emoji policy, and POV.
- Respect platform limits:
- LinkedIn short ≤600, long 800–1300 (before the "see more" cutoff is ~210 chars on mobile — make those first 210 chars hook the reader).
- X single ≤280. Thread: each tweet ≤280, no "1/" numbering unless the user asks, end with a "why it matters" tweet and optional CTA tweet.
- CTA placement: LinkedIn → last 2 lines. X thread → final tweet. Never in the middle.
- Hashtags: LinkedIn 3–5 at the end, relevant not trendy. X 0–2 inline if they read naturally.
- Emoji: per guidelines; default none unless the brand voice allows it.
4. Output
Write to social/<slug>-<platform>.md. One file per platform. Structure:
# Social — {slug} — {platform}
**Source:** {path or URL}
**Generated:** {YYYY-MM-DD}
---
## Variant 1 — {format}
{post body}
**Char count:** {n}
**Hook (first line):** {first line}
**Angle:** {which angle from step 2}
---
## Variant 2 — {format}
{…}For X threads, write each tweet on its own line prefixed with T1:, T2:, etc., and include a char count per tweet.
5. Optional publish
Only if the user explicitly confirmed publish AND credentials are set.
LinkedIn — use the Posts API (/rest/posts). The old /v2/ugcPosts endpoint is deprecated.
POST https://api.linkedin.com/rest/posts
Authorization: Bearer ${LINKEDIN_ACCESS_TOKEN}
LinkedIn-Version: 202501
X-Restli-Protocol-Version: 2.0.0
Content-Type: application/json
{
"author": "${LINKEDIN_AUTHOR_URN}",
"commentary": "<post body>",
"visibility": "PUBLIC",
"distribution": {
"feedDistribution": "MAIN_FEED",
"targetEntities": [],
"thirdPartyDistributionChannels": []
},
"lifecycleState": "PUBLISHED",
"isReshareDisabledByAuthor": false
}Use the current LinkedIn-Version header value (monthly YYYYMM format). Handle the x-restli-id response header as the post URN. Print the URN and the derived https://www.linkedin.com/feed/update/{urn}/ URL.
X:
POST https://api.x.com/2/tweets
Authorization: OAuth <signed with OAuth1.0a>
Content-Type: application/json
{ "text": "<tweet body>" }For threads, post sequentially and set reply.in_reply_to_tweet_id on each subsequent tweet. Stop on any 4xx and surface the error.
Confirm with the user one more time before the first publish call in any session.
6. Report
After drafting (and optional publishing), print:
- Files written
- Variants per platform
- If published: URNs/tweet IDs with direct links
Fallbacks
- Source fetch fails: ask the user to paste the content or point to a local file.
- No editorial guidelines: use shared voice reference, note it.
- LinkedIn/X API 401: report the error, keep the local drafts, never retry silently.
- Rate limited: stop the thread, save progress, print which tweets posted and which didn't.
Verification
- One file per requested platform under
social/. - Each variant respects platform character limits.
- No banned words from editorial guidelines.
- Every variant has an explicit hook identified.
- If publish was requested, the report shows the real post URL or a clear error.
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.

