Agent skill

Post Formatter

by charlie947 in charlie947/social-media-skills

Turn a topic into a ready-to-publish LinkedIn post using PAS, AIDA, BAB, STAR, or SLAY frameworks.

MITAuto-check passedWriting & Content

Install Post Formatter

skills CLI
$ npx skills add charlie947/social-media-skills --skill post-formatter -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install charlie947/social-media-skills post-formatter --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/charlie947/social-media-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/post-formatter .claude/skills/post-formatter && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
post-formatter
GitHub stars
3.8k
Token cost
~1.4k tokens
SKILL.md length
634 words
Files
1
Skills in repo
15
Repo updated
First seen
Licence
MIT

At a glance

Turn a topic into a ready-to-publish LinkedIn post using PAS, AIDA, BAB, STAR, or SLAY frameworks.

  • Works in 5 steps: Gather inputs → Write the post → Structure → …
  • The user says format this as a post
  • SKILL.md covers Codex and Claude runtime, CRITICAL: Auto-start on load, Step 1. Gather inputs and Step 2. Write the post, plus 4 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Post Formatter is an agent skill from charlie947/social-media-skills. Turn a topic into a ready-to-publish LinkedIn post using PAS, AIDA, BAB, STAR, or SLAY frameworks. Up to 20 nonblank lines, mobile-formatted with blank lines between sentences. Use this skill whenever the user says "format this as a post", "turn this into a LinkedIn post", "write it as PAS" or any named framework, or wants a properly structured post from a topic. Different from post-writer: post-formatter applies a strict framework. post-writer drafts in the user's voice without framework constraints.

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Writing & Content, covering Linting and formatting and Social media posts. It works with LinkedIn. The licence is MIT.

When your agent uses it

  • The user says format this as a post
  • Turn this into a LinkedIn post
  • Write it as PAS
  • Any named framework

Example prompts

  • “format this as a post”
  • “turn this into a LinkedIn post”
  • “write it as PAS”
  • “/post-formatter”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Gather inputs
  2. Write the post
  3. Structure
  4. Output
  5. Offer the next move

What it can do on your machine

Read from SKILL.md and the folder at commit 8cefb5b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are json).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Post Formatter loads about 1.4k tokens when it runs. Until then it costs about 130 tokens; SKILL.md has 634 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~130
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from charlie947/social-media-skills at commit 8cefb5b, republished under its MIT licence (© charlie947). 634 words, ~1,427 tokens.

