Turn a topic into a ready-to-publish LinkedIn post using PAS
Post formatter

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.
--- 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
Overview
When this skill triggers, go straight to Step 1. Do not summarise. Start input gathering immediately.
Manual install (npx, ZIP)
npx skills add charlie947/social-media-skills --skill post-formatter -g -a claude-codemkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/charlie947/social-media-skills/tar.gz/8cefb5b6d037 \
| tar -xz -C ~/.claude/skills --strip-components=2 social-media-skills-8cefb5b6d037/skills/post-formatterNew-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/f3b673d4cbba02eb5b17/post-formatter.zip" -OutFile "$env:TEMP\post-formatter.zip"; Expand-Archive "$env:TEMP\post-formatter.zip" -DestinationPath "$HOME\.claude\skills" -ForceConnects with Agent Alley MCP · agentalley.io/mcp
Files included
SKILL.md5.6 KB
Read the files here
charlie947/
Show the full text107 lines
Post Formatter
Codex and Claude runtime
- Use this skill in Codex or Claude with the tools actually available in the current task.
AskUserQuestionexamples 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.mdand relevant brand files before personalised work. Confirm the intended author if files conflict or contain starter defaults. Ask for missing facts or runvoice-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 canonicalabout-me.md,voice.mdornewsletter-voice.mdin 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:
[
{
"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"
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.
| 1 | |
| 2 | name post-formatter |
| 3 | description > |
| 4 | 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. |
| 5 | |
| 6 | |
| 7 | # Post Formatter |
| 8 | |
| 9 | ## Codex and Claude runtime |
| 10 | |
| 11 | 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. |
| 12 | 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. |
| 13 | 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. |
| 14 | 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. |
| 15 | 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. |
| 16 | |
| 17 | ## CRITICAL: Auto-start on load |
| 18 | |
| 19 | When this skill triggers, go straight to Step 1. Do not summarise. Start input gathering immediately. |
| 20 | |
| 21 | ## Step 1. Gather inputs |
| 22 | |
| 23 | Call AskUserQuestion: |
| 24 | |
| 25 | |
| 26 | [ |
| 27 | { |
| 28 | "question": "What topic do you want to post about?", |
| 29 | "header": "Topic", |
| 30 | "multiSelect": false, |
| 31 | "options": [ |
| 32 | {"label": "I will type the topic", "description": "Single sentence describing the subject"}, |
| 33 | {"label": "Paste a context dump", "description": "Notes, stats, transcripts to turn into a post"} |
| 34 | ] |
| 35 | }, |
| 36 | { |
| 37 | "question": "Which framework?", |
| 38 | "header": "Framework", |
| 39 | "multiSelect": false, |
| 40 | "options": [ |
| 41 | {"label": "PAS", "description": "Problem, Agitation, Solution"}, |
| 42 | {"label": "AIDA", "description": "Attention, Interest, Desire, Action"}, |
| 43 | {"label": "BAB", "description": "Before, After, Bridge"}, |
| 44 | {"label": "STAR", "description": "Situation, Task, Action, Result"}, |
| 45 | {"label": "SLAY", "description": "Story, Lesson, Actionable advice, You"}, |
| 46 | {"label": "Pick for me", "description": "Recommend the best framework based on the topic"} |
| 47 | ] |
| 48 | } |
| 49 | ] |
| 50 | |
| 51 | |
| 52 | Ask one follow-up: |
| 53 | |
| 54 | > Anything else I should know? Facts, stats, tone notes, or who this is for. |
| 55 | |
| 56 | Wait for response. |
| 57 | |
| 58 | ## Step 2. Write the post |
| 59 | |
| 60 | Apply these global rules to every output: |
| 61 | |
| 62 | 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. |
| 63 | Blank line after every line |
| 64 | Most lines: one sentence, 55 characters or fewer |
| 65 | Up to 4 lines may be mini-paragraphs (2 to 3 sentences, 110 characters or fewer) |
| 66 | Grade 6 words. Zero adverbs, zero jargon, zero fluff |
| 67 | No em dashes |
| 68 | No questions unless the hook itself is a question |
| 69 | No emojis except checkmarks for numbered lists (1. 2. 3.) and the recycle symbol in the CTA |
| 70 | Rule of Three: use at most two trios per post |
| 71 | Vary sentence starts. Do not over-use "I" |
| 72 | |
| 73 | ## Step 3. Structure |
| 74 | |
| 75 | **Line 1 (Hook)**: Plain text for pasting into LinkedIn. 50 characters or fewer. |
| 76 | **Line 2 (Twist / Contrast)**: 50 characters or fewer. Opposes or surprises the hook. |
| 77 | **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. |
| 78 | |
| 79 | Framework maps: |
| 80 | |
| 81 | **PAS**: Problem -> Agitation -> Solution |
| 82 | **AIDA**: Attention -> Interest -> Desire -> Action |
| 83 | **BAB**: Before -> After -> Bridge |
| 84 | **STAR**: Situation -> Task -> Action -> Result |
| 85 | **SLAY**: Story -> Lesson -> Actionable advice -> You |
| 86 | |
| 87 | **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. |
| 88 | |
| 89 | ## Step 4. Output |
| 90 | |
| 91 | Output the finished post inside a code block. Keep any next-step question outside the paste-ready copy. |
| 92 | |
| 93 | ## Step 5. Offer the next move |
| 94 | |
| 95 | After the post, ask: |
| 96 | |
| 97 | > Want a matching graphic (graphic-designer skill) or want me to score it against your post history (post-scorer skill)? |
| 98 | |
| 99 | ## Rules |
| 100 | |
| 101 | The code block contains only the finished post. |
| 102 | Enforce line length, word count, and lines count limits. Count them. |
| 103 | Never use em dashes. |
| 104 | British English unless voice.md specifies otherwise. |
| 105 | If the user has voice.md in the project, tune tone and rhythm to match it. |
| 106 | Preserve required item coverage. Count nonblank lines and characters in the exact final copy. |
| 107 |
Details
- Updated
- Sep 15, 2026
- License
- MIT
- Stars on the repo
- ★ 3,652
- Checked
- Source
- charlie947/social-media-skills ↗
- Creator
- charlie947 · 17 listings
Similar skills
See all →
MCP3-5 days | Agents: 6 | Gate Keepers: DevOps Automator +⚙️ Phase 2 Playbook — Foundation & Scaffolding
MCPNEXUS transforms The Agency's independent AI specialists🌐 NEXUS — Network of EXperts, Unified in Strategy
SkillGenerate an Ansoff Matrix analysis mapping growth strategies
SkillSurvey any codebase as a senior advisorImprove
SkillTranslate skills from one industry to anotherCareer changer translator
SkillA collection of 37 battle-tested marketing skillsOpenClaw Marketing SkillsMore from charlie947
SkillTurn a LinkedIn Analytics exportAnalytics dashboard
SkillGenerate 24 to 40 LinkedIn post ideas in a single tableContent matrix
SkillGenerate a branded slide-by-slide LinkedIn carouselGemini carousel
SkillGenerate a hand-drawn whiteboard infographic promptGemini infographic
SkillCreate LinkedIn post graphicsGraphic designer
SkillGenerate 6 clickbait-style LinkedIn hook variations for anyHook generator