agentleFS
inklateinklate/social-skills/skills/social-post/SKILL.md

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

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
  1. Distinctive:

    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 …

    line 24
  2. Very specific:

    Read social-context.md at the project root (also check .agents/social-context.md) for Positioning, Voice rules, Audience, Pillars, Goals, …

    line 29
  3. Distinctive:

    Never list. If the material could serve two audiences (peers vs.

    line 46
  4. Distinctive:

    Never open with throat-clearing ("I've been thinking a lot lately about…") and respect any Voice rule about openers.

    line 57
  5. Distinctive:

    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 …

    line 58
  6. Distinctive:

    Never "Thoughts?" or "Agree?".

    line 66
  7. Distinctive:

    Place the link the platform's way (from the reference).

    line 67

“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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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

  1. 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.)
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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).
  7. 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?".
  8. 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.
  9. Apply the platform's hashtag norm from the reference: always specific (#devtools not #business), never a hashtag soup.
  10. 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.
  11. 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.
  12. 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:

ConstraintRule
HookWorks standing alone, above the platform's fold
Ideas per postExactly one
LengthWithin the platform's limit; sweet spot well under it
LinksPlaced the platform's way; off-body text provided when needed
HashtagsThe platform's norm; specific, never a soup
CTAOne, specific, answerable; no "Thoughts?"/"Agree?" engagement bait
FormattingRenders clean on the platform (e.g. no markdown where it shows literal)
VoicePasses 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.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.