Download SKILL.mdSave it as .claude/skills/post-formatter/SKILL.md (or your agent's skills folder).
name
post-formatter
description
Turn a topic into a ready-to-publish LinkedIn post using PAS, AIDA, BAB, STAR, or SLAY frameworks. Up to 20 nonblank lines, mobile-formatted with blank lines between sentences. Use this skill whenever the user says "format this as a post", "turn this into a LinkedIn post", "write it as PAS" or any named framework, or wants a properly structured post from a topic. Different from post-writer: post-formatter applies a strict framework. post-writer drafts in the user's voice without framework constraints.

Post Formatter

Codex and Claude runtime

  • Use this skill in Codex or Claude with the tools actually available in the current task. AskUserQuestion examples describe the questions, not a required API: use an available question tool within its limits, or ask in chat. Reuse answers and source material already supplied.
  • Work in the user-selected project. Read its about-me.md, voice.md and relevant brand files before personalised work. Confirm the intended author if files conflict or contain starter defaults. Ask for missing facts or run voice-builder; never inherit the maintainer's identity, accounts or private files.
  • Resolve bundled references/ relative to this skill folder. For an explicitly requested profile refresh, read and update the canonical about-me.md, voice.md or newsletter-voice.md in place, preserving unrelated user facts and rules. Consumers must reread those canonical files. Use a new filename only for new deliverables that would collide with unrelated existing files. Installation alone never starts an interview or writes files. Do not write persistent learnings unless requested.
  • Use supplied evidence first. Verify external claims through available search/source tools when needed. If a source or integration is unavailable, name the missing capability and offer supplied text/export input. Never invent facts, first-person experience, metrics or a successful tool run.
  • Connect only services needed for the chosen route through the user's existing account. Never print credentials or overwrite connections. Drafting, saving and reviewing do not authorise publishing, sending messages or changing accounts.

CRITICAL: Auto-start on load

When this skill triggers, go straight to Step 1. Do not summarise. Start input gathering immediately.

Step 1. Gather inputs

Call AskUserQuestion:

json
[
  {
    "question": "What topic do you want to post about?",
    "header": "Topic",
    "multiSelect": false,
    "options": [
      {"label": "I will type the topic", "description": "Single sentence describing the subject"},
      {"label": "Paste a context dump", "description": "Notes, stats, transcripts to turn into a post"}
    ]
  },
  {
    "question": "Which framework?",
    "header": "Framework",
    "multiSelect": false,
    "options": [
      {"label": "PAS", "description": "Problem, Agitation, Solution"},
      {"label": "AIDA", "description": "Attention, Interest, Desire, Action"},
      {"label": "BAB", "description": "Before, After, Bridge"},
      {"label": "STAR", "description": "Situation, Task, Action, Result"},
      {"label": "SLAY", "description": "Story, Lesson, Actionable advice, You"},
      {"label": "Pick for me", "description": "Recommend the best framework based on the topic"}
    ]
  }
]

Ask one follow-up:

Anything else I should know? Facts, stats, tone notes, or who this is for.

Wait for response.

Step 2. Write the post

Apply these global rules to every output:

  • Maximum 20 nonblank lines. Target 150 to 200 words where the line limits allow; do not pad to a word minimum. User-supplied copy and required facts take precedence over the target.
  • Blank line after every line
  • Most lines: one sentence, 55 characters or fewer
  • Up to 4 lines may be mini-paragraphs (2 to 3 sentences, 110 characters or fewer)
  • Grade 6 words. Zero adverbs, zero jargon, zero fluff
  • No em dashes
  • No questions unless the hook itself is a question
  • No emojis except checkmarks for numbered lists (1. 2. 3.) and the recycle symbol in the CTA
  • Rule of Three: use at most two trios per post
  • Vary sentence starts. Do not over-use "I"
Show full SKILL.md (229 more words)Show less

Step 3. Structure

  • Line 1 (Hook): Plain text for pasting into LinkedIn. 50 characters or fewer.
  • Line 2 (Twist / Contrast): 50 characters or fewer. Opposes or surprises the hook.
  • Lines 3 to 18 (Core): The chosen framework, split across 3 to 5 lines per stage. Keep the actual number and order of required steps or items; do not force a trio. Use arrows to show flow where useful.

Framework maps:

  • PAS: Problem -> Agitation -> Solution

  • AIDA: Attention -> Interest -> Desire -> Action

  • BAB: Before -> After -> Bridge

  • STAR: Situation -> Task -> Action -> Result

  • SLAY: Story -> Lesson -> Actionable advice -> You

  • Final 1 to 2 lines (Wrap and CTA): close the lesson within the 20 nonblank line total. Use the author’s closing style. A repost CTA is optional when appropriate.

Step 4. Output

Output the finished post inside a code block. Keep any next-step question outside the paste-ready copy.

Step 5. Offer the next move

After the post, ask:

Want a matching graphic (graphic-designer skill) or want me to score it against your post history (post-scorer skill)?

Rules

  • The code block contains only the finished post.
  • Enforce line length, word count, and lines count limits. Count them.
  • Never use em dashes.
  • British English unless voice.md specifies otherwise.
  • If the user has voice.md in the project, tune tone and rhythm to match it.
  • Preserve required item coverage. Count nonblank lines and characters in the exact final copy.

© charlie947, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/post-formatter of charlie947/social-media-skills.

Open the folder on GitHubat commit 8cefb5b

Compare with similar skills

Post Formatter next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Post Formatter compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Post Formatter this skillcharlie947/social-media-skills3.8k—~1.4kAutomated safety check: PassMIT
Linkedin Post Formattergithub/awesome-copilot40k1 repos~1.4kAutomated safety check: PassMIT
Linkedin Contentalirezarezvani/claude-skills28k—~1.4kAutomated safety check: PassMIT
Post FormatterZJU-REAL/Easel3.4k—~537Automated safety check: PassApache-2.0
Changelog Social RecapFlorianBruniaux/claude-code-ultimate-guide6.1k—~1.8kAutomated safety check: NotesCC-BY-SA-4.0
Ig CaptionJakeschincariol/instagram-agent-skill760—~1.2kAutomated safety check: PassMIT

Similar skills

  • Linkedin Post Formatter

    github/awesome-copilot

    Official

    Format and draft compelling LinkedIn posts using Unicode bold/italic styling, visual separators, structured sections, and engagement-optimized patterns.

    40k GitHub starsUsed in 1 repo~1.4k tokens
    Writing & ContentAuto-check passed
  • Linkedin Content

    alirezarezvani/claude-skills

    A skill your agent uses when someone wants to write, edit, or lint a LinkedIn post — a story, how-to, opinion piece, carousel script, video script, or poll — or wants an article, talk, or transcript…

    28k GitHub stars~1.4k tokensUpdated 1 mo ago
    Writing & ContentAuto-check passed
  • Post Formatter

    ZJU-REAL/Easel

    用 PAS、AIDA、BAB、STAR、SLAY 等经典框架将主题结构化为社媒帖子. An agent skill from ZJU-REAL/Easel.

    3.4k GitHub stars~537 tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Changelog Social Recap

    FlorianBruniaux/claude-code-ultimate-guide

    Turns CHANGELOG.md entries for a release or a week into LinkedIn, Twitter/X, newsletter and Slack posts in French and English.

    6.1k GitHub stars~1.8k tokensUpdated today
    Writing & ContentAuto-check: notes
  • Ig Caption

    Jakeschincariol/instagram-agent-skill

    Write the Instagram caption - the line that survives the "...

    760 GitHub stars~1.2k tokensUpdated 27 days ago
    Writing & ContentAuto-check passed
  • Write

    waynesutton/markdown-site

    Writing style guide for technical content, social media, blog posts, READMEs, git commits, and developer documentation.

    627 GitHub stars~3k tokensUpdated 4 mo ago
    Writing & ContentAuto-check passed

More from charlie947/social-media-skills

All 15 skills in this repo
  • Newsletter Voice

    charlie947/social-media-skills

    Build newsletter writing instructions inside a Codex or Claude project.

    3.8k GitHub stars~2.5k tokensUpdated 26 days ago
    Auto-check passed
  • Voice Builder

    charlie947/social-media-skills

    Build a personalised voice profile inside a Codex or Claude project from a short interview plus 3 to 5 sample pieces of writing.

    3.8k GitHub stars~3.3k tokensUpdated 26 days ago
    Auto-check passed
  • Content Matrix

    charlie947/social-media-skills

    Generate 24 to 40 LinkedIn post ideas in a single table by pairing the user's content pillars with 8 proven content formats.

    3.8k GitHub stars~1.6k tokensUpdated 26 days ago
    Auto-check passed
  • Gemini Carousel

    charlie947/social-media-skills

    Generate a branded slide-by-slide LinkedIn carousel using Gemini.

    3.8k GitHub stars~1.7k tokensUpdated 26 days ago
    Auto-check passed
  • Hook Generator

    charlie947/social-media-skills

    Generate 6 clickbait-style LinkedIn hook variations for any topic.

    3.8k GitHub stars~1.1k tokensUpdated 26 days ago
    Auto-check passed
  • Niche Research

    charlie947/social-media-skills

    Surface the 20 most relevant stories in a niche from the last 7 days using available live research tools.

    3.8k GitHub stars~1.7k tokensUpdated 26 days ago
    Auto-check passed

Works with

Questions about Post Formatter

What does Post Formatter do?

Turn a topic into a ready-to-publish LinkedIn post using PAS, AIDA, BAB, STAR, or SLAY frameworks. Post Formatter is an agent skill from charlie947/social-media-skills. Turn a topic into a ready-to-publish LinkedIn post using PAS, AIDA, BAB, STAR, or SLAY frameworks.

When should I use Post Formatter?

Post Formatter fits situations like: the user says format this as a post; turn this into a LinkedIn post; write it as PAS; any named framework.

How do I install Post Formatter in Claude Code?

Run `npx skills add charlie947/social-media-skills --skill post-formatter -a claude-code`. Or copy the skill folder (skills/post-formatter in charlie947/social-media-skills) into .claude/skills/post-formatter in your project. Claude Code loads it when a task matches its description.

How do I install Post Formatter in Codex?

Run `npx skills add charlie947/social-media-skills --skill post-formatter -a codex`. Or copy the skill folder (skills/post-formatter in charlie947/social-media-skills) into .agents/skills/post-formatter in your project. Codex loads it when a task matches its description.

Can I use Post Formatter in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add charlie947/social-media-skills --skill post-formatter -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/post-formatter, .gemini/skills/post-formatter, .github/skills/post-formatter and .opencode/skills/post-formatter in your project.

What does Post Formatter need to run?

SKILL.md names no scripts, command-line tools or credentials: Post Formatter is instructions for the agent only.

Does Post Formatter access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Post Formatter safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Post Formatter use?

Post Formatter is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Post Formatter use?

About 1.4k tokens (SKILL.md is roughly 5.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Post Formatter?

Skills that share tags, products or a category with Post Formatter: Linkedin Post Formatter (github/awesome-copilot, 40k stars), Linkedin Content (alirezarezvani/claude-skills, 28k stars), Post Formatter (ZJU-REAL/Easel, 3.4k stars) and Changelog Social Recap (FlorianBruniaux/claude-code-ultimate-guide, 6.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Post Formatter?

charlie947 (a GitHub user) maintains it in charlie947/social-media-skills, which has 3,844 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on September 15, 2026.

Source: charlie947/social-media-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.