agentleFS
ChefDavid0815ChefDavid0815/gpt-craft-system/skills/video-craft/SKILL.md

video-craft

Skill0 starsChanged 35 days agoMITView on GitHub

Generate and finish video and motion work at a professional standard. Use for motion graphics, kinetic typography, explainers, ads, product films, social cuts, title sequences, animatics, or editing and grading an existing cut. Covers shot language, editing rhythm, color, sound, code-driven rendering (Remotion, Motion Canvas, GSAP), 3D, generative video, captions, and delivery to Adobe, DaVinci Resolve, and Figma. Triggers: \"make a video\", \"motion graphics\", \"edit this\", \"color grade\", \"kinetic type\", \"explainer video\", \"title sequence\", \"Remotion\", \"After Effects\", \"DaVinci\", \"storyboard\".

3 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

10 rules. 0 are common, 5 are distinctive, and 5 are very specific to this project.

  • 0

    Common

    Most of the 3 edited versions we read keep these.

  • 5

    Distinctive

    This author's own choices. Worth a look.

  • 5

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    No direction: Every deliverable comes back with the same look: Inter over a purple-to-pink gradient, a 3-second logo animation, ease-out …

    line 16
  2. Distinctive:

    No rhythm: Every shot is 4 seconds, every transition is a dissolve, every reveal uses the same timing.

    line 18
  3. Distinctive:

    Do not start with animation.

    line 26
  4. Very specific:

    Board before you build: Read references/storyboarding.md.

    line 29
  5. Very specific:

    Grade after picture lock: Never before. Re-grading every iteration is wasted work.

    line 33
  6. Very specific:

    Run the delivery gate: Every time, no exceptions.

    line 35
  7. Distinctive:

    Never grade for the reference monitor alone: Check the phone screen. Most viewers will see the compressed, small version.

    line 47
  8. Very specific:

    All five are zero-dependency Node 18+ and shell out only to ffmpeg/ffprobe.

    line 90
  9. Distinctive:

    Ask once: when: the brand identity is established and you have no assets for it, the deliverable's platform is genuinely unspecified and it …

    line 113
  10. Distinctive:

    When you finish, state the direction and the runtime in one line, then offer one strongest next step.

    line 116

“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Video Craft

A working method for producing motion work that looks authored rather than rendered. The order matters more than any single technique: most bad video comes from grading before the cut is locked, animating before the board exists, and mixing before the picture stops moving.

This skill covers the whole pipeline — board to delivery — and is written to be executed by a developer, a designer, or a lone operator with ffmpeg and a laptop. It assumes you will have to make decisions, so it names the real options at each one instead of prescribing a single recipe.

The core failure mode

Amateur motion work fails in five recognizable ways, in order of how much damage they do:

  1. No direction. Every deliverable comes back with the same look: Inter over a purple-to-pink gradient, a 3-second logo animation, ease-out everywhere, music from the same stock library. Competent and anonymous. Fixed by references/creative-directions.md.
  2. No board. Shots are designed while animating, so the cut exists only after everything is rendered — when changing it costs days instead of minutes. Fixed by references/storyboarding.md.
  3. No rhythm. Every shot is 4 seconds, every transition is a dissolve, every reveal uses the same timing. Motion has no punctuation, so nothing reads as important.
  4. No sound. Picture is finished and audio is an afterthought: an unlicensed track at the wrong level with dialogue buried under it.
  5. Technical sloppiness at delivery. Wrong color range, mismatched frame rates, missing faststart, captions that violate reading speed. The work was good; the file is broken.

Fix 1 and 2 first. They make 3, 4, and 5 cheap to fix.

Working order

