Caption Writer
<!-- dual-compat:start -->
Use when
- Writes social media captions for any platform from a brief. Generates 3 variations — short, medium, and long — with a hashtag set for each. Invoke when the user says "write a caption", "write captions for", "I need post copy for", "draft some caption options", or when a content brief is provided and the user needs caption text. Also invoke when working through a content calendar and post copy is needed for specific items.
- Use this skill when it is the closest match to the requested deliverable or workflow.
Do not use when
- Do not use this skill for graphic design, video production, software development, or legal advice beyond the repository's stated scope.
- Do not use it when another skill in this repository is clearly more specific to the requested deliverable.
Workflow
- Collect the required inputs or source material before drafting, unless this skill explicitly generates the intake itself.
- Follow the section order and decision rules in this ; do not skip mandatory steps or required fields.
- Review the draft against the quality criteria, then deliver the final output in markdown unless the skill specifies another format.
Anti-Patterns
- Do not invent client facts, performance data, budgets, or approvals that were not provided or clearly inferred from evidence.
- Do not skip required inputs, mandatory sections, or quality checks just to make the output shorter.
- Do not drift into out-of-scope work such as code implementation, design production, or unsupported legal conclusions.
Outputs
- The requested copy asset or idea set in markdown, written to publish, review, or adapt without major rework.
References
- Use the inline instructions in this skill now. If a directory is added later, treat its files as the deeper source material and keep this execution-focused.
- Read
references/cta-and-platform-hooks.md
when the caption needs sharper hooks, better CTA wording, or cleaner platform-specific commitment levels.
- Read
../premium-commercial-writing/SKILL.md
when captions must support premium positioning, executive buyers, high-ticket offers, or stronger proof and value framing.
<!-- dual-compat:end -->
How to Use This Skill
Collect the Required Input below. Generate 3 caption variations per request — labelled Short, Medium, and Long — each with a distinct approach, appropriate hashtag set, and platform-specific formatting. Apply British English throughout. Do not reuse the same hook across variations — each must be genuinely different in structure and tone.
When the post supports a premium offer, executive audience, high-ticket service, or trust-sensitive category, apply
premium-commercial-writing
before finalising. The caption should create value, show proof or judgement, and ask for a next step without sounding desperate or discount-led.
Required Input
Ask for the following before writing:
- Client name / brand name — the business publishing the post
- Industry — sector (e.g. food and beverage, retail, professional services)
- Country / city — default Uganda/East Africa
- Primary goal — what the caption should achieve (awareness / engagement / enquiries / sales)
- Platform — Instagram / Facebook / LinkedIn / TikTok / WhatsApp broadcast / X (Twitter)
- Content type — photo / video / carousel / text post / Reel / Story
- Topic — what the post is about (one sentence)
- Key message — the single most important thing the audience should take away (one sentence)
- CTA — what the audience should do after reading (one clear action)
- Tone — professional / conversational / aspirational / educational (or specific brand tone words)
- Any keywords or phrases to include — mandatory phrases, product names, or campaign lines
- Any banned vocabulary — from 04-brand-voice-intake if available
Platform-Specific Rules
Apply these conventions when generating captions. Do not blend conventions across platforms.
Instagram
- Hook in the first line — the first 125 characters appear before the "more" cut; everything depends on this line
- Use line breaks between paragraphs — Instagram compresses unbroken text
- Conversational or aspirational tone depending on the brand
- Optimal length: 125–150 characters for maximum reach; up to 300 words for educational or storytelling content
- Hashtags: 5–10, placed at the end of the caption or noted as suitable for first comment; mix niche, community, and 1–2 branded tags
- No more than 2 emojis in the hook line
Facebook
- Warm, community-focused tone; question-based CTAs perform well ("Have you tried this? Let us know below")
- Optimal length: 40–80 characters for highest organic reach; up to 250 words for storytelling or event posts
- If the post includes a link, include it in the caption text — not only in the link preview
- Hashtags: 1–3 maximum; Facebook hashtags add limited discoverability — use sparingly
- Write as if speaking to a neighbour, not an audience
LinkedIn
- Professional, evidence-based, direct
- First 2 lines carry the entire weight — they appear before the "see more" cut; make them count
- No emoji overuse — 0–2 per post, purposeful only
- Optimal length: 150–300 words for engagement; 50–100 words for reach-focused posts
- Hashtags: 3–5 maximum, placed at the end; industry-relevant only — never generic tags
- No buzzwords — no "synergy", "leverage", "game-changing", "disruptive"
TikTok
- Punchy, casual, hooks the first scroll — caption is secondary to the video but still matters
- Optimal length: 100–150 characters
- CTA drives comments: "Comment 'YES' if this resonates" / "Tell me in the comments"
- Hashtags: 3–5 — 1 niche + 1 trending or broad + 1 branded; placed at end or woven naturally into text
- Conversational tone; can be playful — match the energy of the video
WhatsApp Broadcast
- Personal and direct — write as if to one person you know
- Open with "Hi [first name]" or equivalent warm greeting
- Short paragraphs — one idea per paragraph; easy to read on a small screen
- No hashtags
- One clear action: reply / click link / visit store — not multiple options
- Optimal length: under 150 words; every word must earn its place
X / Twitter
- Punchy, take a position, conversational
- 240–280 characters for a single post; use thread format for longer content (indicate thread breaks with 1/, 2/, etc.)
- 1–2 hashtags maximum; weave them naturally into the text — do not stack them at the end
- Hook with a take or observation, not an announcement
- Conversational, opinionated, direct — not corporate
Caption Quality Standards
Apply to every variation before outputting:
- Hook must work as a standalone sentence that creates curiosity or compels action
- One CTA per caption — never two competing actions
- British English: organisation, colour, programme, behaviour, analyse, recognise, centre, enquiry
- No banned vocabulary: leverage, game-changing, groundbreaking, revolutionary, delve, tapestry
- No filler phrases: "in today's world", "it's important to note", "at the end of the day", "we are excited to announce"
- Consistent with brand tone (from 04-brand-voice-intake if provided)
- Active voice throughout — not "great service is offered by us" but "we offer great service"
EA-Specific Hashtag Communities
Suggest relevant tags from this list when generating hashtag sets for Uganda/EA clients:
Uganda-specific: #UgandaTwitter #MadeInUganda #KampalaLife #UgandaEntrepreneur #BuyUgandaBuildUganda #DiscoverUganda #KampalaEats #KampalaFashion #UgandaFood #UgandaTech
East Africa regional: #EastAfricaBusiness #NairobiTwitter #EastAfricaCreatives #NairobiBusiness #DarEsSalaamBusiness #EastAfricaHealth #MadeInKenya
Pan-African: #AfricanEntrepreneur #MadeInAfrica #AfricanWomenInBusiness #AfricaRising #SMEAfrica #StartupAfrica #BlackOwnedBusiness #SocialEnterprise
Select and combine: 1–2 local/city tags + 1–2 niche industry tags + 1–2 community tags for most platforms. Adjust count to match platform conventions above.
Output Format
For each caption request, output in this structure:
CAPTION — [Platform] | [Content Type] | [Brand Name]
SHORT VARIATION
Approach: [describe the hook strategy — e.g. question-led / bold statement / curiosity gap]
[Caption text — short version]
Hashtags:
[hashtag set appropriate to platform and count]
MEDIUM VARIATION
Approach: [describe the hook strategy — different from Short]
[Caption text — medium version]
Hashtags:
[hashtag set]
LONG VARIATION
Approach: [describe the hook strategy — different from Short and Medium]
[Caption text — long version]
Hashtags:
[hashtag set]
NOTES FOR THIS POST:
- [Any platform-specific recommendation — e.g. "For Instagram, consider placing hashtags in the first comment to keep the caption clean"]
- [Any timing recommendation if relevant — e.g. "Post between 7–9pm EAT for highest Facebook reach among Kampala audiences"]
- [Flag if the brief contained ambiguity — e.g. "CTA was not specified — assumed WhatsApp link. Confirm before scheduling."]
Example Application (Uganda — Food and Beverage)
Brief: Platform: Instagram | Content type: Photo | Topic: New seasonal menu launch | Key message: Fresh, locally sourced ingredients | CTA: Visit the restaurant this weekend | Tone: Warm, aspirational | Brand: Nakibuuka Kitchen
SHORT VARIATION
Approach: Bold statement — leads with the product benefit, not the announcement
Fresh food tastes different when it travels 12 kilometres, not 1,200.
Our new seasonal menu is here — every ingredient sourced within Central Uganda. Come taste the difference this weekend.
🔗 Reserve your table via the link in bio.
Hashtags:
#NakibuukaKitchen #KampalaEats #MadeInUganda #UgandaFood #FarmToTable
MEDIUM VARIATION
Approach: Question-led — draws the reader into a shared experience before revealing the offer
When did you last eat a meal where you knew exactly where every ingredient came from?
Our new seasonal menu answers that question. Every vegetable, every grain, every cut of meat — sourced from farms within Central Uganda. Fresher. Better. Ours.
The menu changes with the season. This one is available until the end of April.
Visit us at [location] this weekend. Reservations via the link in bio.
Hashtags:
#NakibuukaKitchen #KampalaEats #UgandaFood #MadeInUganda #FarmToTable #KampalaLife #DiscoverUganda
LONG VARIATION
Approach: Story-led — opens with a behind-the-scenes narrative before the offer
Every Thursday morning, our kitchen team drives out to Wakiso District.
Not to shop at a supermarket. To collect directly from the farmers we have worked with for three years — the people who grow our tomatoes, harvest our plantain, and raise the free-range poultry that has been on our menu since we opened.
This week, we launched our new seasonal menu. It is the freshest one we have made.
Every dish reflects what is ready right now — not what is convenient. That means the flavours change. The menu changes. And the meals you eat here in April will taste different from the ones you enjoyed in January.
We think that is exactly as it should be.
Come and eat with us this weekend. Bring someone who has not been before.
Reservations: link in bio. Walk-ins welcome before 1pm.
Hashtags:
#NakibuukaKitchen #KampalaEats #UgandaFood #MadeInUganda #FarmToTable #KampalaLife #DiscoverUganda #UgandaEntrepreneur
Human Authenticity Gate
All content produced using this skill must pass through the
before client delivery. AI-generated or AI-assisted captions must meet the Golden Rule: every caption must look, feel, and sound as if it was crafted by the most skilled human copywriter with deep knowledge of the target audience and their cultural context. Generic, flat, or culturally misaligned output is not acceptable regardless of how efficiently it was produced.
Quality Criteria