instagram-reels-publishing — Claude Code skill: publish Reels
Takes a finished Reel through the publish step: 9:16 specs, safe zone, grid-safe cover and post settings. Useful when the edit is done and you need it to go out uncropped.
npx skills add social-media-skills/skills --skill instagram-reels-publishing -a claude-codeWhat instagram-reels-publishing does
This skill covers publish mechanics, not the script and not the caption. It reads brand-profile plus the finished Reel asset, then returns the publish settings spec, a cover brief and a specs/safe-zone checklist. Everything runs on the FRAME framework: frame it 9:16, reserve the safe zone, art the cover for the grid, match caption and audio, emit on schedule.
Reels usually get squashed at the publish step, not because the content is weak. Instagram renders a Reel in three crops: full 9:16 in the Reels tab, 4:5 in the feed, and 3:4 (1080×1440) in the profile grid. Keep the hook, the face and the CTA in the central safe zone, and leave the top and bottom UI bands clear. The cover is picked before publishing and cannot be edited after upload, so a custom upload beats a video frame — plan it ahead.
WoopSocial does the publishing: postType REEL plus video, caption and cover, on a schedule and validated through platform-specs-and-validation. Trending audio, Share-to-Feed, tags and Reel Insights stay native in the Instagram app. The video, the cover and burned-in captions come from other tools, and other-platform watermarks have to go before upload.
What it helps with
- publish a finished Reel without crops or blur
- map the safe zone across Instagram's three crops
- prepare a grid-safe cover before publishing
- run a pre-publish spec checklist
- tell what publishes automatically and what stays in-app
Example prompts for the agent
- Check my Reel against the specs and safe zone, then build a pre-publish checklist
- Write a cover brief for the 3:4 profile grid
- Set up the publish settings to schedule this Reel through WoopSocial
How to install instagram-reels-publishing
1Skills CLI (Vercel)
npx skills add social-media-skills/skills --skill instagram-reels-publishing -a claude-code2Manually: put the files in place
~/.claude/skills/instagram-reels-publishing/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/instagram-reels-publishing/
1Skills CLI (Vercel)
npx skills add social-media-skills/skills --skill instagram-reels-publishing -a codex2Manually: put the files in place
.agents/skills/instagram-reels-publishing/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add social-media-skills/skills --skill instagram-reels-publishing -a cursor2Manually: put the files in place
.cursor/skills/instagram-reels-publishing/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install social-media-skills/skills instagram-reels-publishing2Manually: put the files in place
.github/skills/instagram-reels-publishing/SKILL.md1Skills CLI (Vercel)
npx skills add social-media-skills/skills --skill instagram-reels-publishing -a gemini-cli2Platform CLI
gemini skills install https://github.com/social-media-skills/skills --path skills/instagram-reels-publishingManually: put the files in place
.devin/skills/instagram-reels-publishing/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add social-media-skills/skills --skill instagram-reels-publishing -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about instagram-reels-publishing
How do I install instagram-reels-publishing in Claude Code?
Run npx skills add social-media-skills/skills --skill instagram-reels-publishing -a claude-code. The skill lands at ~/.claude/skills/instagram-reels-publishing/SKILL.md.
What does instagram-reels-publishing do?
It specs the publish settings, writes the cover brief and runs the specs/safe-zone checklist for a finished Reel, plus advises on trending audio and tags.
What does the skill not do?
It does not render the video, design the cover or burn in captions — those come from other tools. Trending audio, Share-to-Feed, tags and Reel Insights stay native in the Instagram app.
Source text
SKILL.md · MIT
--- name: instagram-reels-publishing description: >- The Instagram Reels publish-mechanics skill -- distinct from reels-script (the script), instagram-seo (the keyword caption), and platform-specs-and-validation (cross-platform validation). Use when someone has a finished Reel and needs to publish it correctly: specs, cover, safe zone, publish settings. It gets the Reel OUT the way Instagram displays it: 9:16 spec-clean video, the safe zone that survives the feed and profile-grid crops, a custom grid-safe cover (chosen before publish, can't edit after), the keyword caption, and audio. Uses the FRAME framework. Reads brand-profile + the Reel asset first. The agent specs the publish settings, cover brief, and specs/safe-zone checklist, and advises audio/tags. WoopSocial publishes postType REEL + video + caption + cover on a schedule; trending audio, Share-to-Feed, tags, and Reel Insights stay native/in-app; the video/cover come from other tools. Remove other-platform watermarks; metrics never fabricated. version: 1.0.0 --- # instagram-reels-publishing The **Reel publish-mechanics skill** — get a finished Reel **out** the way Instagram displays it (specs, safe zone, cover, settings). The agent **specs the publish settings + the cover brief + the specs/safe-zone checklist + advises audio/tags**; **WoopSocial publishes postType REEL + video + caption + cover**; **trending audio, Share-to-Feed, tags, quality + Insights are native/in-app**, and the video/cover/burned-in captions come from other tools. ## The POV: the Reel is made elsewhere — this gets it OUT spec-clean Great Reels get squashed/cropped/blurred at the **publish step** — a sizing/settings problem, not a content problem. Design for **how Instagram actually displays a Reel**: full **9:16** in the Reels tab, a **4:5** crop in the feed, and the **3:4 (1080×1440)** profile-grid crop (the 2025 rectangular-grid change) — so keep critical content **centered** and in the **safe zone.** The **cover** is chosen before publish and **can't be edited after.** WoopSocial publishes **postType REEL + video + caption + cover**; the trending audio, Share-to-Feed, tags, and quality settings are native/in-app, and the video/cover/captions come from other tools. ## Read these first 1. **brand-profile** — cover/caption style. 2. the **finished Reel asset** (+ topic). ## The framework: FRAME (Depth: `references/the-frame-framework.md`.) - **F — Frame it 9:16, spec-clean:** 1080×1920, MP4/MOV H.264 30/60fps ≥1080p ≤4GB (~15–20 Mbps); off 0.5625 → crops/letterboxes; **remove other-platform watermarks.** - **R — Reserve the safe zone:** top ~250px + bottom ~350px are UI; keep **hook text/face/CTA** in the central safe zone (survives the **4:5 feed + 3:4 grid crops**). - **A — Art the cover for the grid:** choose before publishing; a **custom upload beats a video frame**; key elements + bold ≥60px text in the **3:4-grid-safe center**; **can't edit after upload** (→ `ideogram`/ `nano-banana`). - **M — Match caption + audio:** publish the **keyword caption** (← `instagram-seo`); audio beats silent + trending audio is pushed (native); the first-3-sec hook (← `reels-script`); burned-in captions in the safe zone (← `captions-and-clipping`). - **E — Emit on schedule + mind what's native:** WoopSocial publishes **postType REEL + video + caption + cover**, scheduled + spec-validated (→ `platform-specs-and-validation`); **native/in-app:** trending audio, Share-to-Feed, collab/product tags, media-quality, Reel Insights. ## The reality (verify-quarterly) 9:16 1080×1920 canonical (off 0.5625 crops/letterboxes); MP4/MOV H.264 30/60fps ≥1080p ≤4GB ~15–20 Mbps; length ~90s / 3 min in-app / ~15 min third-party; the 3 crop contexts (Reels tab 9:16, feed 4:5, **profile grid 3:4 1080×1440** [2025 rectangular-grid change], link 1.91:1); safe zones (top ~250 / bottom ~350 UI; central ~1320 safe; March 2026 unified FB+IG safe zone); cover (chosen before publish, frame or custom upload, **can't edit after**, renders 9:16 feed + 3:4 grid, custom > frame, bold ≥60px center); audio (with-audio > silent, trending pushed [native]); hook first 3s; burn captions (safe zone); remove watermarks; blurry fixes (15–20 Mbps VBR, ~30-min processing, Rec.709, desaturate reds); media-quality native: `references/reels- publishing-2026-reality.md`. The spec sheet + pre-publish checklist, the safe-zone map, the cover brief, the publishable-vs-native table, the publish block + worked examples: `references/specs-cover-and-publish.md`. ## Honest scope (never violate) - **The agent** specs the publish settings, writes the **cover brief**, runs the **specs/safe-zone checklist**, and **advises** trending-audio/Share-to-Feed/tags. - **WoopSocial publishes** **postType: REEL + the 9:16 video + the caption (`content.text`) + the cover (REEL-only)** on a **schedule**, validated via `platform-specs-and-validation`. - **WoopSocial does NOT:** select **trending audio** (IG's licensed library — not via API; native), toggle **Share-to-Feed** (native), add **collaborator/product tags** (native), trim the **video**, set **media-quality** (native), or read **Reel Insights** (native). It can't **render the video** (video tools/ creator), **design the cover** (image tools), or **burn in captions** (`captions-and-clipping`). - **9:16 1080×1920** or it crops/blurs; **content in the safe zone** (survives the 4:5 feed + 3:4 grid crops); **custom cover — can't edit after upload**; **remove other-platform watermarks**; **never fabricate reach.** (Scope, distinctions + connections: `references/scope-and-connections.md`.) ## Distinct from its siblings (route correctly) **instagram-reels-publishing (this)** = the publish MECHANICS (specs/safe-zone/cover/settings) · **reels- script** = the script · **instagram-seo** = the keyword caption (pairs — published here) · **platform-specs- and-validation** = the cross-platform validation (this uses it) · **captions-and-clipping** = the burn-in · **tiktok-video-publishing**/**youtube-publishing-and-metadata** = the sibling publish skills · **thumbnail- design** = YouTube thumbnails (the cover is the IG analogue) · **instagram-growth** = the strategy. ## Where this connects Reads first: **brand-profile** + the **finished Reel asset.** Pulls from: **reels-script** (the hook/script), **instagram-seo** (the keyword caption), the **video tools** (`veo-3`/`luma`/`kling`/`heygen` via **ai-video**) for the clip, **ideogram**/**nano-banana** for the **cover**, **captions-and-clipping** for the burned-in captions. Validates with: **platform-specs-and-validation** (9:16, ≤4GB, MP4/MOV). Publishes via: **scheduling-and-queue → WoopSocial** (postType REEL + video + caption + cover). Measures with: native **Reel Insights** + **analytics-and-reporting**. Trending audio, Share-to-Feed, tags, quality, Insights + asset creation stay native/other-tools. ## Definition of done A finished Reel published spec-clean: 9:16 at 1080×1920 (MP4/MOV H.264, ≤4GB, no other-platform watermark), with the hook/face/CTA centered in the safe zone so it survives the 4:5 feed + 3:4 grid crops; a custom grid-safe cover briefed to an image tool (bold ≥60px text in the 3:4 center, chosen before publish since it can't be edited after); the keyword caption (from instagram-seo) and audio in place, with the hook routed to reels-script and the burn-in to captions-and-clipping; postType REEL + video + caption + cover published via WoopSocial on a schedule and validated via platform-specs-and-validation, while trending audio, Share-to-Feed, collaborator/product tags, media-quality, and Insights stay native/in-app; nothing fabricated; correctly distinguished from reels-script, instagram-seo, and platform-specs-and-validation.
© social-media-skills · MIT · social-media-skills/skills