Do not start with animation. Start here:

  1. Read the brief for a direction and a structure. A 30-second ad and a 12-minute explainer share almost no decisions. Pick a register from references/creative-directions.md, state it in one line, and commit. If the brief is silent, select by nonce rather than defaulting to the house style.
  2. Board before you build. Read references/storyboarding.md. Produce a beat sheet, then a thumbnail strip, then a shot list with durations in frames. Test the timing with an animatic before rendering anything. This is the step that saves the most time and gets skipped the most.
  3. Establish the technical baseline. Frame rate, resolution, aspect, color space, and audio sample rate, decided once and written down. Every downstream tool inherits these. Changing frame rate after the cut exists is a rebuild.
  4. Build the vertical slice. One shot, finished end to end — designed, animated, graded, mixed, captioned. This is the calibration artifact. Do not build twelve half-shots.
  5. Assemble to the board, then edit freely. The board gets you to a rough cut; the rough cut is where you learn what the board got wrong. Cut for information change, not for shot duration. See references/editing-and-rhythm.md.
  6. Grade after picture lock. Never before. Re-grading every iteration is wasted work. See references/color-grading.md.
  7. Mix last. Sound is where perceived quality is decided and where the cheapest wins are. See references/sound-design.md.
  8. Run the delivery gate. Every time, no exceptions. See references/delivery-and-encoding.md and scripts/qc-delivery.mjs.

Steps 6 and 7 in the wrong order — or before step 5 is locked — is the most common structural mistake in the whole pipeline.

Hard rules

These are defects, not preferences.

  • Duration is decided in frames, never in seconds. At 24 fps, "0.5s" is 12 frames and "half a second" is an argument. Every shot list, every timing spec, every keyframe is an integer frame count.
  • Never animate with CSS transitions in a rendered composition. A transition is time-based and a render is frame-based; they cannot agree. Drive every property from the frame index. See references/remotion.md.
  • Nothing non-deterministic in a render path. No Math.random(), no Date.now(), no network fetch at frame time, no unawaited font load. A render must produce identical output twice.
  • Never cut on a dissolve to hide a problem. A dissolve means time passed or a passage of thought — not "these two shots don't join". Cut it or reshoot it.
  • Never grade for the reference monitor alone. Check the phone screen. Most viewers will see the compressed, small version.
  • Loudness targets are not taste. -14 LUFS integrated for streaming, -23 for broadcast, -1 dBTP ceiling. Exceeding true peak is a defect regardless of how it sounds.
  • Subtitles respect reading speed. 12–17 characters per second, two lines maximum, 42 characters per line. A caption that violates this is unreadable, not stylistically fast. See references/captions-and-subtitles.md.
  • Audio leads the cut, not the reverse. A J-cut before a hard cut, room tone under every cut, music that never restarts at a boundary.
  • Tag your color metadata. -color_primaries -color_trc -colorspace -color_range on every export, or the file will look washed out somewhere downstream and you will not know why.
  • Aspect and safe areas are decided before the board. Designing for 16:9 and cropping to 9:16 later destroys every composition. Plan the wider frame so the vertical crop is already composed.
  • Respect motion accessibility. Max three flashes per second, and provide a reduced-motion or static variant where the platform allows.
  • Name your files and cuts. project_ep02_v07_2026-03-14.mp4, not final_final2.mp4. Version chaos costs more time than rendering.

Reference map

Load only what the task needs. Each file is self-contained.

FileLoad when
references/creative-directions.mdAlways, before designing. The register pool, the selection protocol, and how to avoid producing the same film twice.
references/storyboarding.mdBefore building anything. Beat sheets, thumbnails, shot cards, animatics, board→build handoff.
references/motion-principles.mdAny animation. Easing, duration, weight, the twelve principles on screen, springs, frame rate.
references/cinematography.mdAnything with a camera — real or virtual. Shot sizes, movement, lens language, composition, lighting.
references/editing-and-rhythm.mdAssembling or tightening a cut. Cut grammar, pacing, cutting to music, structure, speed ramps.
references/kinetic-typography.mdType in motion. Reveal vocabulary, timing per word, typeface selection for motion, sync.
references/color-grading.mdAfter picture lock. Color science, correction→grade, LUTs, shot matching, named looks.
references/sound-design.mdLast, and thoroughly. Loudness, dialogue, music, effects, space, the mix as story, QC.
references/captions-and-subtitles.mdAny deliverable with speech. Formats, WebVTT, readability rules, timing craft, translation.
references/delivery-and-encoding.mdEvery export. Codecs, CRF, ladders, ffmpeg recipes, platform specs, verification.
references/remotion.mdCode-driven video in React. Data-driven video at scale, CI rendering.
references/motion-canvas.mdThe code-animation landscape: Motion Canvas, GSAP-to-video, Rive, Lottie, Manim, headless capture.
references/3d-and-cg.mdAny 3D. Rendering, lighting, materials, camera moves, compositing CG into plates, Blender/three.js automation.
references/generative-video.mdDiffusion-based video: i2v workflow, interpolation, upscaling, style transfer, provenance discipline.
references/figma-motion.mdFigma as the source of layout, tokens, and assets for a motion piece.
references/adobe-integration.mdAfter Effects or Premiere as targetable systems: ExtendScript, UXP, CEP, aerender, interchange.
references/davinci-resolve.mdResolve scripting, the Fusion node graph, DCTL, color management, round-trips.

