solomondivyananth/aftereffects-mcp

ae-motion-proof

Proof-read motion in After Effects through the AE MCP Bridge - screen a comp with aeproof for overlapping or clipped elements, jitter, flicker, one-frame pops, keyframes off the frame grid, linear easing, text too small or too brief to read, uneven staggers…

View source

How to use

  1. Copy the installation command and review the source package before installing it in your own agent environment.
  2. Check the source document for required tools, credentials and supported hosts.
  3. Describe your input and desired deliverable; review the output against the source material.
npx skills add https://github.com/solomondivyananth/aftereffects-mcp --skill ae-motion-proof

Before you start

  • Installation does not include a model subscription, API allowance or permission to access your files.
  • Repository stars and installation counts describe activity, not an independent quality or security test.
Original skill document

Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.

Proof-read the motion

Every animation has two kinds of problem. One kind is taste — this beat is slow, that colour is wrong — and the only way to find it is to watch (ae_review_motion). The other kind is mechanical: two words sitting on top of each other, a keyframe half a frame off the grid, type nobody can read on a phone, a solo switch left on. Those are findable by measurement, and this is what ae_proof does.

It reads. It never edits. The playhead does not move, so it is safe on someone else's open project.

Run it

json
ae_proof {"comp": "S1_HOOK"}
ae_proof {"comp": "S1_HOOK", "start": "0.5s", "duration": "1s", "samples": 120}
ae_proof {"comp": "Master", "severity": "warn"}
ae_proof {"comp": "S4_PHONE", "staging": true}
ae_proof {"action": "checks"}
  • Default range is the work area, sampled at about 60 moments. It takes

roughly a second.

  • Sample densely when hunting jitter or pops. At 60 samples over 30

seconds the gap between samples is half a second, and a one-frame pop hides in it. Narrow the range and raise samples until the report says it is sampling every 1–2 frames.

  • Proof each scene comp, not only the master. A master usually holds

precomps, and a fault inside one belongs to that comp.

  • severity and group narrow a noisy report; action: "checks" lists

every check with a one-line description.

Read the findings

Each finding carries check, severity, where (layers), when (seconds and frames), what is wrong and how to fix it. look_at collects the times worth rendering.

SeverityMeans
errorAlmost certainly wrong. Fix it or decide it is deliberate.
warnWrong unless there is a reason. Look at the frame.
noteWorth a glance: a taste call, or something that is only sometimes a fault.

Look before you fix. The sampler measures boxes, not pixels. When a box may be bigger than what shows — a precomp measured as its whole frame, a PNG with transparent margins, text with animators that hide characters, a masked layer — the finding says "measured generously" and drops a severity. Render that moment (ae_render_frame {"times": [...]} from look_at) before believing it, and before changing anything.

Then fix, and run ae_proof again. A clean report plus one watch-through is the standard to hand work over at.

What it screens

Forty-one checks in six groups. Thresholds scale with the frame, so they hold for 1080p and for a 9:16 phone cut.

Space and layout

CheckCatchesThreshold
overlapTwo elements on top of each other while both are readable≥12% of the smaller box, held longer than 0.3s, both at rest
collideElements passing through each other mid-move>50% at the worst frame
clippedAn element cut off by the frame edge at rest>2% of its own size outside
overshootAn ease that carries out of frame and settles back cleanany, while moving
safe-areaOutside title-safe, or under the platform UI in 9:1690% safe; top 12% / bottom 20%
edge-crowdAlmost touching the frame edge, so it reads as an accidentinside 2.5% of the short side
tangentTwo elements stopping a few pixels apart2px to 6px (at 1080)
text-overflowText wider than the frame, or overflowing its own box>94% of frame width
text-smallType too small to read at delivery sizeunder 2.2% of the short side
text-copyDouble spaces, straight quotes, ... instead of …, stray spacesany

Staging and hierarchy

Composition, measured. These are notes, never errors — design has exceptions — and they only run where judging composition is fair: a comp with its own full-frame background. For a scene comp that gets its background from a master, pass {"staging": true}. The craft behind them is in ae-composition.

CheckCatchesThreshold
frame-unusedsmall elements floating in a lot of nothing>45% of the height empty above and below, with nothing over 25% of the frame
no-focal-pointnothing big enough to be the subjectlargest element under 12% of frame area
no-scale-contrasteverything the same size, so nothing leadslargest within 2× of the median, with 3+ elements
same-stagingevery beat composed identicallyall resting compositions centred within 12% of the frame height

Layers placed by a camera are measured flat for these, and the finding says so when that happened.

Jitter and chatter

CheckCatchesThreshold
jitterA property reversing direction again and again by a pixel or two4+ reversals under 3px (1.5° for rotation)
flickerSomething appearing and disappearing within a few frames3+ toggles in the range
wiggle-jitterwiggle() fast enough to read as noise; one seed shared by several layersfrequency >8, or >4 with 4°+ on rotation
sub-pixelA slow drift on fractional pixels — type and thin strokes shimmerunder 1px per frame, not on whole pixels

Timing and keyframes

