Skip to main content
Glama

ass_snap_to_keyframes

Snap subtitle line start or end times to loaded keyframes. Select nearest, previous, or next keyframe, with distance limits and forward-only options to control timing changes.

Instructions

Snap line times to keyframes loaded in workspace.keyframes.

Args: selection: lines to snap. which: "both" (default), "start" or "end". mode: "nearest" (default), "previous" or "next". forward_only: only consider keyframes at or after the line's time (never move a time earlier). Contradicts mode="previous". max_distance_ms: skip a snap when it would move the time further than this. doc_id: document id.

Returns: {"doc_id", "mode", "which", "forward_only", "max_distance_ms", "keyframes_loaded", "considered", "count", "applied", "changes": [{"index", "field", "old_ms", "new_ms", "old", "new", "delta_ms", "keyframe_ms"}], "skipped": [{"index", "field", "old_ms", "reason"}]}count/changes only list fields that really moved.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNonearest
whichNoboth
doc_idNo
selectionNo
forward_onlyNo
max_distance_msNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does meaningful work: it documents skip behavior via max_distance_ms, states that forward_only contradicts mode="previous", and clarifies that count/changes only include fields that actually moved. It still omits mutation side effects (that lines in the document are rewritten) and any undo/permission context, so it stops short of full disclosure.

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 purpose sentence is front-loaded and the Args entries are one line each with no filler. The Returns block is fairly long and duplicates information already carried by the output schema, which costs a little economy but does not obscure anything.

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 six-parameter mutating tool with no annotations, the description covers arguments, defaults, skip logic, and return contents, and the output schema absorbs return-value detail. It is nearly complete; the remaining gap is document-state context (that this rewrites line times and how that interacts with undo/history siblings).

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

Parameters5/5

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

Schema description coverage is 0% and the schema exposes only bare types, so the description must compensate — and it does, defining every one of the six arguments plus their defaults (selection, which, mode, forward_only, max_distance_ms, doc_id) in the Args block. Enum-like values (“both”/“start”/“end”, “nearest”/“previous”/“next”) are enumerated in prose.

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 first sentence states a specific verb and resource: snap line times to keyframes drawn from ``workspace.keyframes``. That distinguishes it from siblings like ass_snap_to_frames, ass_load_keyframes, and ass_fix_timing, and an agent can select it without opening the schema.

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

Usage Guidelines3/5

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

The description implies usage by noting the keyframes must already be loaded in ``workspace.keyframes`` and gives in-parameter rules (defaults, the forward_only/mode="previous" conflict). It never says when to prefer this over ass_snap_to_frames or what to do if keyframes are absent, so guidance is implied rather than explicit.

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