---
name: "carousel_post_craft"
description: "Design carousel posts that earn the swipe on LinkedIn and Instagram: cover slide hooks, one idea per slide, pacing to a final slide payoff, platform sizing and export specs, and a lint script that checks a slide plan before design starts. Use when someone asks for a carousel, a swipe post, a slide post, a LinkedIn document post, or wants an existing carousel fixed."
metadata: { "includeInPrompt": true }
---

# Carousel Post Craft

## Purpose

Build carousels as one short story told across slides, not as a stack of
unrelated graphics. This skill is platform neutral: the same pacing method
works on LinkedIn document posts and Instagram carousels, and only the canvas
and export step change between them. It covers the writing and structure of
the carousel. It does not pick a design tool, and it does not promise
engagement numbers, because published percentages for this format come from
vendor blogs and disagree with each other.

Facts in this skill come from platform help pages and the WCAG standard.
Pacing advice is craft judgment, labelled as such where it appears. Full
specs and sources live in
[references/specs_and_pacing.md](references/specs_and_pacing.md).

## Workflow

### 1. Write the payoff sentence first

- State the whole carousel in one sentence a reader could repeat after
  swiping: what they will know, be able to do, or stop getting wrong.
- If the sentence needs two clauses joined by "and", the topic is two
  carousels. Split it now, while splitting is free.
- Pick the reader before the topic: name who this is for in one line, because
  the cover hook in step 3 has to answer "is this for me" at a glance.

### 2. Lay out the slide plan on paper

- Write every slide as a headline plus at most two short support lines in a
  plain text plan before opening any design tool. Designing first and writing
  later is how slides end up pretty and empty.
- Give each slide exactly one job: hook, one idea, one proof point, one step,
  or the call to action. A slide with two jobs gets split.
- Order for tension, not for tidiness. Put the most surprising or useful idea
  early enough that a reader who stops halfway still got something real, and
  hold one strong point for the second to last slide so the ending is earned.
- Aim for 5 to 10 slides for most topics. Under 5, a single image post
  usually serves the reader better. Over 10, completion drops in practice,
  so only go longer when every slide past 10 carries its own weight, such as
  a step in a procedure the reader came to save.
- Save the plan as JSON and run the linter before designing:
  `python3 scripts/carousel_lint.py plan.json --platform instagram`
  Fix every FAIL. Read every WARN and either fix it or be able to say why it
  stays.

### 3. Write the cover slide as a headline

- The cover has one job: earn the first swipe. It shows the payoff and the
  audience, and nothing else. Logos, dates, and series titles move to the
  final slide or shrink to a corner.
- Keep the cover headline at 12 words or fewer. Specific beats broad: a
  number, a named mistake, or a concrete result the reader wants. "5 checks
  before you ship a migration" earns a swipe. "Migration tips" does not.
- Promise only what the slides deliver. A cover that oversells gets one fast
  swipe and a reader who stops trusting the next post.
- Add a visible swipe cue on the cover (an arrow, "swipe", or the first slide
  number of a "1/8" marker). Readers cannot act on a format they cannot see.

### 4. Pace the middle slides

- One idea per slide, stated in the headline. Support lines explain or prove
  the headline, they never introduce a second point.
- Keep body text under roughly 45 words per slide. If a slide needs more,
  the idea is not finished being thought through, or it belongs in the
  caption or a linked article.
- Put a progress marker on every slide after the cover ("3/8" or a small
  page number). Readers commit to a sequence whose length they can see.
- Keep one layout grid, one type pairing, and one accent color across the
  whole set. Consistency is what makes ten separate images read as one
  document, and changing layouts mid-set reads as carelessness.
- End every slide with a reason to continue: a question the next slide
  answers, a numbered list that is visibly unfinished, or a setup whose
  payoff is one swipe away. A slide that feels complete invites the reader
  to leave satisfied but early.

### 5. Close with one call to action

- The final slide asks for exactly one thing: save it, share it with a named
  kind of person, answer one specific question in the comments, or follow
  for a named series. Two asks on one slide halve both.
- Repeat the payoff in one line above the ask, so a reader who landed on the
  last slide from a reshare still gets the point.
- Match the ask to the content. A reference carousel earns a save ask. A
  story earns a comment question. Asking for shares on a post nobody would
  send to a colleague wastes the slide.

### 6. Set the canvas and export for the platform

- Instagram: build at 1080 x 1350 px (4:5 portrait) for the most feed space,
  or 1080 x 1080 (1:1) when the source images are square. Export every slide
  at exactly the same size. The first slide sets the aspect ratio for the
  whole carousel, so a stray size crops everything after it. The limit is 20
  slides, photos and video mixed.
- LinkedIn: build slides at 1080 x 1350 or 1080 x 1080, stack them in order,
  and export one PDF. Upload it through the Document option in the composer
  and give the document a plain descriptive title, because that title is
  what shows in the feed and in search. LinkedIn caps documents at 100 MB
  and 300 pages, far above any sane carousel length.
- Keep key text inside the center of portrait slides. Profile grids crop
  portrait posts toward square, so a headline touching the top or bottom
  edge gets cut in the grid view even though the feed view is fine.
- Slides cannot be reordered or edited one by one after posting on either
  platform. Proof the exported file in order, at phone size, before it goes
  up.

### 7. Check readability and write the caption

- Text on slides is an image, so screen readers get nothing from it. Put the
  full text of the slides in the caption or in alt text where the platform
  offers it. A carousel a screen reader cannot read is a post part of the
  audience never receives.
- Check text contrast against WCAG 2.2 AA: at least 4.5:1 for body text,
  at least 3:1 for large headline text. The linter computes the ratio when
  the plan includes text and background colors.
- Write the caption to add what the slides could not hold: the context, the
  source, the honest caveat. Do not paste the slide text word for word on
  top of the alt text duty above; the caption is the place for the longer
  version, told as prose.
- Read every slide aloud once. Carousel typos sit in large type in public
  and cannot be quietly edited afterwards.

## Output Contract

Deliver, in this order:

- The payoff sentence and the named reader, in one or two lines.
- The slide plan as a numbered list: slide number, its one job, its headline,
  and its support lines.
- The lint result for the plan (PASS, or the FAIL and WARN lines with what
  was fixed).
- The platform export spec used: canvas size, file format, slide count.
- The caption, written as prose, carrying the full slide text for
  accessibility plus any context the slides left out.
- The final slide call to action, stated on its own line so it can be checked
  against step 5.

## Operating Rules

- Platform neutral by default. Adapt an existing carousel to a second
  platform by re-exporting at that platform's canvas and rewriting the cover
  for that audience, not by posting the same files twice.
- Never invent engagement statistics, save rates, or algorithm claims for
  this format. If a number cannot be traced to a platform source or a named
  study, it stays out.
- One carousel, one topic. A request covering three topics ships as three
  carousels or one carousel plus two posts, decided with the user.
- The plan gets linted and read aloud before design starts. A plan that
  fails the linter does not get rescued by good visuals.
- Treat every slide as permanent and downloadable. LinkedIn document posts
  can be saved as PDF by any viewer, so nothing goes on a slide that should
  not travel on its own: no internal numbers, no screenshots with private
  details, no draft claims.
