Skip to main content
Glama

ripple_delete_gap

Destructive

Close an empty gap on a track by shifting every layer after it left, shortening the film without deleting media. Supply the gap's start and end times to remove it.

Instructions

Close a GAP — an empty span on one track between two layer boundaries — so everything after it moves left and the film gets shorter; nothing is deleted. [start_us, end_us) must be the whole gap as it is now: end_us exactly where a layer on track_id starts, start_us exactly where one ends (or 0 before the first clip); the space after the last clip is not a gap. Otherwise GapNotFound carries the span you sent — re-read project://tracks and retry. The closing is delete_layers { ripple: true }'s: every layer starting at or after end_us on every track shifts left, anchored markers follow, free markers and the playhead stay. Refuses whole with the same names — RippleInsideHole (a layer on another track starts inside the gap: delete it first), RippleCollision, RippleLinkStraddles, RippleLockedLayer / TrackLocked (a gap on a locked lane always refuses). One recorded edit.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
end_usYesGap end (exclusive), timeline, µs.
start_usYesGap start, timeline, µs.
track_idYesThe track the gap is on.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv0.1.9
    • addedInput schema / properties / end_us / description
      Added value: +"Gap end (exclusive), timeline, µs."
    • addedInput schema / properties / start_us / description
      Added value: +"Gap start, timeline, µs."
    • addedInput schema / properties / track_id / description
      Added value: +"The track the gap is on."
  2. First observedv0.1.8

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the destructiveHint annotation, the description details the exact ripple mechanics: which layers shift, anchored versus free markers, playhead behavior, and that the operation is one recorded edit. It also names all refusal reasons and their triggering conditions. The 'nothing is deleted' phrasing refers to layers/clips and does not contradict destructiveHint, since removing the gap is still a timeline-destructive edit.

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?

The description is dense and front-loaded with the core behavior, then organized into preconditions, error handling, and side effects. There is little fluff, though the phrasing 'Refuses whole with the same names' is awkward and the long single paragraph could be improved with structured bullets.

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?

For a complex ripple operation with sparse annotations and no output schema, the description covers input validity, ripple effects across tracks, marker/playhead behavior, error names and recovery advice, and undoability. It is slightly incomplete in that it never states what a successful call returns or gives an explicit alternative for simply shifting layers without closing a gap.

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 100%, but the description adds essential meaning beyond the schema: the exclusive/inclusive boundary requirements, the special case of 0 before the first clip, and the condition that the space after the last clip is not a gap. This materially clarifies how to compute track_id, start_us, and end_us correctly.

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?

The description opens with a specific verb and resource: 'Close a GAP' and defines it as an empty span between layer boundaries. It then states the ripple behavior ('everything after it moves left and the film gets shorter') and explicitly distinguishes the operation from deletion ('nothing is deleted'), which helps separate it from sibling delete_layers.

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

Usage Guidelines4/5

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

The description clearly enumerates valid-use preconditions: start_us/end_us must match the whole gap exactly, and the space after the last clip is not a gap. It also tells the agent what to do when GapNotFound occurs. However, it does not explicitly name an alternative sibling tool or provide a when-to-use-versus-alternative comparison.

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

Deploy Server

Other Tools