# Caption Writer

> Write captions, standalone Instagram/LinkedIn/X posts, and CTAs. Use when the user wants a caption, a post body, a LinkedIn post, a tweet/thread, or a call-to-action, or says "napisz caption", "opis pod reels", "post na linkedin", "napisz posta", "write a caption", "linkedin post", "write the CTA", "thread on X". Uses the 6 caption types (relatable story, tool list, surprising fact, before/after, simple question, educational body) and PAS / BAB skeletons for text posts, one-idea-one-post, scannable, with an ABC close and a low-friction ManyChat comment-trigger CTA. Produces multiple variants.

- Skill: `lumizone/caption-writer` (Agent Skill)
- Install (CLI): `npx skillmds@latest add lumizone/caption-writer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/lumizone/caption-writer/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: lumizone (https://skillmd.com/u/lumizone)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/lumizone/caption-writer

---


# caption-writer

Turn an idea (or a carousel/hook you already have) into finished caption and
post copy. Default output: **English**. Match the recipient's language if the
target audience is non-English.
Reference: caption types + PAS/BAB + ABC close + ManyChat in
`../social-content-os/reference/frameworks.md` §3, §8, §11.
Load `../social-content-os/brand.json` for voice and the comment-trigger WORD.

## Inputs

- The idea or the asset it accompanies (carousel topic, Reel, hook).
- Platform: Instagram caption, LinkedIn post, X post/thread.
- Funnel job: ToF (reach), MoF (trust), or BoF (offer) — sets the CTA aggressiveness.

## Method

- **Open with the hook.** First line = the scroll-stopper (pull from hook-lab if
  available). On LinkedIn the first two lines must clarify the topic and trigger a
  personal concern, because the rest is hidden behind "see more".
- **Pick the structure:**
  - Instagram caption → one of the 6 caption types that fits the idea.
  - LinkedIn / text post → **PAS** (Problem, Agitate, Solution) or **BAB**
    (Before, After, Bridge). One idea only.
  - X → either a single sharp post or a thread (hook post + 3–6 beats + CTA post).
- **Write for scanning:** short sentences, line breaks, no jargon, no walls of text.
- **Close with ABC:** one clear, low-friction CTA. For ToF/MoF default to the
  comment-trigger ("Comment WORD and I'll DM you ...") so ManyChat can do the
  handshake. For BoF, a direct offer/link CTA.
- **Hashtags:** 3–6 relevant, specific (niche + topic), never 30 generic ones.

## Output

Produce **3 variants** using different angles (e.g. story vs fact vs question) so
the user can A/B test:

1. Variant A, B, C — each labeled with its caption type / framework.
2. For each: the body copy, the CTA line, and a short hashtag set.
3. A one-line note on which variant to lead with for the stated funnel job and why.

No AI tells: no em-dashes, no en-dashes, no smart quotes, no
"unlock/unleash/elevate/dive in/in today's fast-paced world".

