post-writer-sms
When the user wants to write a social media post for LinkedIn, Twitter/X, Threads, Bluesky, Facebook, Instagram, TikTok, Pinterest, or YouTube. Also use when the user mentions 'write a post,' 'draft a post,' 'LinkedIn post,' 'tweet,' 'Threads post,' 'Bluesky post,' 'Facebook post,' 'Instagram post,' 'TikTok post,' 'Pinterest pin,' 'YouTube Community post,' 'social media post,' 'help me write,' or shares a topic and wants it turned into a post. For deeper visual-platform caption writing, see caption-writer-sms. For multi-part content, see thread-writer-sms. For carousels, see carousel-writer-sms. For opening lines, see hook-writer-sms.
What this skill does
# Post Writer ## When to Use - User asks to **write a post** or draft social media content - User mentions "write a post," "draft a post," or "LinkedIn post" - User says "tweet," "Threads post," "Bluesky post," or "social media post" - User says "help me write" or shares a topic and wants it turned into a post - User provides a rough draft and wants it refined for a specific platform - User wants a single standalone post (not a thread or carousel) ## Role You are an expert social media writer who crafts platform-native posts that stop the scroll, match the user's authentic voice, and drive real engagement. You know the structural rules, character limits, and cultural norms of every major platform — and you know when to break them. ## Context Check Before writing, read `.agents/social-media-context-sms.md` to understand the user's voice, tone, content pillars, platform preferences, and example posts. Use this file to match vocabulary, sentence structure, punctuation habits, and emotional register. If the file does not exist, say: > "I don't see a social media context file yet. Run the `social-media-context-sms` skill first to capture your voice and preferences — it takes about 5 minutes and makes every post I write sound like you." --- ## Input Gathering Ask only for what the user has not already provided: - **Topic or idea** — or a rough draft you want refined - **Target platform(s)** — LinkedIn, Twitter/X, Threads, Bluesky, or multiple - **Content type** — educational, storytelling, promotional, engagement, or personal - **Specific angle or CTA** — what should the reader think, feel, or do? If the user gives you a topic and a platform, start writing — don't over-ask. --- ## Post Structure by Platform ### LinkedIn **Format:** - **Hook** (1-2 lines) — must earn the "see more" click; no throat-clearing - **Body** — line break every 1-2 sentences; white space is readability - **CTA** — question, directive, or invitation to engage **Specs:** - 1200-1500 characters is the optimal range; under 3000 to avoid truncation in feed - No links in the post body — they suppress reach; drop the link in the first comment - 3-5 hashtags at the very end, after the CTA - First-person, specific, professional but not corporate - Personal stories + data hooks perform best here **Example structure:** ``` [Hook line 1] [Hook line 2 — optional] [Point 1 or story beat] [Point 2 or insight] [Point 3 or proof] [CTA — question or call to action] #Hashtag1 #Hashtag2 #Hashtag3 ``` **Example LinkedIn post output:** ``` The worst career advice I ever got: "Just keep your head down and do great work." I did that for 3 years. Nobody noticed. Then I started sharing what I learned — publicly, on LinkedIn. Not because I'm an expert. Because documenting the process is the process. Within 6 months: → 2 speaking invitations → 1 inbound job offer → A network that actually knows what I do Great work matters. But invisible work stays invisible. What's one thing you learned the hard way about visibility? #careers #personalbrand #linkedin ``` --- ### Twitter / X **Format:** - Hook → Core message → CTA — all in one tight unit - Under 280 characters for single tweets - Thread format if the idea needs more space (see thread-writer-sms) **Specs:** - 0-2 hashtags maximum — hashtag stuffing kills reach on X - No fluff — cut every word that doesn't earn its place - Contrarian, bold, and question hooks get the most replies and quote-posts - Conversational > authoritative; punchy > polished --- ### Threads **Format:** - Conversational tone — write like you're texting a smart friend - Can run longer than a tweet with less structural pressure than LinkedIn - No established hashtag culture — skip them or use 1 at most **Specs:** - 500-character limit per post (but posts can be standalone, not thread-format) - Relatable, human, a little raw — polish is suspicious here - Empathy and story-opener hooks land best on Threads - First-person specific experience outperforms advice-framing **Example Threads post output:** ``` honestly the hardest part of content creation isn't writing. it's hitting publish when you're not sure anyone cares. the people who win are the ones who post anyway. ``` --- ### Bluesky **Format:** - Concise, authentic, 300-character limit - Clever > corporate — the community is allergic to marketing language - Wit and genuine perspective outperform "growth hacks" **Specs:** - No hashtag culture yet — skip them - Self-aware humor and dry observation perform well - Treat it like early Twitter — raw, real, direct - Contrarian and confession hooks fit the culture best --- ## Visual-First Platforms The platforms below are visual-first: an image or video carries the attention and the post copy is the supporting caption. The rules here cover the essentials for writing a single post on each one. **For deeper guidance on visual captions — including Reels, Shorts, photo carousels, and pin descriptions — use `caption-writer-sms`.** ### Facebook **Format:** - Conversational, story-driven, personal — Facebook rewards posts that read like a friend talking - Hook in line 1; truncation kicks in around 477 chars on desktop, ~120 chars on mobile - Links work in the body and are not suppressed the way they are on Instagram **Specs:** - **40-80 characters** is the soft sweet spot for highest engagement on photo posts; storytelling captions can run 300-500 chars - 1-3 hashtags max — only use them if branded or community-specific - Tag relevant Pages and people to boost reach into their networks - A direct question at the end consistently outperforms statements - Native video and personal stories outperform link drops --- ### Instagram **Format:** - The first **125 characters** decide whether the rest gets read — caption truncates with "...more" after that on mobile - Hook in line 1 must do the work of a headline - Body builds on the visual; CTA closes on a save or share **Specs:** - 2200 character limit; high performers span the full range — one-liners to mini-essays - **3-10 hashtags** — mix branded, niche, and broader community tags; place at the end of the caption or in the first comment - **No clickable links in captions** — direct viewers to "link in bio" or use the Reels/Stories link sticker - Always write **alt text** in the accessibility settings for reach and accessibility - Tag collaborators, locations, and products to expand distribution - For Reels: caption is secondary to the on-screen hook; a tight written hook still drives saves and shares **Caption length by format:** photo feed 80-300 chars, carousel 200-800 chars, Reel 100-300 chars, Story rarely read. --- ### TikTok **Format:** - The video carries the hook — the caption adds context, a punchline, or a search keyword - First line should reinforce or extend the on-screen hook - Conversational, low-polish, native voice — overproduced captions feel like ads **Specs:** - 2200 character limit (expanded from 300 in 2022); most high-performers stay **under 150 characters** - **3-5 hashtags** — mix one broad, one mid-tier niche, a few specific topical - **TikTok SEO matters** — the caption is indexed for in-app search; include keywords your audience would type - Mention sounds, trends, and creators when relevant - Listicle setups, curiosity gaps that finish in the video, and "Part 1" framing perform well --- ### Pinterest **Format:** - Pinterest is a **search engine**, not a social feed — copy is SEO text, not lifestyle prose - Pin **title** and **description** are separate fields and both matter - Hashtags are effectively ignored — rely on natural keywords **Specs:** - **Title:** 100 char limit — front-load the primary keyword, write like a headline a searcher would click - **Description:** 500 char limit — natural, keyword-rich sentences describing what the pin is for and who it helps - **Link** goes in the dedicated link field, not in the caption - No emojis in titles (lowers click-thr
Related in Ads & Marketing
ads
IncludedMulti-platform paid advertising audit and optimization skill. Analyzes Google, Meta, YouTube, LinkedIn, TikTok, Microsoft, and Apple Ads. 250+ checks with scoring, parallel agents, industry templates, and AI creative generation.
banana
IncludedAI image generation Creative Director powered by Google Gemini Nano Banana models. Use this skill for ANY request involving image creation, editing, visual asset production, or creative direction. Triggers on: generate an image, create a photo, edit this picture, design a logo, make a banner, visual for my anything, and all /banana commands. Handles text-to-image, image editing, multi-turn creative sessions, batch workflows, and brand presets.
rpg-migration-analyzer
IncludedAnalyzes legacy RPG (Report Program Generator) programs from AS/400 and IBM i systems for migration to modern Java applications. Extracts business logic from RPG III/IV/ILE source code, identifies data structures (D-specs), file operations (F-specs), program dependencies (CALLB/CALLP), and converts RPG constructs to Java equivalents. Generates migration reports, complexity estimates, and Java implementation strategies with POJO classes, JPA entities, and service methods. Use when modernizing AS/400 or IBM i legacy systems, analyzing RPG source files (.rpg, .rpgle, .RPGLE), converting RPG to Java, mapping data specifications to Java classes, planning legacy system migration, or when user mentions RPG analysis, Report Program Generator, RPG III/IV/ILE, AS/400 modernization, IBM i migration, packed decimal conversion, or mainframe application rewrite.
brand-library-architect
IncludedBuild a complete brand library for a product — visual asset render pipeline, brand documentation set (BRAND, COPY, MANIFESTO, BIOS, FAQ, GLOSSARY, TONE, PRICING), open-source convention files (README, CONTRIBUTING, SECURITY, CODE_OF_CONDUCT), and a self-contained press kit. This skill should be used when the user asks to "build a brand library / brand kit / press kit / brand assets" for a product, "set up a brand library workflow," "create a positioning manifesto plus visual identity," or any combination of brand documentation + visual asset pipeline. Apply phase-by-phase or run end-to-end. Templates are product-agnostic and use {{TOKEN}} placeholders the skill prompts the user to fill.
writing-tech-post
IncludedAuthors engineering blog posts end-to-end: launch deep-dives, incident postmortems, architecture migrations, performance case studies, tutorials, AI/agent system writeups, security disclosures, and research-to-product translations. Picks the correct archetype, plans the abstraction ladder, enforces an evidence cadence (diagrams, benchmarks, profiles, traces, code, ablations), tunes voice against publisher house styles (Datadog, Vercel, GitHub, AWS, Meta, Cloudflare, Jane Street), and runs a pre-publish gate for narrative momentum and disclosure ethics. Use when drafting a new engineering post, restructuring a draft that feels flat, deciding which evidence form belongs where, validating that depth and product context are balanced, or preparing a postmortem, migration, or performance narrative for external publication. Do not use for API reference documentation, README authoring, marketing copy, release notes, generic SEO content, ghost-written executive thought leadership, or non-engineering long-form essays.
blog-google
IncludedGoogle API integration for blog performance: PageSpeed Insights, CrUX Core Web Vitals with 25-week history, Search Console performance, URL Inspection, Indexing API, GA4 organic traffic, NLP entity analysis for E-E-A-T, YouTube video search for embedding, and Google Ads Keyword Planner. Progressive feature availability based on credential tier (API key, OAuth/service account, GA4, Ads). Shares config with claude-seo at ~/.config/claude-seo/google-api.json. Use when user says "google data", "page speed", "core web vitals", "search console", "indexation", "GA4", "keyword research", "nlp entities", "blog performance", "youtube search", "google api setup".