video-editing · git:20261029.1aa6bef · 2026-10-29 · sha256 124975baa67a7361
video-editing git:20261029.1aa6befA
Immutable. This exact content never changes and is served at /api/v1/blob/124975baa67a7361.
---
description: Production motion graphics, video editing, programmatic animation, and audio-visual synchronization. Embodies the 17 Awesome Claude motion styles (Swiss kinetic type, liquid morphing, HUD drafting, live line drawing, 3D card flips), high-performance Python-to-FFmpeg rawvideo pipelines, tempo-locked BPM grid choreography, and broadcast audio mastering.
globs: *
alwaysApply: false
---
# Video Editing & Kinetic Motion Graphics (`/video-editing`, `/motion-graphics`)
> **Role**: Master Motion Designer, Creative Director & Video Engineering Architect
> **Philosophy**: *Animate mathematically. Never guess easing. Snap on cubic-bezier(.7,0,.2,1). Lock every frame to the BPM downbeat. Vector-scale FreeType outlines. Zero AI visual slop.*
This skill establishes elite production standards for programmatic video generation, kinetic typography, motion graphics, and audio-visual choreography inspired directly by **[Awesome Claude Motion Graphics](https://awesomeclaude.ai/claude-motion-graphics)**.
---
## 1. Quick Navigation & Progressive Disclosure
| Resource Type | Document | Description |
| :--- | :--- | :--- |
| **Reference** | [references/awesome-claude-styles-catalog.md](references/awesome-claude-styles-catalog.md) | In-depth breakdown of all 17 styles, rules, palettes, easing curves, and avoid lists. |
| **Reference** | [references/easing-curves-and-motion.md](references/easing-curves-and-motion.md) | Mathematical formulas: snap easing, quintic smoothstep, 3D split-flap card flips, drift. |
| **Reference** | [references/ffmpeg-streaming-pipeline.md](references/ffmpeg-streaming-pipeline.md) | High-throughput Python `subprocess.Popen` rawvideo RGB24 pipe streaming architecture. |
| **Reference** | [references/audio-sync-and-ducking.md](references/audio-sync-and-ducking.md) | BPM tempo grid formulas, LA-2A vocal dynamics, -6.5dB sidechain ducking, >=0.85s cushions. |
| **Utility** | [scripts/verify_video_spec.py](scripts/verify_video_spec.py) | CLI tool auditing MP4 resolution, FPS, AAC sample rates, and duration to the microsecond. |
| **Utility** | [scripts/generate_easing_lookup.py](scripts/generate_easing_lookup.py) | Mathematical easing generator and curve evaluator for frame render engines. |
| **Utility** | [scripts/audio_silence_validator.py](scripts/audio_silence_validator.py) | Analyzes vocal stem timelines to guarantee zero audio overlap and strict silence buffers. |
| **Test** | [tests/test_video_editing_skill.py](tests/test_video_editing_skill.py) | Automated test suite validating skill assets, curve invariants, and line count ceilings. |
---
## 2. Programmatic Video Pipeline Architecture
```mermaid
flowchart TD
subgraph AudioStage["1. Audio Master Synthesis"]
A1["Neural TTS Synthesis<br/>(en-US-AndrewMultilingual)"] --> A2["Vocal Broadcast Chain<br/>(90Hz HPF + LA-2A + silenceremove)"]
A2 --> A3["BPM Tempo Grid Clock<br/>(128 BPM: 1 beat = 0.4688s)"]
A3 --> A4["Music Bed + Sidechain Ducking<br/>(-6.5dB during speech)"]
end
subgraph VisualStage["2. Vector Plate & Kinetic Typography"]
V1["12-Column Swiss Modular Grid<br/>(5% margins, subtle drafting lines)"] --> V2["FreeType Dynamic Vector Scaling<br/>(font_size = base_size * zoom)"]
V2 --> V3["Kinetic Morphing Engine<br/>(Shape-to-text, 3D card flips)"]
V3 --> V4["Awesome Claude HUD Brackets<br/>(3-step lock-on [ WORD ] with tick)"]
end
subgraph CameraStage["3. Smooth Camera & Compositing"]
C1["Camera State Interpolation<br/>(Quintic smoothstep 6u^5 - 15u^4 + 10u^3)"] --> C2["Word-Tracking 2D Glide<br/>(0.58s duration + continuous drift)"]
C2 --> C3["10 Pure Feathered Transitions<br/>(Iris, shutter grid, capsule, dissolve)"]
end
subgraph DeliveryStage["4. FFmpeg Raw Stream Multiplexer"]
M1["Raw RGB24 Stdin Pipe<br/>(30 FPS progressive, CRF 16)"] --> M2["AAC 48kHz Stereo Audio Mux<br/>(Exact frame-audio synchronization)"]
M2 --> M3["Master MP4 Film + Poster Frame"]
end
AudioStage --> CameraStage
VisualStage --> CameraStage
CameraStage --> DeliveryStage
```
---
## 3. Core Directorial Invariants (Anti-Slop Video Rules)
1. **Zero Bitmap Scaling Blur**: Never render text at 1080p and stretch the raster in PIL. Always map world coordinates to screen space and rasterize text dynamically at `font_size = int(base_size * zoom)`. Vector outlines must remain pristine at any macro zoom.
2. **Strict Tempo Locking**: Every scene transition and camera shift MUST land on a musical bar or downbeat. For 128 BPM:
$$\text{Beat} = 0.46875\text{s} \quad (14 \text{ frames}) \qquad \text{Bar (4 beats)} = 1.875\text{s} \quad (56 \text{ frames})$$
3. **Guaranteed Audio Silence Cushion**: Vocal stems must enforce $\ge 0.85$s non-overlapping silence buffers between every dialogue chapter. Never allow voices to collide or bleed into adjacent scene transitions.
4. **Sidechain Ducking**: Duck the background music bed by $-5.0\text{dB}$ to $-6.5\text{dB}$ with 12ms attack and 180ms release whenever speech energy exceeds $-42\text{dBFS}$.
5. **No AI Cliché Tropes**: Strictly prohibit decorative badges (`shields.io`), neon purple gradients, artificial holographic lens flares, particle dust, and programmer tropes like `//` comment markers.
6. **No Stray Line Artifacts**: Never draw arbitrary slanted specular sweeps or laser edges that intersect with vertical grid lines across letters. Transitions must be pure feathered alpha blends or clean geometric wipes.
7. **Strict 500-Line Source Ceiling**: Keep all animation renderers, audio scripts, and compositors $\le 500$ physical lines per file (`check_source_line_limits.py`).
---
## 4. Quick Implementation Recipe: Swiss Kinetic Shot
```python
from PIL import Image, ImageDraw, ImageFont
def render_swiss_shot(draw: ImageDraw.ImageDraw, text: str, wx: float, wy: float,
cx: float, cy: float, zoom: float, active: bool = False):
"""Render crisp vector typography on 12-column Swiss grid with HUD brackets."""
# Screen mapping
sx = int((wx - cx) * zoom + 1920 / 2.0)
sy = int((wy - cy) * zoom + 1080 / 2.0)
font = ImageFont.truetype("/System/Library/Fonts/Helvetica.ttc", int(72 * zoom))
color = (255, 255, 255, 255) if active else (100, 100, 100, 255)
bbox = draw.textbbox((sx, sy), text, font=font, anchor="mm")
draw.text((sx, sy), text, font=font, fill=color, anchor="mm")
if active:
# Precision HUD drafting bracket [ WORD ] with center lock tick
pad = 10
x0, y0, x1, y1 = bbox[0] - pad, bbox[1] - pad, bbox[2] + pad, bbox[3] + pad
draw.line([(x0, y0 + 14), (x0, y0), (x0 + 14, y0)], fill=color, width=2)
draw.line([(x1 - 14, y0), (x1, y0), (x1, y0 + 14)], fill=color, width=2)
draw.line([(x0, y1 - 14), (x0, y1), (x0 + 14, y1)], fill=color, width=2)
draw.line([(x1 - 14, y1), (x1, y1), (x1 - 14, y1)], fill=color, width=2)
draw.line([((x0 + x1) // 2 - 8, y0 - 4), ((x0 + x1) // 2 + 8, y0 - 4)], fill=color, width=2)
```