calesthio/social-short-production
Plan, produce, adapt, finish, deliver, and improve platform-ready short vertical social videos from a brief, script, transcript, or source media. Use for TikTok videos, Instagram or Facebook Reels, YouTube Shorts, LinkedIn vertical clips, and cross-platform social cutdowns when the work requires audience and objective definition, an honest hook and promise, short-form beat or shot planning, UI-safe layout, captions and accessibility, speech/music/SFX mixing, platform-specific exports, rights and AI or sponsorship disclosure, analytics-led retention iteration, or final QA and repair. Do not use as a provider-specific image, video, voice, or music generation guide.
npx skills add https://github.com/calesthio/generative-media-skills --skill social-short-production
Produce an intentional short video, not merely a vertical crop. Treat each platform as a distinct playback, interface, policy, and measurement environment.
Interpret guidance by its label:
Do not turn a heuristic such as “hook in three seconds,” “cut every two seconds,” or “master at -14 LUFS” into a universal requirement. Platform metrics and recommendation systems change, and audience intent can outweigh tempo.
Before scripting or cutting, resolve the fields that can change the result:
If a critical item is unknown, state an assumption and make the plan reversible. Do not invent product claims, testimonials, measurements, or permissions.
Return a compact production contract before detailed creative work:
Primary objective:
Primary audience and viewing context:
Viewer tension or need:
Promise and proof available:
Primary platform/placement:
Secondary platforms:
Target duration range:
Desired viewer action:
Source material and gaps:
Rights/disclosure status:
Primary metric + guardrails:
Approval owner:
Recheck official documentation on the day of export. Record the verification date and placement; organic, ad, boosted, and in-app-created posts can have different rules.
| Surface | Documented facts useful to production | Production consequence |
|---|---|---|
| YouTube Shorts | Square or vertical uploads up to three minutes are categorized as Shorts under YouTube's current upload rules. Since 2025-03-31, a public Shorts “view” counts starts or replays with no minimum watch time; “engaged views” remains available for viewers who chose to continue watching. Shorts over one minute with an active Content ID claim are blocked globally. [S1][S2] | Do not compare public views with old Shorts cohorts without noting the definition change. Check claimed music before using a 1–3 minute cut. Export without pillarbox or letterbox bars. |
| Instagram Reels | Instagram accepts Reels from 1.91:1 through 9:16, with at least 30 fps and 720-pixel resolution. Boosted Reels have a narrower contract: currently less than 90 seconds and full-screen 9:16. [S3][S4] | Prefer a 9:16 organic master when the intent is immersive vertical viewing, but create a placement-specific boost version rather than assuming the organic upload is eligible. |
| TikTok in-feed ads | For non-Spark in-feed ads, TikTok currently recommends 9:16 at at least 540×960, accepts common video containers, and publishes placement-specific rules. TikTok says its safe zone changes with dimensions, ad-caption length, and add-ons and supplies downloadable overlays. Organic and Spark contracts differ. [S5] | Never hard-code one TikTok safe rectangle for all deliveries. Use the current overlay for the exact placement and caption/add-on configuration. Recheck organic upload behavior in the target account/app. |
| LinkedIn video / immersive feed | Uploaded video can be eligible for LinkedIn's immersive vertical experience, but creators cannot post directly into that feed. LinkedIn warns that its UI can overlap edges. Current upload limits include 3 seconds minimum, up to 15 minutes on desktop or 10 on mobile, and aspect ratios from 1:2.4 to 2.4:1. [S6][S7] | Frame a professional-feed version with edge clearance, useful context, and a non-feed-dependent CTA. Do not promise immersive-feed placement. |
Documented fact: TikTok, Meta, YouTube, and LinkedIn can change specs, labels, metrics, or eligibility independently. A local render passing yesterday's table is not final delivery approval.
Production heuristic: Use a clean 1080×1920, 9:16 working master when all target surfaces support it, then derive and preview separate platform renditions. This is a workflow convenience, not proof that one edit is optimal everywhere.
For every target, capture:
platform + placement | organic/paid/boosted | max eligible duration
aspect/resolution/fps | accepted codec/container | max file size
UI overlay/safe-zone source + date | caption mode | cover crop
music license path | sponsorship/AI disclosure controls
upload metadata | analytics definitions | test-upload result
A hook is the first coherent reason to continue, not necessarily the first spoken sentence. It can be visual, verbal, sonic, or a combination.
Useful opening modes include result-first demonstration, a precise contradiction, a consequential before/after, an unresolved but answerable question, or an expert claim immediately paired with evidence.
Production heuristic: Remove greetings, logos, and throat-clearing unless recognition or trust is itself the value. Keep an intro only when it improves comprehension, authority, or narrative tension.
Reject an opening when it:
Select a reasoning shape instead of forcing every clip into the same formula:
Research finding: Guo, Kim, and Rubin found shorter educational videos associated with more engagement in a large MOOC dataset, but that population, task, and video length range do not establish an optimal duration or cut cadence for social feeds. Use the finding as support for removing avoidable material, not as a universal duration threshold. [R1]
End when the promise is complete. A 19-second complete explanation is better than padding to 30 seconds; a careful 70-second demonstration is better than compressing away the evidence to fit folklore.
Plan in beats. A beat is a change in question, claim, proof, emotion, location, or action—not an arbitrary number of seconds.
Use this schema:
| Time range | Narrative job | Viewer question | Spoken content | Visual evidence/action | On-screen text/caption | Audio event | Source/rights | Safe-zone risk | Exit condition |
|---|---|---|---|---|---|---|---|---|---|
Require every beat to do at least one job: advance, prove, orient, contrast, or resolve. Remove beats that only decorate a finished thought.
For source-led edits:
For capture or animation planning:
Production heuristic: Introduce a visual reset when attention or comprehension needs one, not on a timer. A cut that adds no information can create fatigue; a held shot with evolving evidence can retain attention.
Safe zones are delivery data, not taste.
Documented fact: TikTok's published safe zone varies with caption length and add-ons, Meta provides Reels safe-zone checking resources, and LinkedIn instructs creators to keep key elements away from all edges. [S5][S6][S8]
For each rendition:
Do not solve occlusion by shrinking everything. Recompose the shot, move noncritical decoration outward, shorten copy, or create a platform variant.
Documented fact: WCAG 1.2.2 requires captions for prerecorded audio content in synchronized web media at Level A; captions include meaningful non-speech audio and speaker identification, not dialogue alone. [S9]
Decide between:
Caption production rules:
[alarm] or [glass breaks];Professional subtitle standards emphasize accuracy, synchronization, readable presentation, and tradeoffs between speech density and reading speed; do not treat a single characters-per-second limit as universal across languages or audiences. [P1]
If essential visual information is not conveyed by narration, provide an accessible description in the spoken track, post text, or platform-supported alternative as the delivery context permits.
Build the mix in this order:
Documented fact: ITU-R BS.1770-5 defines algorithms for measuring programme loudness and true-peak level; it does not prescribe a universal social-platform delivery loudness. [S10]
Production heuristic: For a conventional stereo social master, begin tests around -16 to -14 LUFS integrated with true peak no higher than -1 dBTP, then adjust to the content and the platform's current behavior. This range is not a platform guarantee. Preserve a higher-quality mix master, compare speech intelligibility after platform transcode, and avoid winning loudness at the cost of distortion or fatigue.
Run four listening passes: normal device, quiet volume, phone speaker, and headphones. Run a mute pass. A music-only hook fails users watching silently; text-only proof fails users who are not watching continuously.
Run these checks before lock:
Do not strip authenticity metadata unnecessarily. If a platform transcode removes it, retain the signed/source asset and manifest in the production archive and still use human-visible disclosure where required.
Production heuristic — cross-platform working master: 1080×1920, square pixels, progressive H.264 High Profile in MP4, original/native frame rate, AAC-LC stereo at 48 kHz, BT.709 for SDR, and fast-start metadata. These choices align with broad support and YouTube's documented recommendations, but the exact placement contract wins. [S18]
Avoid frame-rate conversion unless required. Avoid baked black bars. Do not upscale poor source merely to satisfy a number; replace or intelligently reframe it.
Create a delivery package per platform:
video rendition
clean master
caption sidecar + caption transcript
cover/thumbnail with profile-grid crop preview
post copy, title, hashtags/mentions, CTA and destination
alt/accessibility text where supported
sponsorship and AI-disclosure settings
music/asset license ledger and attribution
spec verification date and official URL
upload/test status, platform-generated captions checked, UI screenshot
Before public release, upload privately, unlisted, as a draft, or to a test account where the surface permits. Inspect the platform transcode, crop, color, caption timing, UI collisions, cover, sound, and disclosure—not only the local file.
Verify with a media inspector rather than trusting the export dialog:
Separate platform adaptation from experimentation.
Name variants by hypothesis, not final-v7:
ytshort-hook-resultfirst-r1.mp4
reels-hook-contradiction-r1.mp4
tiktok-proof-demoearly-r2.mp4
Keep the body identical when testing a hook. Otherwise the result cannot isolate the hook. When the platform does not provide randomized testing, label the comparison observational and note time, audience, distribution, paid support, and sample-size differences.
Define a funnel appropriate to the platform:
eligible exposure → start → chose/continued to view → time held
→ completion/rewatch → meaningful engagement → intended action
Documented fact: platform definitions differ. YouTube exposes “how many chose to view” versus swiped away and audience-retention reports; Instagram reports views, watch time, average watch time, reach, interactions, and follows; TikTok ad reporting defines starts, 2-second views, 6-second views, quartiles, completion, and average play time. Replays are handled differently by metric. [S2][S19][S20]
Therefore:
Treat these as hypotheses to investigate:
| Signal | Possible causes | Repair test |
|---|---|---|
| Immediate cliff | first frame unreadable, promise irrelevant, context missing, wrong audience | test result-first frame, clearer audience cue, or shorter first line |
| Drop during setup | context debt, duplicated narration/text, slow proof | move evidence earlier; remove explanation already visible |
| Dip at a term or chart | jargon, small labels, cognitive overload | define one term, simplify chart, extend evidence beat |
| Spike/replay | interest, surprise, confusion, illegible detail, loop | inspect comments and frame readability before calling it success |
| Strong completion, weak action | satisfying ending but weak/irrelevant CTA, wrong audience, destination friction | test a more congruent action and verify destination |
| Strong early hold, weak completion | hook overpromises, middle repeats, payoff delayed | align promise and proof; cut redundant middle |
Set a minimum observation window before reading results. Compare against the account's relevant baseline, not a generic “good retention” percentage.
Do not ship until each item passes or has an explicit waiver:
Repair in this order: factual/deceptive issue → consent/rights/disclosure → inaccessible meaning → broken technical delivery → unintelligible audio → UI occlusion → weak structure/retention → cosmetic polish. Never polish around a critical integrity failure.
Example, not a mandatory formula.
Intent: Produce an organic Instagram Reel and YouTube Short for a calendar app's verified “find a mutual time” feature. Audience: project leads coordinating three or more people. Objective: qualified product interest. Primary metric: saves; guardrails: average seconds watched and profile/site actions.
Inputs and constraints: approved screen recording, product claim verified in current build, no customer data, 27–32 seconds, 9:16, spoken English, open captions plus clean/caption-file master, licensed original music bed.
Promise: “Find the first time everyone can attend without opening four calendars.”
Beat ledger:
| Time | Job | Voice/text | Visual | Audio/access | Risk/control |
|---|---|---|---|---|---|
| 0:00–0:03 | Show result and audience problem | “Four calendars. One meeting. Here is the first time that works.” | Messy availability collapses into one highlighted slot | UI click + caption | Crop contains only fake names; result remains above platform caption area |
| 0:03–0:08 | Orient | “Add the people, then set the window.” | Cursor selects three demo participants and date range | Music low under speech | Cursor and fields enlarged for phone; no speed ramp through necessary action |
| 0:08–0:16 | Prove mechanism | “The overlap view removes every conflict.” | Conflicts fade; overlap remains | Subtle confirmation SFX | Label animation as product UI, not simulated result |
| 0:16–0:22 | Show verified result | “Tuesday at 2:30 is the first shared opening.” | Slot selected; confirmation panel | Captions spell time consistently | Keep time and button inside current safe overlay |
| 0:22–0:27 | Resolve and act | “Save this for the next scheduling spiral.” | Before/after split, app name, save cue | Music resolves; no extra claim | CTA is save, matching objective; no unrelated “link in bio” |
Platform adaptations: YouTube version uses a searchable title and clean last frame; Instagram version uses a profile-grid-safe cover and verifies Reel UI/caption position. The core proof remains identical. The agent does not claim equal views are comparable because YouTube and Instagram count them differently.
Variant test: Change only the opening from result-first to “Still comparing calendars?” Keep beats 0:03 onward identical. Compare within each platform to the account's similar product-demo baseline.
Expected result: A viewer understands the problem, watches the real workflow, sees the exact result, and receives one congruent action.
Likely failures and repairs: If retention dips during participant selection, shorten pointer travel but retain enough input context to prove the result. If the product UI is illegible, create a guided crop with magnified callout rather than accelerating it. If native and burned captions duplicate, upload the clean version with corrected platform captions or disable one path.
Example, not a mandatory formula.
Intent: Cut a vertical LinkedIn clip and Reel from a 35-minute interview. The expert explains why a sample-size increase reduced a survey's apparent conversion rate. Objective: correct a common analytics misconception. Primary metric: saves; guardrails: completion and substantive comments.
Selection: Use one continuous answer from source interview-a.cam1, 18:42–19:27, with two pauses tightened. Do not join words across separate answers. Retain the sentence “the earlier sample was only 42 users,” because removing it would make the conclusion misleading.
Structure and shot plan:
42 → 840 respondents comparison labeled from the approved transcript/data.Audio/caption plan: Repair room tone around pause trims; keep natural cadence. Music is omitted because it adds no communicative value and the source room tone is clean. Upload corrected closed captions and an open-caption variant only where needed. Identify the speaker once; caption [laughs] only if it changes the tone.
Rights/integrity: Confirm interview release, chart-data approval, font license, and corporate endorsement policy. Preserve the transcript, source timecodes, and edit decision list. No synthetic-media disclosure is required for ordinary reframing, color correction, captions, or diagram assistance under the cited YouTube examples, but each target platform's current rule must still be checked. [S12]
Platform adaptations: LinkedIn includes more professional context in post copy, keeps all edges clear, and does not promise immersive-feed placement. Reels uses a 9:16 cover crop and checks current UI safe zones. Both retain the sample-size context.
Analytics repair: A replay spike on the diagram could mean interest or illegibility. Inspect the frame and comments; do not automatically add more cuts. If saves are high but completion is modest, the explanatory core may still meet the objective; test a shorter setup without deleting the 42-user fact.
Platform and policy facts below are volatile and were verified 2026-07-09 unless a source carries its own later update date.
Take calesthio/social-short-production from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.