Skip to main content
Glama

Prove the render is unchanged

ae_prove_identical
Destructive

Prove that structural After Effects changes leave the render unchanged, or identify which sampled frames and areas differ via pixel-by-pixel comparison.

Instructions

Prove a structural change (un-precompose, bake expressions, reorder effects, simplify a rig) left the render unchanged, or show which frames and areas differ. capture: render reference frames (default: active comp, 5 frames over the work area), returns a proof id. compare: render them again and compare pixel by pixel (verdict, per-frame max difference, changed pixels, ΔE, area, difference image). run: capture, ae_batch steps, compare, in one call. For un-precompose, prove the parent comp. Not for edits meant to change the picture (look at those with ae_render_frame). Only the sampled video frames are compared (alpha included; not audio, the comp background color or times between samples; 32 bpc values above 1.0 are clamped).

Input Schema

NameRequiredDescriptionDefault
idNocompare: the proof id from capture (default the latest proof).
nameNorun: undo step name.
compsNocapture/run: comps to prove (item id or exact name; default the active comp).
stepsNorun: the edits, as ae_batch steps.
timesNocapture/run: exact times in seconds (snapped to frames) instead of evenly spaced frames.
actionYes
atomicNorun: as ae_batch (default true: a failed step undoes everything, and nothing is compared).
framesNocapture/run: number of frames spread over each comp's work area (default 5).
maxSizeNocapture/run: longest rendered side in pixels (default 1920; larger comps are scaled down).
verboseNorun: full result of each step.
toleranceNocompare/run: allowed difference per channel, 0-255 (default 0.5: less than one 8-bit step, so only 16/32 bpc rounding is allowed; 0 = bit-identical).
checkpointNorun: save a project checkpoint before the edits.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructive/open-world/non-idempotent; the description adds substantial beyond-schema behavior: only sampled video frames are compared, alpha is included, audio and comp background color are excluded, and 32 bpc values above 1.0 are clamped. It does not explicitly state that run leaves the project edited (or restores it), which is the key remaining unknown for a destructive tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the goal, then action-by-action breakdown, then exclusions and limitations – a clean information hierarchy. The limitation parenthetical is dense and the run semantics (whether edits persist) are compressed to the point of ambiguity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and 12 parameters, the description does the necessary work: it names the return payload (proof id, verdict, per-frame max difference, changed pixels, ΔE, area, difference image) and the sampling limits. The main gap is what happens to the project state after run, which matters given destructiveHint=true.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 92%, so the baseline is 3; the description still earns credit by tying parameters to actions ('default: active comp, 5 frames over the work area') and by revealing that capture returns a proof id, which the schema cannot express. It doesn't add extra semantics for tolerance, maxSize or atomic beyond what the schema says.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and goal ('prove a structural change left the render unchanged') and then enumerates the three concrete actions (capture/compare/run) with what each does. It explicitly names the sibling ae_render_frame as the wrong tool for picture-changing edits, so an agent can distinguish it without reading schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use ('prove a structural change... or show which frames and areas differ'), when-not-to-use ('Not for edits meant to change the picture (look at those with ae_render_frame)'), and a non-obvious case rule ('For un-precompose, prove the parent comp'). That is a full routing decision tree in three sentences.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.