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
- twglhk/gamedev-agent-skillstheir own version, first seen Nov 8, 2026
- sendaifun/solana-newtheir own version, first seen Oct 9, 2026
- thiagoxikota/video-crafttheir own version, first seen Sep 28, 2026
Other versions3 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 3
- sendaifun/solana-new★ 178same name
- thiagoxikota/video-craft★ 2same name
- twglhk/gamedev-agent-skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository10 other files it gives its agents.
- prompts/AGENTS.mdAGENTS.md
- app-demo-agentSkill
- creative-researchSkill
- creative-toolchainSkill
- frame-contact-sheet-inspectionSkill
- frontend-app-builderSkill
- frontend-craftSkill
- huashu-art-motionSkill
- impeccableSkill
- ui-ux-pro-maxSkill
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
- Very specific: line 16
No direction: Every deliverable comes back with the same look: Inter over a purple-to-pink gradient, a 3-second logo animation, ease-out …
- Distinctive: line 18
No rhythm: Every shot is 4 seconds, every transition is a dissolve, every reveal uses the same timing.
- Distinctive: line 26
Do not start with animation.
- Very specific: line 29
Board before you build: Read references/storyboarding.md.
- Very specific: line 33
Grade after picture lock: Never before. Re-grading every iteration is wasted work.
- Very specific: line 35
Run the delivery gate: Every time, no exceptions.
- Distinctive: line 47
Never grade for the reference monitor alone: Check the phone screen. Most viewers will see the compressed, small version.
- Very specific: line 90
All five are zero-dependency Node 18+ and shell out only to ffmpeg/ffprobe.
- Distinctive: line 113
Ask once: when: the brand identity is established and you have no assets for it, the deliverable's platform is genuinely unspecified and it …
- Distinctive: line 116
When you finish, state the direction and the runtime in one line, then offer one strongest next step.
“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.
Files
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:
- No direction. Every deliverable comes back with the same look: Inter over a purple-to-pink gradient, a 3-second logo animation,
ease-outeverywhere, music from the same stock library. Competent and anonymous. Fixed byreferences/creative-directions.md. - 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. - 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.
- No sound. Picture is finished and audio is an afterthought: an unlicensed track at the wrong level with dialogue buried under it.
- 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:
- 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. - 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. - 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.
- 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.
- 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. - Grade after picture lock. Never before. Re-grading every iteration is wasted work. See
references/color-grading.md. - Mix last. Sound is where perceived quality is decided and where the cheapest wins are. See
references/sound-design.md. - Run the delivery gate. Every time, no exceptions. See
references/delivery-and-encoding.mdandscripts/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(), noDate.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_rangeon 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, notfinal_final2.mp4. Version chaos costs more time than rendering.
Reference map
Load only what the task needs. Each file is self-contained.
| File | Load when |
references/creative-directions.md | Always, before designing. The register pool, the selection protocol, and how to avoid producing the same film twice. |
references/storyboarding.md | Before building anything. Beat sheets, thumbnails, shot cards, animatics, board→build handoff. |
references/motion-principles.md | Any animation. Easing, duration, weight, the twelve principles on screen, springs, frame rate. |
references/cinematography.md | Anything with a camera — real or virtual. Shot sizes, movement, lens language, composition, lighting. |
references/editing-and-rhythm.md | Assembling or tightening a cut. Cut grammar, pacing, cutting to music, structure, speed ramps. |
references/kinetic-typography.md | Type in motion. Reveal vocabulary, timing per word, typeface selection for motion, sync. |
references/color-grading.md | After picture lock. Color science, correction→grade, LUTs, shot matching, named looks. |
references/sound-design.md | Last, and thoroughly. Loudness, dialogue, music, effects, space, the mix as story, QC. |
references/captions-and-subtitles.md | Any deliverable with speech. Formats, WebVTT, readability rules, timing craft, translation. |
references/delivery-and-encoding.md | Every export. Codecs, CRF, ladders, ffmpeg recipes, platform specs, verification. |
references/remotion.md | Code-driven video in React. Data-driven video at scale, CI rendering. |
references/motion-canvas.md | The code-animation landscape: Motion Canvas, GSAP-to-video, Rive, Lottie, Manim, headless capture. |
references/3d-and-cg.md | Any 3D. Rendering, lighting, materials, camera moves, compositing CG into plates, Blender/three.js automation. |
references/generative-video.md | Diffusion-based video: i2v workflow, interpolation, upscaling, style transfer, provenance discipline. |
references/figma-motion.md | Figma as the source of layout, tokens, and assets for a motion piece. |
references/adobe-integration.md | After Effects or Premiere as targetable systems: ExtendScript, UXP, CEP, aerender, interchange. |
references/davinci-resolve.md | Resolve scripting, the Fusion node graph, DCTL, color management, round-trips. |
Scripts
| Script | Purpose |
scripts/probe-media.mjs | Reads the real stream parameters of any file and flags VFR, missing color tags, full-range YUV, non-48000 audio. |
scripts/contact-sheet.mjs | Even or timestamped frames into a reviewable grid — the only way to judge rhythm from a timeline. |
scripts/qc-delivery.mjs | The pre-flight gate: loudness, true peak, silence, clack, black and freeze detection, spec compliance. |
scripts/make-captions.mjs | Converts SRT/VTT/word-timings and runs timing QC (CPS, duration, line length, overlap, fps drift). |
scripts/storyboard.mjs | Shot-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 needs | Method | Load |
| To be reviewed in a PR, or generated 500 times from data | Remotion | remotion.md |
| An interactive or state-machine-driven graphic | Rive, or Lottie for playback-only | motion-canvas.md |
| Mathematical or diagrammatic explanation | Manim | motion-canvas.md |
| A camera move through a virtual space | Blender or three.js | 3d-and-cg.md |
| Real footage composited with graphics | After Effects, or Resolve Fusion | adobe-integration.md, davinci-resolve.md |
| A generated plate, texture, or transition element | Diffusion i2v, then repair | generative-video.md |
| Standard motion graphics with a designer driving | After Effects | adobe-integration.md |
| Precise color and a real edit | DaVinci Resolve | davinci-resolve.md |
| A quick programmatic cut from existing footage | ffmpeg | editing-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
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
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.