Scripts

ScriptPurpose
scripts/probe-media.mjsReads the real stream parameters of any file and flags VFR, missing color tags, full-range YUV, non-48000 audio.
scripts/contact-sheet.mjsEven or timestamped frames into a reviewable grid — the only way to judge rhythm from a timeline.
scripts/qc-delivery.mjsThe pre-flight gate: loudness, true peak, silence, clack, black and freeze detection, spec compliance.
scripts/make-captions.mjsConverts SRT/VTT/word-timings and runs timing QC (CPS, duration, line length, overlap, fps drift).
scripts/storyboard.mjsShot-list JSON → printable board HTML, or a rendered animatic, plus structural lint.

All five are zero-dependency Node 18+ and shell out only to ffmpeg/ffprobe. Run qc-delivery.mjs before you send anyone anything.

Choosing the production method

The decision that determines your week. Pick from the top down — the first row that fits is usually right.

The shot needsMethodLoad
To be reviewed in a PR, or generated 500 times from dataRemotionremotion.md
An interactive or state-machine-driven graphicRive, or Lottie for playback-onlymotion-canvas.md
Mathematical or diagrammatic explanationManimmotion-canvas.md
A camera move through a virtual spaceBlender or three.js3d-and-cg.md
Real footage composited with graphicsAfter Effects, or Resolve Fusionadobe-integration.md, davinci-resolve.md
A generated plate, texture, or transition elementDiffusion i2v, then repairgenerative-video.md
Standard motion graphics with a designer drivingAfter Effectsadobe-integration.md
Precise color and a real editDaVinci Resolvedavinci-resolve.md
A quick programmatic cut from existing footageffmpegediting-and-rhythm.md

A real constraint worth stating plainly: Resolve's scripting API is Studio-only, and there is no supported headless CLI for most operations. If the pipeline must run in CI, that decides the method before aesthetics do.

Autonomy contract

  • Move without asking on: register, structure, shot sizes, cut rhythm, easing and duration values, type choices, color grade direction, music character, mix levels within spec, file naming, and export settings.
  • Ask once when: the brand identity is established and you have no assets for it, the deliverable's platform is genuinely unspecified and it changes the aspect and duration, or the task requires a licensed asset you cannot generate.
  • Never ask whether to caption it, whether to check loudness, or whether to look at a contact sheet. Those are the job.

When you finish, state the direction and the runtime in one line, then offer one strongest next step. Do not enumerate every possible refinement.

Definition of done

  • A direction was chosen, stated in one line, and held consistently
  • A beat sheet and shot list existed before the first frame was rendered
  • Timing was tested in an animatic, not discovered in the render
  • Frame rate, resolution, aspect, and safe areas are consistent end to end
  • Every shot's duration is an integer frame count
  • The cut was reviewed as a contact sheet or a grid, not only on a timeline
  • Color is tagged; the export was checked with scripts/probe-media.mjs
  • Integrated loudness and true peak meet the target platform; verified with scripts/qc-delivery.mjs
  • Dialogue is audible on a phone speaker; music sits under it, not over it
  • Captions exist, pass reading-speed QC, and are delivered as sidecar or burned per platform
  • No flash exceeds three per second; a reduced-motion consideration was made
  • The file plays in Safari, Chrome, and on a phone
  • Assets, fonts, and music have a recorded license and provenance

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.