CheckCatchesThreshold
off-gridKeyframes off whole frames, so the move stutters>0.05 of a frame
popA value jumping with nothing to cover itbig change within 1.5 frames, motion blur off
speed-breakIncoming and outgoing speed mismatched at a keyframeratio >3, both non-zero
linearTransform keyframes left on linear interpolationa span of 5+ frames
read-timeText on screen for less time than it takes to readunder chars ÷ 15 + 0.4s
stagger-driftA cascade whose offsets are unevenspread >1.2 frames
crowded-beatFour or more things starting to move at oncewithin 3 frames
dead-airA stretch where nothing moves at all>1.5s, and nothing expression- or precomp-driven
unseen-keysKeyframes outside the layer's in/out, or past the company
mid-moveThe range starting or ending in the middle of a moveany
marker-driftKeyframes near a marker but not on it0.5 to 4 frames off

Motion physics

CheckCatchesThreshold
strobeMoving far enough per frame to strobe with motion blur off>60% of its own width, or >22% of frame width, per frame
blur-switchLayer motion blur on while the comp switch is offany
long-wayA rotation taking the long way round>180° between neighbouring keys
shearA rotated parent with non-uniform scale shearing its childrenrotation >0.5°, scale mismatch >1%
upscaledFootage past 100%, or a precomp scaled up without Collapse Transformations>105% / >110%

Render integrity

CheckCatches
expression-errorA broken expression, or one switched off
missing-footageFootage the project cannot find
never-visibleA layer with content that never shows in this range
switch-left-onSolo, shy, an effects switch off, a disabled effect
duplicate-nameTwo layers with the same name — expressions grab the first
comp-settingsHalf resolution, a short work area, a precomp at another frame rate
empty-frameThe first or last frame of the range with nothing on it

What it cannot see

Say so rather than implying the piece is clean because the report is.

  • Anything the camera places. 3D layers are measured flat, so with a

camera in the comp the space rules skip them. The report names them.

  • Effects that hide or move pixels — a Linear Wipe, a Transform effect, a

displacement. The box is the layer's, not the effect's result.

  • Colour, contrast, banding, flashes. Look at rendered frames for those

(ae-color).

  • Audio sync. That is ae-audio-sync plus listening.
  • Spelling, grammar and whether the words are true. It only catches

typographic nits. Read the copy back with ae_text.

  • Taste. Timing, weight and whether anything is beautiful: watch it with

ae_review_motion, against ae-motion-principles.

Where the fixes live

FindingWhere the craft is
linear, speed-break, pop, crowded-beat, dead-airae-motion-principles
text-small, text-overflow, read-time, text-copyae-typography
overlap, clipped, safe-area, edge-crowd, tangentae-ai-templates (layout rules), ae-deliver (safe areas)
strobe, blur-switch, jitter, sub-pixelae-motion-principles, ae-expressions (wiggle and seedRandom)
shear, anything 3Dae-camera-3d
missing-footage, switch-left-on, comp-settingsae-deliver pre-flight

The loop

  1. Build or edit.
  2. ae_proof the comp you touched.
  3. Render the look_at times and confirm each finding is real.
  4. Fix what is real; say out loud what you decided was deliberate.
  5. ae_proof again, then ae_review_motion once end to end.
  6. Only then ae-deliver.

Run it on every format variant too — a layout that passes in 16:9 often clips in 9:16.

Related by task

from this repository

More skills

All skills
solomondivyananth
Community

ae-ai-templates

Use and write AI-native After Effects templates through the AE MCP Bridge - finished animated designs (lower third, kinetic title, word reveal, app card, bar chart, logo sting, welcome) that an agent fills from a brief with aetemplate, built as one undo step with a contact sheet to check, in 16x9, 9x16, 1x1 or 4x5; plus how to author a new template as JSON (typed slots, steps, expressions, repeats) that npm test validates. Use when asked for a lower third, title, chart, logo sting, app or UI sho

installs
1
GitHub stars
68
Updated
Oct 5
solomondivyananth
Community

ae-camera-3d

Cameras and 3D scenes in After Effects through the AE MCP Bridge - 3D layers and depth, camera rigs on nulls (dolly, orbit, push-in, parallax), depth of field, lights and shadows, materials, choosing the 3D renderer, 3D models, camera shake, and what the 3D camera tracker needs a person for. Use when asked for a camera move, parallax, depth, a 3D scene or extrusion, lighting, shadows, bokeh, or when layers should feel like they sit in space.

installs
1
GitHub stars
68
Updated
Oct 5
solomondivyananth
Community

ae-composition

Stage a frame in After Effects through the AE MCP Bridge - give every beat one dominant element, build scale hierarchy, use the whole frame instead of a band in the middle, vary the composition between beats, place things on a grid with real margins, crop and bleed deliberately, compose for 9x16 and 1x1, and check it with aeproof's staging checks. Use when work looks flat, generic, empty, "like a slide", "like a wireframe" or "not designed", when every beat looks the same, when nothing on screen

installs
1
GitHub stars
68
Updated
Oct 5
solomondivyananth
Community

ae-effects

Special effects, blur and motion blur in After Effects through the AE MCP Bridge - glows, light rays and flares, fractal noise, displacement and distortion, particles, chromatic split, grain, stylized looks, paper and print finishes, stepped on-twos cadence, effects driven by map layers, and every kind of blur (Gaussian, directional, radial, lens blur, pixel motion blur, comp motion blur), with exact effect and parameter names. Use when asked for a look or an effect (glow, energy, glitch, heat h

installs
1
GitHub stars
68
Updated
Oct 5