mirror of
https://github.com/blacktwist/social-media-skills.git
synced 2026-09-19 05:44:19 +08:00
feat: add caption-writer-sms and expand creation skills with rules for Facebook, Instagram, TikTok, Pinterest, and YouTube
- New skill: caption-writer-sms (visual-first captions across Facebook, Instagram, TikTok, Pinterest, YouTube) - post-writer-sms 1.2.0: add FB, IG, TikTok, Pinterest, YouTube post rules - thread-writer-sms 1.3.0: add multi-part patterns for FB, IG (Reels/carousels/Stories), TikTok, YouTube (playlists, Shorts, Community), Pinterest Idea Pins - carousel-writer-sms 1.1.0: add IG, FB, TikTok photo-carousel, Pinterest Idea Pin specs - hook-writer-sms 1.1.0: add hook guidance for FB, IG, TikTok, Pinterest, YouTube (titles + thumbnails + first 5s) - content-repurposer-sms 1.1.0: expand matrix with video-derived derivatives, per-platform rules, register table, and leverage ranking Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Social Media Skills
|
||||
|
||||
AI agent skills for social media content strategy, creation, and analysis across text-first platforms.
|
||||
AI agent skills for social media content strategy, creation, and analysis across text-first and visual-first platforms.
|
||||
|
||||
## Skill Catalog
|
||||
|
||||
@@ -25,6 +25,7 @@ AI agent skills for social media content strategy, creation, and analysis across
|
||||
| [post-writer-sms](skills/post-writer-sms/) | Writes single standalone posts optimized for each platform's format and audience |
|
||||
| [thread-writer-sms](skills/thread-writer-sms/) | Writes multi-post threads with a clear narrative arc and strong opening hook |
|
||||
| [carousel-writer-sms](skills/carousel-writer-sms/) | Writes slide-by-slide carousel scripts for LinkedIn and similar visual formats |
|
||||
| [caption-writer-sms](skills/caption-writer-sms/) | Writes captions for visual-first platforms — Facebook, Instagram, TikTok, Pinterest |
|
||||
| [content-repurposer-sms](skills/content-repurposer-sms/) | Transforms existing content into new formats and adapts it across platforms |
|
||||
| [hook-writer-sms](skills/hook-writer-sms/) | Crafts high-performing opening lines to maximize engagement and stop-the-scroll |
|
||||
|
||||
@@ -108,11 +109,20 @@ npx skillkit install blacktwist/social-media-skills --list
|
||||
|
||||
## Supported Platforms
|
||||
|
||||
**Text-first**
|
||||
|
||||
- **LinkedIn** — long-form posts, carousels, newsletters
|
||||
- **Twitter/X** — posts, threads, spaces
|
||||
- **Threads** — posts, threads (Meta)
|
||||
- **Bluesky** — posts, threads, starter packs
|
||||
|
||||
**Visual-first** (captions only — see `caption-writer-sms`)
|
||||
|
||||
- **Facebook** — feed posts, photo and video captions
|
||||
- **Instagram** — feed, Reels, carousels, stories
|
||||
- **TikTok** — short-form video captions
|
||||
- **Pinterest** — pin titles and descriptions
|
||||
|
||||
## Tool Integrations
|
||||
|
||||
### BlackTwist (primary)
|
||||
|
||||
@@ -0,0 +1,396 @@
|
||||
---
|
||||
name: caption-writer-sms
|
||||
description: "When the user wants to write a caption for a visual-first social media post on Facebook, Instagram, TikTok, Pinterest, or YouTube. Also use when the user mentions 'caption,' 'Instagram caption,' 'IG caption,' 'Reels caption,' 'TikTok caption,' 'Pinterest description,' 'Pinterest pin caption,' 'Facebook caption,' 'YouTube description,' 'YouTube title,' 'Shorts caption,' 'photo caption,' 'video caption,' 'description for my pin,' or shares an image/video and asks for words to go with it. For text-first standalone posts on LinkedIn, Twitter/X, Threads, or Bluesky, see post-writer-sms. For multi-slide carousels, see carousel-writer-sms. For opening lines, see hook-writer-sms."
|
||||
metadata:
|
||||
version: 1.1.0
|
||||
---
|
||||
|
||||
# Caption Writer
|
||||
|
||||
## When to Use
|
||||
|
||||
- User asks to **write a caption** for an image, video, Reel, Short, or pin
|
||||
- User mentions "Instagram caption," "IG caption," "Reels caption," or "TikTok caption"
|
||||
- User mentions "Pinterest description," "pin caption," "Facebook caption," or "YouTube description"
|
||||
- User wants a **YouTube title**, video description, Shorts caption, or Community post text
|
||||
- User shares a visual asset (photo, video, graphic) and wants supporting copy
|
||||
- User wants to publish a Reel, TikTok, carousel post, pin, or YouTube video and needs the words that go with it
|
||||
- User says "what should I write under this," "caption this," or "give me a description for this"
|
||||
|
||||
This skill is for **visual-first platforms** where the image or video is the primary content and the caption supports it. For text-first platforms (LinkedIn, Twitter/X, Threads, Bluesky), use **post-writer-sms** instead.
|
||||
|
||||
## Role
|
||||
|
||||
You are an expert caption writer who knows that on visual platforms, **the visual stops the scroll and the caption closes the loop**. You write captions that earn the tap on "more," reward the pause, and convert lurkers into savers, sharers, and followers. You understand that each platform — Facebook, Instagram, TikTok, Pinterest — has its own grammar, hook mechanics, hashtag rules, and search behavior, and you write to those rules instead of fighting them.
|
||||
|
||||
## Context Check
|
||||
|
||||
Before writing, read `.agents/social-media-context-sms.md` to understand the user's voice, content pillars, target audience, and example captions if provided. Match vocabulary, sentence rhythm, emoji 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 caption I write sound like you."
|
||||
|
||||
If the user wants to proceed without it, use neutral defaults and flag the limitation.
|
||||
|
||||
---
|
||||
|
||||
## Input Gathering
|
||||
|
||||
Ask only for what the user has not already provided:
|
||||
|
||||
- **The visual** — describe the image/video, attach it, or summarize what it shows
|
||||
- **Target platform(s)** — Facebook, Instagram, TikTok, Pinterest, or multiple
|
||||
- **Format** — feed photo, carousel, Reel/Short/TikTok video, story, or pin
|
||||
- **Goal** — saves, shares, comments, follows, profile visits, link clicks, sales
|
||||
- **Specific angle, offer, or CTA** — what action should the viewer take?
|
||||
|
||||
If the user hands you a clear visual and platform, start writing — don't over-ask.
|
||||
|
||||
---
|
||||
|
||||
## Universal Caption Anatomy
|
||||
|
||||
Every visual-platform caption has three jobs, in this order:
|
||||
|
||||
1. **Hook** — first 1-2 lines, before the truncation point. Earns the "...more" tap.
|
||||
2. **Payoff** — the value, story, or insight the visual sets up
|
||||
3. **CTA** — clear next action: save, share, comment, follow, click, shop
|
||||
|
||||
The visual carries the attention. The caption carries the meaning.
|
||||
|
||||
---
|
||||
|
||||
## Caption Structure by Platform
|
||||
|
||||
### Facebook
|
||||
|
||||
**Format:**
|
||||
- Conversational, story-driven, personal — Facebook rewards posts that feel like a friend talking
|
||||
- Hook in line 1 (truncation kicks in around 477 characters on desktop, ~120 on mobile)
|
||||
- Use line breaks for readability; dense paragraphs underperform
|
||||
- Links work in the body and do not get suppressed the way they do on Instagram
|
||||
|
||||
**Specs:**
|
||||
- Soft sweet spot: **40-80 characters** for highest engagement on photo posts; longer storytelling captions (300-500 chars) work for personal posts and community content
|
||||
- 1-3 hashtags max — Facebook hashtags exist but rarely drive reach; only use them if they're branded or community-specific
|
||||
- Emojis are welcome but optional; avoid over-stacking
|
||||
- Tag relevant Pages and people when natural — boosts reach into their networks
|
||||
- A direct question at the end consistently outperforms statements
|
||||
|
||||
**What works:**
|
||||
- Personal stories and family/community moments
|
||||
- Behind-the-scenes and "look what happened" framing
|
||||
- Polls, "this or that" questions, and discussion prompts
|
||||
- Local context and named places
|
||||
|
||||
**Example Facebook caption:**
|
||||
|
||||
```
|
||||
Three years ago we opened the bakery with one oven and a loan from my mom.
|
||||
|
||||
This morning we hit our 10,000th loaf. 🍞
|
||||
|
||||
Stopping for a second to say thank you to every regular who told a friend about us.
|
||||
|
||||
Who's your favourite neighbourhood spot we should support next?
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 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, never just describes it
|
||||
- Strong CTA at the end that matches Instagram's two key engagement signals: **saves** and **shares**
|
||||
|
||||
**Specs:**
|
||||
- 2200 character limit; high-performing captions span the full range from one-liners to mini-essays
|
||||
- **Hashtags:** 3-10 is the current sweet spot. Mix branded, niche, and broader community tags. Place them at the very end of the caption or in the first comment — both work; consistency matters more than location
|
||||
- **No clickable links in the caption** — direct viewers to "link in bio" or use Instagram's link sticker in stories
|
||||
- Emojis are part of the language, not decoration; use them to break up text and add tone
|
||||
- **Always write alt text** in the accessibility settings — important for reach and accessibility
|
||||
- Tag collaborators, locations, and products to expand distribution
|
||||
- For Reels: the caption is secondary to the on-screen hook, but a strong written hook still drives the share/save
|
||||
|
||||
**What works:**
|
||||
- Hooks that promise a specific payoff: "3 mistakes I made," "the one thing I wish I knew"
|
||||
- Story openers that mirror the visual moment
|
||||
- Save-bait CTAs: "Save this for later," "Bookmark this for your next trip"
|
||||
- Share-bait CTAs: "Send this to the friend who needs it"
|
||||
- "Comment X for the link" mechanics for Reels and feed posts
|
||||
|
||||
**Caption length guide:**
|
||||
- **Photo feed post:** 80-300 characters typically
|
||||
- **Carousel:** 200-800 characters (carousel captions can be deeper since the visual already commits the viewer)
|
||||
- **Reel:** 100-300 characters; the video is the hook, the caption is the punchline or context
|
||||
- **Story:** keep on-image text short; off-image caption is rarely seen
|
||||
|
||||
**Example Instagram Reel caption:**
|
||||
|
||||
```
|
||||
I quit caffeine for 30 days. The first week was a horror movie.
|
||||
|
||||
What actually changed by day 30 — full breakdown in the video 👆
|
||||
|
||||
Save this if you've been thinking about it.
|
||||
Send it to the friend who's tried (and failed) three times.
|
||||
|
||||
#caffeinefree #habits #30daychallenge #healthcontent #wellnessjourney
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 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
|
||||
- TikTok captions are increasingly long-form; treat them as searchable text, not throwaway labels
|
||||
- Conversational, low-polish, native voice — overproduced captions feel like ads
|
||||
|
||||
**Specs:**
|
||||
- **2200 character limit** (expanded from 300 in 2022) — use the room when it adds value, but most high-performers stay under 150 characters
|
||||
- **3-5 hashtags** is the working range; mix one broad (#fyp, #foryou are not magic), one mid-tier niche, and a few specific topical tags
|
||||
- **TikTok SEO matters:** the caption is indexed for in-app search. Include the keywords someone would type to find this video
|
||||
- Mention sounds, trends, and creators when relevant ("@username taught me this")
|
||||
- Emojis are conversational; one or two work better than rows of them
|
||||
|
||||
**What works:**
|
||||
- Curiosity gaps that finish in the video: "Wait for it," "I was not ready for what happened at 0:32"
|
||||
- Listicle setups: "3 things I learned working at..."
|
||||
- Direct questions that invite a response in comments
|
||||
- "Part 1" / series framing to drive follows and return views
|
||||
- Searchable phrasings — write the way your audience searches
|
||||
|
||||
**Example TikTok caption:**
|
||||
|
||||
```
|
||||
the email template that got me 3 client replies in one week 👇
|
||||
|
||||
steal it, change the subject line, send it tomorrow
|
||||
|
||||
#coldemail #freelancetips #b2bmarketing #saleshacks
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Pinterest
|
||||
|
||||
**Format:**
|
||||
- Pinterest is a **search engine**, not a social feed — captions are SEO copy, not lifestyle prose
|
||||
- Pin **title** is its own field (100 character limit) and is the most important search signal
|
||||
- Pin **description** (the "caption") is up to 500 characters and supports the title with keyword-rich, helpful detail
|
||||
- Hashtags exist but Pinterest's own help docs and creator data show they're effectively ignored — **do not rely on hashtags**; rely on natural keywords
|
||||
|
||||
**Specs:**
|
||||
- **Title:** 100 character limit — front-load the primary keyword, write like a headline a searcher would click
|
||||
- **Description:** 500 character limit — natural, keyword-rich sentences that describe what the pin is for and who it helps
|
||||
- **Link** goes in the dedicated link field on the pin, not in the caption
|
||||
- Avoid stuffing — Pinterest penalises spammy keyword-stacking; write for a human searcher first
|
||||
- No emojis in titles (lowers click-through); 0-1 emojis in description if it fits the tone
|
||||
- Include the value proposition: who it's for, what they'll get, why they should save
|
||||
|
||||
**What works:**
|
||||
- Long-tail, specific keywords: "small kitchen organization ideas for renters" beats "kitchen ideas"
|
||||
- "How to," "ideas for," "best [X] for [Y]" framings — they match how people search
|
||||
- Numbers, year, and specifics: "15 budget-friendly..." or "2025 trends..."
|
||||
- Niche modifiers (style, season, audience, room, budget, skill level)
|
||||
|
||||
**Example Pinterest pin:**
|
||||
|
||||
```
|
||||
Title: Small Kitchen Organization Ideas for Renters (No Drilling Required)
|
||||
|
||||
Description: 15 renter-friendly ways to organize a tiny kitchen without damaging walls or losing your deposit. Includes adhesive hooks, tension rods, stackable bins, and over-door storage that actually works in apartments under 600 sq ft. Perfect for first apartments, college rentals, and anyone who moves often.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### YouTube
|
||||
|
||||
**Format:**
|
||||
- YouTube is a hybrid: a **search engine** (long-form videos) plus a **scroll feed** (Shorts) plus a **timeline** (Community posts)
|
||||
- Three distinct caption surfaces — **title**, **description**, and **on-Short caption** — each with its own rules
|
||||
- Long-form descriptions are read more like SEO + utility text than narrative captions; Shorts captions are tighter and more like TikTok
|
||||
- The **first 100-150 characters** of any description show above the "...more" fold on both desktop and mobile
|
||||
|
||||
**Specs:**
|
||||
|
||||
- **Title (long-form video and Shorts):** 100 character limit; **60-70 characters** is the sweet spot to avoid truncation in search and suggested results. Front-load the primary keyword + a curiosity gap or specific number. Avoid clickbait that the video doesn't deliver — retention drop is punished by the algorithm.
|
||||
- **Description (long-form):** 5000 character limit. Use the first 150 chars as the hook. Below the fold: a 1-2 paragraph summary, **timestamps/chapters** (helps watch time and SEO), useful links, social/CTA links, hashtags (3 max — appear above the title; pick the most relevant). Pin a top comment for the primary CTA or link if engagement matters more than description visibility.
|
||||
- **Description (Shorts):** much shorter — under 150 characters typically; Shorts are discovered through swipe, not search, so caption is supporting text plus a soft CTA ("subscribe for more," "full video on my channel")
|
||||
- **On-screen caption / on-Short text:** keep the on-screen hook under 6 words; YouTube auto-captions handle accessibility separately
|
||||
- **Hashtags:** 3 max in the description; the first hashtag becomes the clickable tag above the title. **#shorts** is required-ish for Shorts to be eligible for the Shorts shelf
|
||||
- **Tags field:** legacy and largely deprioritized — title, description, and thumbnail carry far more weight; don't over-invest in tags
|
||||
- **End screens / cards:** referenced from the description ("End screen at 9:47," "Cards link to...")
|
||||
- **Community posts:** text-first, similar to Facebook in tone; great for asking questions, sharing context, and warming the audience between video drops
|
||||
|
||||
**What works:**
|
||||
|
||||
- **Titles:** specific numbers, contrast, and "how I" framings — "How I Wrote 50 Newsletters in One Weekend (and Why You Shouldn't)"
|
||||
- **Descriptions:** lead with the value proposition in line 1, drop chapters at minute marks, keep links above the fold for high-intent viewers
|
||||
- **Shorts captions:** punchline that the video sets up, a curiosity tag, or a search keyword the audio doesn't say
|
||||
- **Community posts:** polls, questions, behind-the-scenes — drives watch-page revisit when the next video drops
|
||||
|
||||
**Example YouTube long-form video:**
|
||||
|
||||
```
|
||||
Title: I Tracked 200 Hours of Deep Work. Here's What Actually Made Me Faster.
|
||||
|
||||
Description:
|
||||
The 5 deep-work habits that doubled my output in 90 days — backed by 200 hours of timed sessions and zero productivity-bro nonsense.
|
||||
|
||||
Get the timer template I used: [link]
|
||||
Subscribe for one tactical video every Thursday: [link]
|
||||
|
||||
CHAPTERS
|
||||
0:00 The experiment setup
|
||||
1:48 Habit 1 — One tab, one task
|
||||
4:12 Habit 2 — The 90/20 rhythm
|
||||
7:30 Habit 3 — Inbox-on-airplane mode
|
||||
10:15 Habit 4 — Pre-decided start times
|
||||
13:02 Habit 5 — End-of-day cliffhanger
|
||||
15:48 Results and what didn't work
|
||||
|
||||
LINKS MENTIONED
|
||||
- Toggl Track: [link]
|
||||
- The Cal Newport book: [link]
|
||||
|
||||
#deepwork #productivity #focus
|
||||
```
|
||||
|
||||
**Example YouTube Shorts caption:**
|
||||
|
||||
```
|
||||
the 1-tab rule that saved my mornings 👇
|
||||
|
||||
full breakdown on the channel — link in bio
|
||||
|
||||
#productivity #deepwork #shorts
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Writing Process
|
||||
|
||||
1. **Identify the visual's role** — is the image/video the hook, the proof, or the punchline? The caption fills whichever role the visual doesn't.
|
||||
|
||||
2. **Write the hook line** — match it to platform truncation: 1-line punch for Instagram/Facebook, keyword-rich opener for Pinterest, on-brand reinforcement for TikTok. Use patterns from **hook-writer-sms** (curiosity gap, contrarian, story opener, statistic, list preview, confession, before/after).
|
||||
|
||||
3. **Draft the body** — match the user's voice from the context file. Reward the viewer for tapping "more" with a real payoff, not filler.
|
||||
|
||||
4. **Add the platform-native CTA:**
|
||||
- **Facebook:** open question, tag a friend, share your story
|
||||
- **Instagram:** "Save this for later," "Send to a friend," "Comment X for the link"
|
||||
- **TikTok:** "Follow for part 2," "Comment below," "Try this and tag me"
|
||||
- **Pinterest:** no CTA needed in the description — the pin itself is the saveable asset; the link does the work
|
||||
- **YouTube long-form:** "Subscribe for [specific value]," "Comment your [thing] below," "Watch next: [video link]"
|
||||
- **YouTube Shorts:** "Follow for part 2," "Full video on my channel," subscribe prompt — keep it to one CTA
|
||||
|
||||
5. **Format for readability** — break lines generously on Facebook and Instagram; keep TikTok captions tight; write Pinterest descriptions as scannable sentences with keywords distributed naturally.
|
||||
|
||||
6. **Apply hashtag rules per platform** (see specs above) — never copy the same hashtag set across platforms.
|
||||
|
||||
7. **Generate variants if requested** — 2-3 versions with different hooks, lengths, or CTAs are useful for A/B testing.
|
||||
|
||||
---
|
||||
|
||||
## Voice Matching
|
||||
|
||||
Pull from example captions in the context file to match:
|
||||
|
||||
- **Vocabulary** — first-person, plural, brand voice, casual contractions
|
||||
- **Punctuation habits** — em dashes, ellipses, all-lowercase, sentence fragments
|
||||
- **Emoji habits** — none, sparing, expressive, decorative — match exactly
|
||||
- **Sentence rhythm** — short and punchy vs. flowing and conversational
|
||||
- **Emotional register** — playful, authoritative, vulnerable, dry, warm
|
||||
|
||||
If the user hasn't provided examples, ask: "Want me to mirror a specific caption you've written before, or draft in a default voice for this platform?"
|
||||
|
||||
---
|
||||
|
||||
## Format-Specific Notes
|
||||
|
||||
### Reels, TikTok videos, YouTube Shorts
|
||||
- Treat the caption as supporting copy, not the main event
|
||||
- The on-screen hook (first 1-3 seconds) does the heavy lifting
|
||||
- Use the caption to add a punchline, a CTA, or a search keyword the video doesn't say out loud
|
||||
- For YouTube Shorts: include `#shorts` for shelf eligibility
|
||||
|
||||
### Carousels (Instagram, Facebook)
|
||||
- Caption can be longer because the carousel itself signals "this is worth your time"
|
||||
- Hook line should hint at what slide 10 reveals — drive the swipe
|
||||
- End with a save/share CTA — carousels are top performers for both signals
|
||||
|
||||
### Stories (Instagram, Facebook)
|
||||
- On-image text matters more than the caption
|
||||
- Use polls, sliders, question stickers, and link stickers — they're the actual engagement drivers
|
||||
- Captions in stories are rarely read; treat them as optional
|
||||
|
||||
### Pins (Pinterest)
|
||||
- Title and description are separate fields — fill both
|
||||
- Use vertical (2:3 ratio) imagery for highest reach
|
||||
- Rich Pins (article, product) auto-pull metadata; ensure your site supports them
|
||||
|
||||
### YouTube long-form videos
|
||||
- Title and description are separate fields — both matter for search
|
||||
- Lead the description with the value proposition; drop **timestamps/chapters** at minute marks for watch-time and SEO
|
||||
- Keep critical links above the "...more" fold (first ~150 chars)
|
||||
- Pin a top comment for the primary CTA when description visibility isn't enough
|
||||
|
||||
### YouTube Community posts
|
||||
- Tone is closer to Facebook than Instagram — text-first, conversational
|
||||
- Polls, questions, and quick context drive return visits when the next video drops
|
||||
- Image attachments are optional and rarely the main event
|
||||
|
||||
---
|
||||
|
||||
## Publishing with BlackTwist
|
||||
|
||||
When the BlackTwist MCP tools are available, offer to publish or schedule the caption directly with the visual:
|
||||
|
||||
> "Want me to schedule this for [platform]? I can queue it for your next available slot or pick a specific time."
|
||||
|
||||
Use `create_post` to publish; pass the caption, platform, and asset reference. Confirm visual platform support in the BlackTwist registry before promising scheduling.
|
||||
|
||||
When MCP tools are not available, output the caption as formatted plain text ready to copy-paste, and note any platform-specific actions required (e.g., "Add this to the Pinterest pin description field," "Paste hashtags into the first comment on Instagram if you prefer them off-caption," "Update your link in bio before publishing").
|
||||
|
||||
---
|
||||
|
||||
## Pre-Publish Checklist
|
||||
|
||||
Before delivering the final caption, verify:
|
||||
|
||||
- [ ] **Hook earns the tap** — would a viewer tap "more" or keep watching after line 1?
|
||||
- [ ] **Caption supports the visual** — adds meaning, doesn't just describe what's already shown
|
||||
- [ ] **Voice matches** — sounds like the user, not a generic brand
|
||||
- [ ] **CTA is platform-native** — saves/shares for Instagram, comments for TikTok, search keywords for Pinterest, questions for Facebook, subscribe + watch-next for YouTube
|
||||
- [ ] **Length is platform-appropriate** — Facebook 40-500, Instagram up to 2200, TikTok under 150 typically, Pinterest title ≤100 + description ≤500, YouTube title 60-70 + description up to 5000
|
||||
- [ ] **Hashtag rules respected** — 1-3 Facebook, 3-10 Instagram, 3-5 TikTok, **none on Pinterest**, ≤3 on YouTube (include `#shorts` for Shorts)
|
||||
- [ ] **Links in the right place** — Pinterest in the link field, Instagram in bio, TikTok in bio, Facebook can use body, YouTube above the description fold or pinned comment
|
||||
- [ ] **YouTube has chapters** when the video is over ~3 minutes
|
||||
- [ ] **Alt text drafted for Instagram** when accessibility is in scope
|
||||
- [ ] **Pinterest copy is keyword-led**, not lifestyle prose
|
||||
|
||||
---
|
||||
|
||||
## Boundaries
|
||||
|
||||
- Does not write text-first standalone posts for LinkedIn, Twitter/X, Threads, or Bluesky — see **post-writer-sms**
|
||||
- Does not write multi-post threads — see **thread-writer-sms**
|
||||
- Does not write slide-by-slide carousel scripts — see **carousel-writer-sms**
|
||||
- Does not produce visual design, image edits, video edits, or thumbnails — output is text copy only
|
||||
- Does not analyze caption performance — see **performance-analyzer-sms** for analytics
|
||||
- Does not define what to post or when — see **content-strategy-sms** and **content-calendar-sms**
|
||||
|
||||
## Related Skills
|
||||
|
||||
- **social-media-context-sms** — capture voice, audience, and platform context before writing
|
||||
- **hook-writer-sms** — generate and stress-test the first line independently
|
||||
- **post-writer-sms** — for text-first platforms where the words are the content
|
||||
- **carousel-writer-sms** — for slide-by-slide visual content where each slide carries copy
|
||||
- **content-repurposer-sms** — adapt a caption across visual platforms with the right rules per channel
|
||||
- **platform-strategy-sms** — decide which visual platform to prioritize before producing the asset
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: carousel-writer-sms
|
||||
description: "When the user wants to write content for a LinkedIn carousel, slide deck, or swipeable multi-slide format. Also use when the user mentions 'carousel,' 'slides,' 'LinkedIn carousel,' 'swipe post,' 'slide deck,' or 'visual content.' Outputs slide-by-slide text content (not visual design). For single posts, see post-writer-sms. For threads, see thread-writer-sms."
|
||||
description: "When the user wants to write content for a LinkedIn carousel, Instagram carousel, Facebook carousel, TikTok photo carousel, Pinterest Idea Pin, or any swipeable multi-slide format. Also use when the user mentions 'carousel,' 'slides,' 'LinkedIn carousel,' 'Instagram carousel,' 'IG carousel,' 'photo carousel,' 'TikTok photo carousel,' 'Idea Pin,' 'Pinterest Idea Pin,' 'swipe post,' 'slide deck,' or 'visual content.' Outputs slide-by-slide text content (not visual design). For single posts, see post-writer-sms. For threads, see thread-writer-sms. For caption copy under each slide post, see caption-writer-sms."
|
||||
metadata:
|
||||
version: 1.0.0
|
||||
version: 1.1.0
|
||||
---
|
||||
|
||||
# Carousel Writer
|
||||
@@ -11,6 +11,8 @@ metadata:
|
||||
|
||||
- User asks to **write a carousel** or create slide-by-slide content
|
||||
- User mentions "carousel," "slides," or "LinkedIn carousel"
|
||||
- User mentions "Instagram carousel," "IG carousel," or "photo carousel"
|
||||
- User mentions "TikTok photo carousel," "Idea Pin," or "Pinterest Idea Pin"
|
||||
- User says "swipe post," "slide deck," or "visual content"
|
||||
- User wants to turn an idea into a **multi-slide format**
|
||||
- User shares a topic and asks for a swipeable breakdown
|
||||
@@ -37,10 +39,11 @@ If the file does not exist, say:
|
||||
Ask only for what the user has not already provided:
|
||||
|
||||
- **Topic or key message** — the idea, framework, or insight the carousel will teach
|
||||
- **Target slide count** — recommend 7–12 slides for LinkedIn (sweet spot for depth without fatigue)
|
||||
- **Target platform** — LinkedIn, Instagram, Facebook, TikTok (photo carousel), Pinterest (Idea Pin); rules and slide counts differ per platform
|
||||
- **Target slide count** — recommend 7–12 for LinkedIn, 8-10 for Instagram, 5-8 for Facebook, 6-12 for TikTok photo carousels, 6-10 pages for Pinterest Idea Pins
|
||||
- **Goal** — educate, share a framework, list tips, tell a story, or present data
|
||||
|
||||
If the user gives you a topic, start drafting. Don't over-ask.
|
||||
If the user gives you a topic and platform, start drafting. Don't over-ask.
|
||||
|
||||
---
|
||||
|
||||
@@ -208,6 +211,81 @@ Body: I stopped writing about what I knew and started writing about what I strug
|
||||
|
||||
---
|
||||
|
||||
## Platform-Specific Rules
|
||||
|
||||
The body structure (cover → context → body → CTA) is universal. The specs below change per platform — slide count, slide ratio, text density, and what role the post caption plays.
|
||||
|
||||
### LinkedIn
|
||||
|
||||
- **Format:** PDF document upload (the "document post") rendered as a swipeable carousel; or native multi-image post
|
||||
- **Slide count:** 7-12; sweet spot is 9-10
|
||||
- **Slide ratio:** 1:1 (1080x1080) or vertical 4:5 (1080x1350); vertical takes more screen real estate in feed
|
||||
- **Text density:** can carry more text per slide than Instagram — LinkedIn readers expect depth
|
||||
- **Post caption** (text below the carousel): hook + 1-2 paragraph teaser of what the carousel covers; **no link in body** — drop it in the first comment
|
||||
- **Hashtags:** 3-5 at the end of the caption
|
||||
- **Pin a CTA comment** with the link or follow-up resource
|
||||
|
||||
### Instagram
|
||||
|
||||
- **Format:** native carousel post — up to **10 slides** (hard cap), or up to 20 with the recent expansion in some accounts
|
||||
- **Slide count:** 8-10 is the sweet spot; first slide is the cover
|
||||
- **Slide ratio:** 1080x1350 (4:5) for maximum vertical real estate, or 1080x1080 (1:1) — never landscape
|
||||
- **Text density:** lower than LinkedIn — Instagram readers fatigue on dense slides; max ~30 words per slide body, headers as large readable text
|
||||
- **Post caption:** hook in line 1 (first 125 chars before "...more"), 200-800 chars total, save/share CTA at the end
|
||||
- **Hashtags:** 3-10, end of caption or first comment
|
||||
- **Alt text:** write it in the accessibility setting on each slide
|
||||
- **Save and share** are the primary engagement signals — every carousel should explicitly invite both: "Save this for later," "Send to a friend who needs this"
|
||||
- **Loop the last slide back to the first** if appropriate — re-engagement boosts the algorithm
|
||||
|
||||
### Facebook
|
||||
|
||||
- **Format:** multi-photo post or native carousel ad format (organic carousels are less common but supported)
|
||||
- **Slide count:** 5-8; longer carousels underperform here vs. Instagram
|
||||
- **Slide ratio:** 1:1 works best across feed, Stories, and right-rail
|
||||
- **Text density:** moderate — Facebook readers tolerate more on-image text than Instagram but less than LinkedIn
|
||||
- **Post caption:** conversational, story-led, 200-500 chars; question CTA at the end
|
||||
- **Hashtags:** 1-3 max, only if branded or community-specific
|
||||
- **Tag relevant Pages** to expand reach into their networks
|
||||
|
||||
### TikTok (photo carousel)
|
||||
|
||||
TikTok introduced photo carousels (also called "photo mode" or "image post") in 2022 — an alternative to video that has its own algorithmic surface.
|
||||
|
||||
- **Format:** swipeable image post, vertical
|
||||
- **Slide count:** 6-12; goes up to 35 photos but keep it tight — viewers swipe fast
|
||||
- **Slide ratio:** 9:16 vertical (1080x1920) — same as TikTok video
|
||||
- **On-image text:** **the on-image text IS the hook**. Put the headline on slide 1 in large readable text, not in the caption. Keep on-image text under 6 words per slide for legibility on small screens
|
||||
- **Post caption:** under 150 chars typically; matches TikTok video caption rules — punchline, search keyword, or curiosity gap
|
||||
- **Hashtags:** 3-5, including a niche-specific tag and a broad tag
|
||||
- **Music:** add a trending audio track even though it's a photo carousel — TikTok rewards carousels with audio with broader distribution
|
||||
- **Looping carousels** with a punchline reveal on the last slide get rewatched, which boosts reach
|
||||
- **Native voice:** low-polish, native, conversational — overproduced photo carousels feel like ads and underperform
|
||||
|
||||
### Pinterest (Idea Pin)
|
||||
|
||||
Pinterest's swipeable multi-page format is called an **Idea Pin** (formerly "Story Pin").
|
||||
|
||||
- **Format:** vertical, full-screen, multi-page Idea Pin
|
||||
- **Page count:** 6-10 pages; up to 20 supported but viewer drop-off is steep past 10
|
||||
- **Page ratio:** 9:16 vertical (1080x1920) — full-bleed
|
||||
- **Each page is its own searchable surface:** treat the **first page as the search-keyword cover** — title and on-image text both indexed
|
||||
- **On-page text:** keyword-led, scannable, no walls of text; one teaching point per page
|
||||
- **Topic tags:** Pinterest has a dedicated topic-tag field for Idea Pins (different from regular pin descriptions); add 5-10 specific tags from Pinterest's predefined topic list
|
||||
- **No external link on individual pages** — Idea Pins don't carry per-page links the way regular pins do; use the description and creator profile to point traffic
|
||||
- **Hashtags:** still effectively ignored on Pinterest; lean on natural keywords in the title and on-page text
|
||||
- **Voiceover or recipe/list overlay** features are supported and boost completion rate
|
||||
- **Save** is the primary engagement signal — write each page so a saver can return to it as a standalone reference
|
||||
|
||||
### Carousel Caption vs. Slide Copy
|
||||
|
||||
The **slide copy** lives on the image. The **post caption** lives below the carousel on platforms that support it (LinkedIn, Instagram, Facebook, TikTok). Write them together but don't duplicate:
|
||||
|
||||
- The slides carry the value
|
||||
- The caption sets up the swipe and closes with the CTA
|
||||
- For deeper guidance on writing the post caption itself per platform, use **caption-writer-sms**
|
||||
|
||||
---
|
||||
|
||||
## Output Format
|
||||
|
||||
Output each slide as a clearly labeled block. Use this structure:
|
||||
@@ -299,4 +377,5 @@ CTA: Save this framework. Use it on your next post. Follow for one writing tip e
|
||||
|
||||
- **social-media-context-sms** — establish voice and platform preferences before writing slides
|
||||
- **hook-writer-sms** — craft a high-converting cover slide headline before building the carousel
|
||||
- **caption-writer-sms** — write the post caption that sits below the carousel on Instagram, Facebook, TikTok, and YouTube Community posts
|
||||
- **content-repurposer-sms** — turn an existing post, thread, or article into a carousel
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: content-repurposer-sms
|
||||
description: "When the user wants to turn one piece of content into multiple formats or adapt content across platforms. Also use when the user mentions 'repurpose,' 'turn this into,' 'adapt this for,' 'cross-post,' 'reformat,' 'blog to social,' 'newsletter to posts,' or 'get more from this content.' For writing original posts, see post-writer-sms. For threads, see thread-writer-sms. For carousels, see carousel-writer-sms."
|
||||
description: "When the user wants to turn one piece of content into multiple formats or adapt content across text-first and visual-first platforms (LinkedIn, Twitter/X, Threads, Bluesky, Facebook, Instagram, TikTok, Pinterest, YouTube). Also use when the user mentions 'repurpose,' 'turn this into,' 'adapt this for,' 'cross-post,' 'reformat,' 'blog to social,' 'newsletter to posts,' 'video to posts,' 'YouTube to clips,' 'Reels from a podcast,' or 'get more from this content.' For writing original posts, see post-writer-sms. For threads, see thread-writer-sms. For carousels, see carousel-writer-sms. For visual-first captions, see caption-writer-sms."
|
||||
metadata:
|
||||
version: 1.0.0
|
||||
version: 1.1.0
|
||||
---
|
||||
|
||||
# Content Repurposer
|
||||
@@ -45,16 +45,19 @@ If the user pastes content and names a platform, start repurposing — don't ove
|
||||
|
||||
## Repurposing Matrix
|
||||
|
||||
Use this table to identify the highest-value derivatives for any source format.
|
||||
Use this table to identify the highest-value derivatives for any source format. Visual-first platforms expect derivatives paired with a visual asset (image, video, carousel, pin) — note these in the **visual asset needed** column.
|
||||
|
||||
| **Source** | **Best Derivatives** |
|
||||
|---|---|
|
||||
| Blog post | LinkedIn post (key insight), Twitter/X thread (key takeaways), carousel (framework or tips), Threads post (casual take), 3-5 standalone posts |
|
||||
| Newsletter | Thread (expand the main argument), single post (the one sentence everyone needs to read), carousel (visualize the framework) |
|
||||
| Podcast / video transcript | Quote posts (pull the best 3 lines), thread of key moments, carousel of insights, one-liner standalone posts |
|
||||
| Existing social post | Adapt for other platforms (lengthen for LinkedIn, shorten for X), expand into a thread, compress into a Threads one-liner |
|
||||
| Case study / story | Thread (narrative arc), LinkedIn long-form post, carousel (before/after or steps) |
|
||||
| How-to / tutorial | Carousel (step-by-step), thread (one step per post), standalone tips (one tip per post across the week) |
|
||||
| **Source** | **Best Derivatives** | **Visual asset needed** |
|
||||
|---|---|---|
|
||||
| Blog post | LinkedIn post (key insight), Twitter/X thread (key takeaways), LinkedIn or Instagram carousel (framework or tips), Threads post (casual take), 3-5 standalone posts, Pinterest pins per section, Facebook post with image | Pin graphics, carousel slides, optional Reel summary |
|
||||
| Newsletter | Thread (expand the main argument), single post (the one sentence everyone needs), LinkedIn or Instagram carousel, Pinterest pin to the archive | Carousel slides, pin graphic |
|
||||
| Podcast / video transcript | Quote posts (pull the best 3 lines), thread of key moments, carousel of insights, **Reels / TikToks / Shorts from highlight clips (30-90s each)**, YouTube video itself, Pinterest video pin | Vertical clips for Reels/TikTok/Shorts, square clips for LinkedIn, audiogram for static feeds |
|
||||
| Existing social post | Adapt for other platforms (lengthen for LinkedIn, shorten for X), expand into a thread, compress into a Threads one-liner, **turn into a Reel script or TikTok hook** | Optional vertical video for Reels/TikTok |
|
||||
| Case study / story | Thread (narrative arc), LinkedIn long-form post, carousel (before/after or steps), Reel "story time" video, YouTube long-form video | Carousel slides, vertical video |
|
||||
| How-to / tutorial | Carousel (step-by-step), thread (one step per post), standalone tips (one tip per post across the week), **Reel/TikTok/Short demo (one step per video for a series)**, Pinterest Idea Pin (multi-page tutorial), YouTube long-form tutorial | Step graphics, demo footage, Idea Pin pages |
|
||||
| YouTube long-form video | Shorts (3-7 vertical clips with captions), TikTok clips, Reels, X thread of key takeaways, LinkedIn post linking to the full video, Pinterest video pin, Community post teaser, transcript-derived blog post | Vertical re-cuts, Shorts thumbnails |
|
||||
| Reel / TikTok / Short | Cross-post to other vertical platforms (Reels↔TikTok↔Shorts↔Pinterest video pin), thread of the lessons, LinkedIn caption + native video upload, transcript-as-blog | Same vertical asset, re-captioned per platform |
|
||||
| Webinar / live session | YouTube replay, podcast audio, blog recap, carousel of key slides, Reels/TikToks/Shorts of best moments, X thread of takeaways | Replay video, slide graphics, vertical clips |
|
||||
|
||||
---
|
||||
|
||||
@@ -108,9 +111,18 @@ Write every derivative as a **platform-native piece**, not a copy-paste transpla
|
||||
Apply these rules per platform:
|
||||
|
||||
- **Twitter / X** — punchy, under 280 characters per post, direct opening line, no filler, threads use numbered posts
|
||||
- **LinkedIn** — more context, conversational but professional, 3-5 short paragraphs, hook in the first line before the "see more" break
|
||||
- **LinkedIn** — more context, conversational but professional, 3-5 short paragraphs, hook in the first line before the "see more" break, no link in body (use first comment)
|
||||
- **Threads** — casual, like a text to a smart friend, raw and real beats polished and corporate, shorter is often better
|
||||
- **Instagram captions** — hook in the first line, depth in the body, CTA at the end, hashtags are optional and go last
|
||||
- **Bluesky** — clever, concise, anti-corporate; 300 char limit; no hashtag culture
|
||||
- **Facebook** — conversational, story-led, 40-500 chars, 1-3 hashtags max, links work in body, end with a direct question
|
||||
- **Instagram** — hook in the first 125 chars, 200-800 char caption, 3-10 hashtags at end or first comment, save/share CTA, no clickable links (link in bio), alt text on every asset
|
||||
- **TikTok** — caption is supporting copy under the video; under 150 chars typical, 3-5 hashtags, include in-app search keywords, low-polish native voice
|
||||
- **Pinterest** — title (≤100 chars, keyword-led) + description (≤500 chars, helpful and scannable); link in dedicated field; **no hashtag reliance** — use natural keywords; "how to" and "ideas for" framings perform best
|
||||
- **YouTube long-form** — title 60-70 chars with keyword + curiosity, description 5000 chars max with chapters/timestamps, 3 hashtags max, links above the "...more" fold
|
||||
- **YouTube Shorts** — caption under 150 chars, include `#shorts`, soft CTA; treat the video hook as primary
|
||||
- **YouTube Community posts** — text-first, similar tone to Facebook; great for polls and audience warm-ups between video drops
|
||||
|
||||
For deeper guidance on visual-first captions (Facebook, Instagram, TikTok, Pinterest, YouTube) use **caption-writer-sms**.
|
||||
|
||||
### Step 5 — Adapt Tone Per Platform
|
||||
|
||||
@@ -121,7 +133,14 @@ The voice stays the same. The register shifts.
|
||||
| Twitter / X | Sharp, opinionated, slightly edgy |
|
||||
| LinkedIn | Thoughtful, professional, story-forward |
|
||||
| Threads | Casual, human, low-key |
|
||||
| Instagram | Visual-first, caption supports the image |
|
||||
| Bluesky | Witty, dry, anti-corporate |
|
||||
| Facebook | Personal, conversational, community-led |
|
||||
| Instagram | Visual-first, caption supports the image; aspirational but specific |
|
||||
| TikTok | Native, low-polish, conversational; caption supports the video |
|
||||
| Pinterest | Helpful, search-led, keyword-rich; not a personal voice channel |
|
||||
| YouTube long-form | Educational, retention-led, hook-and-payoff structure |
|
||||
| YouTube Shorts | Same as TikTok — native and tight |
|
||||
| YouTube Community | Like Facebook — warm, question-led |
|
||||
|
||||
---
|
||||
|
||||
@@ -129,13 +148,18 @@ The voice stays the same. The register shifts.
|
||||
|
||||
After drafting, present a **leverage ranking** — which derivatives will generate the most reach relative to the effort to produce them.
|
||||
|
||||
Default ranking (adjust based on context file platform preferences):
|
||||
Default ranking (adjust based on context file platform preferences and whether the user produces video):
|
||||
|
||||
1. **Twitter/X thread** — high reach if the hook lands; algorithmic amplification on replies
|
||||
2. **LinkedIn post** — durable reach; LinkedIn content lives longer than X posts
|
||||
3. **Carousel** — saves drive discovery; one strong carousel can resurface for weeks
|
||||
4. **Threads post** — low effort, casual reach, good for testing angles
|
||||
5. **Standalone quote posts** — easy to batch; one piece of source content yields 3-5 posts
|
||||
1. **Reel / TikTok / Short from a video moment** — highest reach ceiling; vertical video has the strongest algorithmic amplification across Instagram, TikTok, and YouTube Shorts. Same asset, three platforms, three captions
|
||||
2. **Twitter/X thread** — high reach if the hook lands; algorithmic amplification on replies
|
||||
3. **LinkedIn post** — durable reach; LinkedIn content lives longer than X posts
|
||||
4. **Carousel** (LinkedIn or Instagram) — saves drive discovery; one strong carousel can resurface for weeks
|
||||
5. **YouTube long-form video** — highest evergreen lift; ranks in search and suggested for months/years
|
||||
6. **Pinterest pin or Idea Pin** — slow-burn evergreen reach via search; 6-12 month tail per pin
|
||||
7. **Threads post** — low effort, casual reach, good for testing angles
|
||||
8. **Facebook post** — strong for community-led brands, weaker for B2B and creator audiences
|
||||
9. **Standalone quote posts** — easy to batch; one piece of source content yields 3-5 posts
|
||||
10. **YouTube Community post** — useful as a bridge between video drops; not a primary reach lever
|
||||
|
||||
Present the ranking as a prioritized list with a one-line rationale for each.
|
||||
|
||||
@@ -234,5 +258,7 @@ Deliver repurposed content in this structure:
|
||||
- **social-media-context-sms** — establish voice, pillars, and platform mix before repurposing
|
||||
- **platform-strategy-sms** — decide which platforms to prioritize and why
|
||||
- **post-writer-sms** — write a single original post from scratch
|
||||
- **thread-writer-sms** — write a full multi-part thread
|
||||
- **carousel-writer-sms** — write and structure a carousel post
|
||||
- **thread-writer-sms** — write a full multi-part thread or video series
|
||||
- **carousel-writer-sms** — write and structure a carousel for any platform
|
||||
- **caption-writer-sms** — write platform-native captions for visual-first derivatives (Facebook, Instagram, TikTok, Pinterest, YouTube)
|
||||
- **hook-writer-sms** — generate strong hooks for each derivative
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: hook-writer-sms
|
||||
description: "When the user wants help writing opening lines, hooks, or first sentences that grab attention. Also use when the user mentions 'hook,' 'opening line,' 'first line,' 'scroll stopper,' 'attention grabber,' 'headline,' 'how to start my post,' or 'nobody reads past my first line.' Can be used standalone or invoked by other creation skills. For writing full posts, see post-writer-sms. For threads, see thread-writer-sms."
|
||||
description: "When the user wants help writing opening lines, hooks, first sentences, video hooks, thumbnails titles, or pin titles that grab attention. Also use when the user mentions 'hook,' 'opening line,' 'first line,' 'scroll stopper,' 'attention grabber,' 'headline,' 'video hook,' 'on-screen hook,' 'YouTube title,' 'thumbnail text,' 'pin title,' 'how to start my post,' or 'nobody reads past my first line.' Covers text-first platforms (LinkedIn, Twitter/X, Threads, Bluesky) and visual-first platforms (Facebook, Instagram, TikTok, Pinterest, YouTube). Can be used standalone or invoked by other creation skills. For writing full posts, see post-writer-sms. For threads, see thread-writer-sms."
|
||||
metadata:
|
||||
version: 1.0.0
|
||||
version: 1.1.0
|
||||
---
|
||||
|
||||
# Hook Writer
|
||||
@@ -173,6 +173,45 @@ Before generating hooks, read `.agents/social-media-context-sms.md` (if it exist
|
||||
- Self-aware humor and genuine takes outperform "growth hacks"
|
||||
- **Best patterns:** Confession, contrarian, question, bold claim
|
||||
|
||||
### Facebook
|
||||
- Hook in line 1 before mobile truncation (~120 chars)
|
||||
- Personal, conversational, story-led — Facebook rewards posts that feel like a friend talking
|
||||
- Direct questions outperform statements; community + family + local context land hardest
|
||||
- "Look what happened" and behind-the-scenes framings perform well
|
||||
- **Best patterns:** Story opener, question, empathy, before/after
|
||||
|
||||
### Instagram
|
||||
- The hook lives in **two places**: line 1 of the caption (before "...more" at ~125 chars) **and** on-screen text on the image/Reel
|
||||
- The visual is the first hook; the caption hook earns the "...more" tap
|
||||
- Caption hooks must be specific — generic openers lose to the visual
|
||||
- Reels: pair an on-screen hook ("3 mistakes I made") with a caption hook that promises a different angle ("the one I'm most embarrassed about ↓")
|
||||
- **Best patterns:** Curiosity gap, list preview, story opener, before/after, confession
|
||||
|
||||
### TikTok
|
||||
- The hook is a **video hook**, not a written one — first 1-3 seconds carry it
|
||||
- Caption hook is secondary, but matters for in-app SEO and as a curiosity tag
|
||||
- On-screen text hook should be punchy, under 6 words, and visible without UI overlap
|
||||
- The voice/audio hook in the first 2 seconds determines whether the viewer doesn't swipe
|
||||
- "Wait for it," "I was not ready for what happened at 0:32," and "POV:" framings work natively
|
||||
- **Best patterns:** Curiosity gap, contrarian, list preview, confession, story opener
|
||||
|
||||
### Pinterest
|
||||
- The hook is the **pin title** + the **image headline**, both indexed for search
|
||||
- Pinterest is search-driven, not feed-driven — hooks must contain the **keyword someone would type**
|
||||
- "How to," "ideas for," "best [X] for [Y]" framings match how people search
|
||||
- Numbers and specifics ("15 small kitchen ideas for renters") beat vague pitches
|
||||
- Avoid clickbait and contrarianism — Pinterest searchers are looking for help, not provocation
|
||||
- **Best patterns:** List preview, statistic/data, before/after, how-to (a pattern variant of list preview)
|
||||
|
||||
### YouTube
|
||||
- The hook is **three layered surfaces**: title, thumbnail, and the first 5-8 seconds of the video
|
||||
- Title and thumbnail must work together — the title sets the curiosity, the thumbnail confirms it
|
||||
- **Title hooks:** lead with the primary keyword + a specific number, contrast, or curiosity gap. Avoid clickbait that the video doesn't deliver — retention drop is punished by the algorithm
|
||||
- **Long-form video hooks:** restate the title in the first 5 seconds with stakes ("If you watch this you'll...") to lock in retention; the YouTube algorithm uses 30-second retention as a ranking signal
|
||||
- **Shorts hooks:** same as TikTok — first 1-3 seconds, on-screen text, voice all aligned
|
||||
- **Community post hooks:** like Facebook — direct question or quick context
|
||||
- **Best patterns:** Statistic/data, before/after, list preview, contrarian, curiosity gap
|
||||
|
||||
---
|
||||
|
||||
## Hook Generation Process
|
||||
@@ -265,3 +304,4 @@ Winner: Hook B — confession pattern drove 3x more comments on this topic
|
||||
- **post-writer-sms** — turn a strong hook into a full post
|
||||
- **thread-writer-sms** — expand a hook into a multi-post thread
|
||||
- **carousel-writer-sms** — adapt a hook as the cover slide of a carousel
|
||||
- **caption-writer-sms** — pair a video/image hook with a platform-native caption for visual platforms
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: post-writer-sms
|
||||
description: "When the user wants to write a social media post for LinkedIn, Twitter/X, Threads, or Bluesky. Also use when the user mentions 'write a post,' 'draft a post,' 'LinkedIn post,' 'tweet,' 'Threads post,' 'Bluesky post,' 'social media post,' 'help me write,' or shares a topic and wants it turned into a post. For multi-part content, see thread-writer-sms. For carousels, see carousel-writer-sms. For opening lines specifically, see hook-writer-sms."
|
||||
description: "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."
|
||||
metadata:
|
||||
version: 1.1.0
|
||||
version: 1.2.0
|
||||
---
|
||||
|
||||
# Post Writer
|
||||
@@ -152,6 +152,101 @@ the people who win are the ones who post anyway.
|
||||
|
||||
---
|
||||
|
||||
## 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-through); 0-1 in description if it fits the tone
|
||||
- Long-tail framings — "small kitchen organization ideas for renters" beats "kitchen ideas"
|
||||
- "How to," "ideas for," "best [X] for [Y]" framings match how people search
|
||||
|
||||
---
|
||||
|
||||
### YouTube
|
||||
|
||||
YouTube has three distinct post surfaces — long-form video, Shorts, and Community posts. Each plays by different rules.
|
||||
|
||||
**Long-form video (title + description):**
|
||||
- **Title:** 100 char limit; **60-70 chars** is the sweet spot to avoid truncation. Front-load the primary keyword + a curiosity gap or specific number
|
||||
- **Description:** 5000 char limit. First 150 chars are the hook (above the "...more" fold). Below: 1-2 paragraph summary, **timestamps/chapters**, useful links, hashtags (3 max — first hashtag becomes the clickable tag above the title)
|
||||
- Pin a top comment for the primary CTA when description visibility isn't enough
|
||||
|
||||
**Shorts:**
|
||||
- Caption stays under 150 characters — Shorts are discovered via swipe, not search
|
||||
- Include `#shorts` for Shorts shelf eligibility
|
||||
- Soft CTA: "subscribe for more," "full video on my channel"
|
||||
|
||||
**Community posts:**
|
||||
- Text-first, similar tone to Facebook
|
||||
- Polls, questions, and quick context drive return visits when the next video drops
|
||||
- Optional image attachment
|
||||
|
||||
**Specs across surfaces:** 3 hashtags max in descriptions; specific numbers and "how I" framings perform well; clickbait that the video doesn't deliver gets punished by retention drop.
|
||||
|
||||
---
|
||||
|
||||
## Writing Process
|
||||
|
||||
1. **Select or generate a hook** — use patterns from hook-writer-sms (contrarian, question, story opener, statistic, list preview, bold claim, empathy, before/after, confession). Match the hook pattern to the platform and content type.
|
||||
@@ -230,8 +325,10 @@ Before delivering the final post, verify:
|
||||
- [ ] **Voice is consistent** — does it sound like the user, not a generic expert?
|
||||
- [ ] **CTA is clear** — does the reader know exactly what to do or think next?
|
||||
- [ ] **Length is platform-appropriate** — within spec for the target platform
|
||||
- [ ] **No links in the LinkedIn body** — URL goes in the first comment
|
||||
- [ ] **Hashtag count is correct** — 3-5 for LinkedIn, 0-2 for X, 0-1 for Threads, 0 for Bluesky
|
||||
- [ ] **No links in the LinkedIn or Instagram body** — LinkedIn link goes in the first comment; Instagram link goes in bio
|
||||
- [ ] **Hashtag count is correct** — 3-5 LinkedIn, 0-2 X, 0-1 Threads, 0 Bluesky, 1-3 Facebook, 3-10 Instagram, 3-5 TikTok, 0 Pinterest, ≤3 YouTube
|
||||
- [ ] **YouTube has chapters** when a long-form video runs over ~3 minutes
|
||||
- [ ] **Pinterest title and description** are both filled, keyword-led, and link is set in the dedicated field
|
||||
- [ ] **White space is readable** — empty line after every 1-2 lines; no dense text blocks
|
||||
|
||||
---
|
||||
@@ -248,6 +345,7 @@ Before delivering the final post, verify:
|
||||
## Related Skills
|
||||
|
||||
- **social-media-context-sms** — capture voice, pillars, and platform preferences before writing
|
||||
- **caption-writer-sms** — deeper guidance for visual-first captions (Facebook, Instagram, TikTok, Pinterest, YouTube)
|
||||
- **hook-writer-sms** — generate and test opening lines independently
|
||||
- **platform-strategy-sms** — decide which platform to prioritize before writing
|
||||
- **content-repurposer-sms** — adapt a finished post across multiple platforms
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: thread-writer-sms
|
||||
description: "When the user wants to write a multi-part thread for Twitter/X, LinkedIn, or other platforms. Also use when the user mentions 'thread,' 'Twitter thread,' 'tweetstorm,' 'multi-part post,' 'series of posts,' or has a long-form idea that needs breaking into parts. For single posts, see post-writer-sms. For carousels, see carousel-writer-sms."
|
||||
description: "When the user wants to write a multi-part thread or content series for Twitter/X, LinkedIn, Threads, Instagram (Reel/carousel/Story series), TikTok (multi-part videos), YouTube (video series, multi-Short series), or Facebook. Also use when the user mentions 'thread,' 'Twitter thread,' 'tweetstorm,' 'multi-part post,' 'series of posts,' 'Part 1 / Part 2,' 'Reel series,' 'TikTok series,' 'YouTube series,' 'video series,' or has a long-form idea that needs breaking into parts. For single posts, see post-writer-sms. For carousels, see carousel-writer-sms."
|
||||
metadata:
|
||||
version: 1.2.0
|
||||
version: 1.3.0
|
||||
---
|
||||
|
||||
# Thread Writer
|
||||
@@ -255,6 +255,72 @@ The algorithm rewards engagement rate, not volume.
|
||||
- **No hard character ceiling pressure** — let posts breathe; 1-3 short paragraphs per post is fine
|
||||
- **Tone is casual** — polish is suspicious here; raw and real outperforms polished and corporate
|
||||
|
||||
### Facebook
|
||||
|
||||
- **No native threading** — a series is a sequence of standalone posts, similar to LinkedIn
|
||||
- **Label each part** — "Series (1/5):" or "Part 1 of 5" at the very top of each post
|
||||
- **Pin the first post** to the Page or Profile while the series is running so latecomers can find Part 1
|
||||
- **Each post can be longer** — 200-500 chars per post, conversational and story-driven
|
||||
- **Cross-link between parts** — close each post with "Part 2 drops Tuesday" or pin a comment with the link to the next/previous part
|
||||
- **Tone:** community-forward, personal, story-led — Facebook rewards posts that feel like a human, not a brand
|
||||
|
||||
### Instagram
|
||||
|
||||
Instagram has no native thread mechanism, but three formats can carry a multi-part series:
|
||||
|
||||
- **Reel series** — "Part 1," "Part 2" labelled in the on-screen text **and** in the first line of the caption. Pin Part 1 to the profile grid while the series is running. Use a consistent thumbnail style so the series is recognisable in the grid. Drive comments with "Drop a 🍿 if you want Part 2" — comment volume gates whether Part 2 gets shown to the same audience.
|
||||
- **Carousel as thread** — a single 10-slide carousel **is** a thread. One idea per slide, hook on slide 1, payoff on slide 10. See `carousel-writer-sms` for slide-by-slide structure.
|
||||
- **Story series** — sequential 24-hour Stories with consistent on-image labels ("1/6," "2/6"). Use a Highlights cover so the series is preserved past 24 hours.
|
||||
|
||||
**Rules across all three:**
|
||||
- The hook on Part 1 must promise the full series payoff, not just the first installment
|
||||
- 3-10 hashtags on each post; reuse the same set for series recognition
|
||||
- "Save" and "Share" are the engagement signals that compound across the series
|
||||
|
||||
### TikTok
|
||||
|
||||
TikTok is the strongest native fit for video threads outside of X.
|
||||
|
||||
- **Numbered video series** — "Part 1," "Part 2" labelled in the on-screen text **and** in the caption first line; the algorithm tends to surface later parts to viewers who watched earlier ones if you tag consistently
|
||||
- **"Reply to comment" videos** — answer a top comment from Part 1 as Part 2; this format compounds reach because the prior video drives discovery
|
||||
- **Hook each part independently** — every video must stand alone in the FYP; you cannot assume the viewer saw Part 1
|
||||
- **Pin Part 1 to your profile** — so viewers who land on Part 7 can navigate back to the start
|
||||
- **Caption per part:** include "Part X" + the search keyword for that specific part; TikTok captions are indexed for in-app search
|
||||
- **3-5 hashtags per part** — keep one consistent series-specific tag (e.g., `#mycoldemailseries`) so viewers can browse the full set
|
||||
- **Mention the series in voiceover too**, not just on-screen — accessibility plus retention
|
||||
|
||||
### YouTube
|
||||
|
||||
YouTube treats series as first-class content via **Playlists** for long-form and **Series links** for Shorts.
|
||||
|
||||
**Long-form video series:**
|
||||
- Bundle all parts into a **Playlist**; link the playlist URL above the description fold on every video
|
||||
- Title each part: `"[Series Name] — Part X: [Specific Topic]"` so search and suggested-videos rank them together
|
||||
- Use the **end screen** to autoplay the next part
|
||||
- Reference earlier parts in the first 30 seconds of voiceover; reference later parts in the closing 30 seconds
|
||||
- Keep thumbnails visually consistent (same colour, frame, or graphic) so the series is recognisable in suggested results
|
||||
|
||||
**Shorts series:**
|
||||
- **"Part 1 / Part 2"** labelled in the on-screen text and the caption — same rules as TikTok
|
||||
- Include `#shorts` plus a series-specific hashtag on every part
|
||||
- Pin the first Short to the Shorts shelf on the channel page
|
||||
- Use **chapters in long-form video descriptions** to reference Shorts: "Want the long version? Watch the full breakdown: [link]"
|
||||
|
||||
**Community posts as bridges:**
|
||||
- Drop a Community post between video parts to keep the audience warm — poll, question, behind-the-scenes
|
||||
- Use it to ask: "What should Part 3 cover?" — generates comments and shapes the series
|
||||
|
||||
### Pinterest
|
||||
|
||||
Pinterest doesn't natively support threads or sequential parts the way social platforms do. Use these workarounds when a series concept is genuinely useful:
|
||||
|
||||
- **Idea Pins (multi-page pins)** — up to 20 pages in a single pin, swipeable; functions as a self-contained thread. See `carousel-writer-sms` for slide-by-slide structure
|
||||
- **Topic-clustered Boards** — pin Part 1 / Part 2 / Part 3 as separate pins to the same board with consistent titling ("Cold Email Series — Part 1: Subject Lines," "Part 2: Opening Lines"); the board becomes the thread
|
||||
- **Link each pin** to its respective long-form article or video — Pinterest is a search engine, so each pin needs to stand alone in search results
|
||||
- **Skip explicit "thread" framing in titles** — searchers don't search for "Part 2"; lead with the keyword and append the part number
|
||||
|
||||
If the user wants a true sequential narrative on Pinterest, redirect to an Idea Pin or move the thread to another platform.
|
||||
|
||||
---
|
||||
|
||||
## Pacing Tips
|
||||
@@ -288,9 +354,11 @@ Before delivering the final thread, verify:
|
||||
- [ ] **First post was written using hook-writer-sms** — skill was invoked to generate variants, not drafted freehand
|
||||
- [ ] **One idea per post** — no post tries to do two jobs
|
||||
- [ ] **Transitions are present** — each post flows into the next
|
||||
- [ ] **Posts are numbered** — on Twitter/X, every post has its number
|
||||
- [ ] **Posts are numbered** — on Twitter/X, every post has its number; on visual platforms, "Part X" is in both on-screen text and the caption
|
||||
- [ ] **Closer has a CTA** — the reader knows exactly what to do after finishing
|
||||
- [ ] **Length matches platform** — 280 chars on X, longer on LinkedIn, conversational on Threads
|
||||
- [ ] **Length matches platform** — 280 chars on X, longer on LinkedIn, conversational on Threads, on-screen + caption combo for Reels/TikTok/Shorts
|
||||
- [ ] **Visual-platform parts stand alone** — each Reel, TikTok, or Short has its own hook and payoff; you cannot assume viewers saw Part 1
|
||||
- [ ] **Series is discoverable** — Part 1 pinned, consistent thumbnails/hashtag, playlist or board configured for YouTube/Pinterest
|
||||
- [ ] **Voice is consistent** — sounds like the user, not a generic expert
|
||||
- [ ] **White space is readable** — empty line after every 1-2 lines within each post; no dense text blocks
|
||||
|
||||
@@ -311,3 +379,5 @@ Before delivering the final thread, verify:
|
||||
- **hook-writer-sms** — generate and test opening lines before threading
|
||||
- **platform-strategy-sms** — decide which platform to prioritize and why
|
||||
- **post-writer-sms** — write a single post when the idea doesn't need a thread
|
||||
- **caption-writer-sms** — write the per-part captions for Reel/TikTok/Short series and Pinterest pins
|
||||
- **carousel-writer-sms** — when an Instagram carousel or Pinterest Idea Pin is the right thread format
|
||||
|
||||
Reference in New Issue
Block a user