Valmera — agentic AI video editor
Server Details
Edit uploaded footage with AI tools: cuts, captions, reframing and previews. Final export in Studio.
- Status
- Healthy
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- ABO3SKRALMASAOODI/valmera-mcp
- GitHub Stars
- 0
- Server Listing
- Valmera MCP Server
TDQS
Scored across 134 tools
The tool set contains many intentional near-overlaps (add_text vs add_captions vs add_kinetic_text vs add_title_card; add_zoom vs add_zoom_path vs punch_in_on_emphasis; add_web_sfx vs search_sfx/fetch_sfx/add_sfx) that require reading the long descriptions to disambiguate. The descriptions themselves are unusually detailed and do clarify boundaries, but at 134 tools an agent will frequently face difficult selection decisions.
Naming overwhelmingly follows a readable snake_case verb-first pattern: add_*, remove_*, set_*, get_*, list_*. Some compound verbs (cut_silences, beat_align_cuts, punch_in_on_emphasis, enhance_cursor) are less tidy but still clear, and the remove_/set_ pairing is remarkably consistent.
134 tools is far beyond any practical MCP surface, even for a broad video editor; the rubric treats 25+ as too many and 50+ as extreme. The 'expand_toolset' mechanism suggests the interface was meant to support lazy loading, but exposing all 134 raw tools at once is an extreme mismatch.
The edit lifecycle is exhaustively covered: upload, analysis, timeline editing, text, captions, audio, music, SFX, stock media, overlays, screen recording, effects, grading, speed ramps, transitions, renders, jobs, and shorts workflows. It has few obvious dead ends (upload_start/upload_finish, wait_for_job, download_url, watch_video all complete their workflows) and provides both read-only inspection and repair/undo for nearly every effect.
Available Tools
134 toolsadd_aspect_shiftChange aspect ratio mid-videoAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. CHANGE THE ASPECT RATIO MID-VIDEO, SMOOTHLY — THE tool for 'go vertical for this bit' / 'squeeze to square here and back'. At at_output_s the visible frame MORPHS to ratio over duration_s (0.1-4s, 0.8 default) with an eased close-in, and stays there until the next shift; add another with ratio='source' to open back out. The rendered file keeps ONE resolution — it has to, that is what a video file is — so the change is the frame itself closing in, which is exactly what a smooth aspect change looks like and is why it cannot desync audio or move a caption. zoom=true (default) pushes the picture in as the frame narrows so the subject holds its size. color is the bars' colour. For changing the aspect of the WHOLE video use set_frame or auto_reframe instead. Remove one with remove_aspect_shift.
| Name | Required | Description | Default |
|---|---|---|---|
| zoom | No | ||
| color | No | ||
| ratio | Yes | ||
| duration_s | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| at_output_s | Yes | ||
| motion_motif | No | Active Blueprint motion motif id this event executes; never 'hold'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal (readOnlyHint false, destructiveHint false), so the description carries the full burden. It discloses the morph mechanism, single-resolution constraint, audio/caption safety, zoom behavior, default duration, and the return of project identity – far beyond annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but well-structured, front-loaded with project scope and core action. Every sentence adds value – no fluff, efficient use of space for the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a complex tool: explains behavior, parameters, alternatives, removal, and return value. No output schema, but description covers everything an agent needs to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers only 29% of parameters (project_id and motion_motif). The description explains at_output_s, ratio, duration_s (with range and default), zoom (default and effect), color, and motion_motif's purpose, comprehensively filling the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: changes aspect ratio mid-video. Clearly describes the morph effect and distinguishes from whole-video tools (set_frame, auto_reframe) and the removal tool (remove_aspect_shift). The action is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use (mid-video aspect shifts) and names alternatives for whole-video changes and removal. Provides clear routing criteria, leaving no ambiguity about selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_captionsAdd captionsAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Burned captions. mode='from_transcript' (word-timed from the real transcript, recommended) or mode='off', or items=[{text,start,end,style?}] (source seconds) for text the user dictates. PREMIUM PRESETS (style.preset) are professionally designed looks with real fonts. SAFE DEFAULTS: 'clean' (white Plus Jakarta Sans, complete short phrases, size-only hierarchy), 'documentary' (restrained subtitles on a translucent contrast panel), and 'broadcast' (left-aligned news/explainer lower third). SOCIAL/CREATIVE: 'reels' (FLAGSHIP short-form system: tight two-line hierarchy, warm hero word and multi-stage elastic word landings), 'podcast' (bold white words land on screen as spoken, keywords light up in the accent color, get a highlight box or serif italics, numbers render HUGE), 'beast' (loud MrBeast-style: ALL-CAPS impact font, centered, the spoken word pops in the accent color), 'karaoke' (an accent box follows each spoken word), 'spotlight' (ONE glowing word at a time, centred, uppercase — the modern single-word look for hype/motivation/fast talking; the ONLY preset that belongs mid-frame), 'elegant' (calm lower-third, serif-italic accents — interviews/luxury), 'lyric' (phrase-led music/quote typography), plus stacked/iridescent/chrome/editorial/fashion/luxe/impact/retro/neon composed looks; 'classic' is the plain legacy look. If style is omitted, the tool chooses a coherent preset deterministically from the measured format, speech pace and brief — it does not make every project wear the same caption skin. PLACEMENT: multi-word presets default to the BOTTOM, clear of the face — do not move them to 'middle'; only a single-word-at-a-time look may sit centred. With a preset, sparse emphasis is AUTO-SELECTED from the KEPT transcript when emphasis_words is omitted; measured vocal stress leads on short-form/cached audio, with numbers and semantic outcome words as fallback. pass a verbatim list only when specific words are required, or [] to explicitly disable hierarchy. highlight_color sets the accent (default warm yellow); uppercase overrides the preset's casing; position bottom/top/middle overrides its placement and LOCKS that band for the whole video (no shot-by-shot position changes); anchor_y similarly locks an exact vertical frame fraction. Omit both to let collision-aware placement adapt by shot. Other style fields: color '#RRGGBB', size s|m|l|xl (presets are already big at 'm'), size_scale 0.5-3.0, dynamic:true (legacy karaoke, no preset), animation fade|pop|slide_up|punch|blur_in|whip|flash|rise|drop|elastic|bounce|swing|zoom_blur, or 'none' to turn a preset's animation OFF (instant words), single_line:true to guarantee one rendered row per transcript-caption state regardless of the preset's normal flow/stack layout, max_words_per_caption 1-16. Default modern look is 1-2 words at a time, stacked levels, fade in (preset 'stacked', max_words_per_caption 2) — not a sentence subtitle. Example — modern reel captions: {mode:'from_transcript', style:{preset:'stacked', animation:'fade'}, max_words_per_caption:2}. Example — dictated title card: {items:[{text:'CHAPTER ONE', start:0, end:2.5, style:{preset:'beast'}}]}. Stack presets (stacked/iridescent/chrome/fashion/luxe/editorial/impact) compose 1-2 words across lines of very different SIZES; font picks a bundled family, emphasis 'big' enlarges keywords WITHOUT recolouring them, leading below 1.0 overlaps the lines so a smaller word fades in behind the hero. Production controls include outline_color/outline_width, shadow, background_color/background_opacity, tracking and text_align.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| items | No | ||
| style | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| motion_motif | No | Active Blueprint motion motif id this event executes; never 'hold'. | |
| emphasis_words | No | ||
| max_words_per_caption | No | ||
| min_words_per_caption | No | Preferred minimum for static phrase presets such as clean; QA flags unavoidable fragments. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no read-only/idempotent/destructive hints from annotations, the description carries the behavioral burden. It openly states captions are burned, scope is limited to the explicit project_id, and that style omission triggers deterministic preset selection. It does not explicitly mention reversibility or side effects on the source transcript, so a small gap remains against the ideal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very long but well-organized with clear section markers for modes, presets, placement, emphasis, and production controls. Examples are concrete and useful. Minor redundancy around preset casing and placement rules slightly reduces conciseness, but every sentence contributes meaningful guidance for a complex tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, the description is remarkably complete, covering mode selection, preset defaults, placement, emphasis, animation, and example payloads. It explicitly states the return value is project identity. It does not describe any error cases or output schema, but the absence of an output schema lowers the burden and the stated return value is adequate for a call-level understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 38% and several parameters have minimal schema descriptions, but the prose compensates thoroughly by explaining mode, items, style preset behavior, placement fields, emphasis handling, animation options, and production controls. Every major schema parameter is effectively documented in the description, even where the schema itself is sparse.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool adds/burns captions onto a project, with explicit modes for transcript-derived or dictated text. It distinguishes itself by emphasizing project-scoped behavior and returning project identity, making the primary purpose unmistakable relative to siblings like set_caption_style.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance on when to use each mode, recommends 'from_transcript', explains default preset selection when style is omitted, and provides concrete examples for modern reels and dictated title cards. It also clarifies placement rules and when to supply emphasis_words or disable them, leaving little ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_color_screenAdd color screenAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Cut to a full-frame SOLID or GRADIENT colour screen for a moment, then return to the footage — NO text, NO image generation, built instantly. Use for a plain white/black flash, a coloured interstitial, or a gradient backdrop. color is '#RRGGBB' (default black; '#FFFFFF' is white); pass color2 for a two-colour gradient with direction vertical/horizontal/diagonal/radial. at_output_s is PROGRAM seconds; everything after it shifts later by duration_s. motion adds a slow Ken Burns push on the screen. For a card WITH a word on it use add_title_card; to put text over this screen afterwards, add_text at the same window.
| Name | Required | Description | Default |
|---|---|---|---|
| color | No | ||
| color2 | No | ||
| motion | No | ||
| direction | No | ||
| duration_s | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| at_output_s | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no safety hints (readOnlyHint false, destructiveHint false), so the description carries the burden. It discloses 'built instantly', returns project identity, and describes motion behavior ('slow Ken Burns push'). It does not detail side effects on existing footage, but it adds useful behavioral context beyond the schema and does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is detailed but efficiently structured: scoping note first, then core behavior, use cases, parameter details, and alternatives. Each sentence adds value; however, it is somewhat long, but the density of information justifies the length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 7 parameters, no output schema, and minimal annotations, the description covers all parameter semantics, return behavior, scope, and alternatives. It also gives timing details and color syntax, making it complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 14% (only project_id described), yet the description explains every parameter: color format and default, color2 for gradient, direction enum, at_output_s as program seconds, duration_s shift, and motion effect. This fully compensates for the sparse schema, adding meaning to all parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: cutting to a solid or gradient color screen, with explicit exclusions ('NO text, NO image generation'). It distinguishes from siblings by naming add_title_card and add_text as alternatives for different needs. The verb 'cut' and resource 'colour screen' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit use cases ('plain white/black flash, a coloured interstitial, or a gradient backdrop') and names alternatives with conditions ('For a card WITH a word on it use add_title_card'). Also clarifies scope ('acts only on the explicit project_id'), giving clear guidance on when to use versus siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_corrupt_screenAdd corrupt screenAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Cut to a full-frame CORRUPT / glitch screen for a beat, then return to the footage — a datamosh-style transition BETWEEN sections (e.g. podcast -> CORRUPT -> the next scene). Synthesized locally like the colour cards: NO image or video generation, always available, costs no generation credits. style: 'digital' (vivid datamosh macroblocks + horizontal tearing, the default), 'vhs' (tracking band + scanlines + chroma bleed), or 'static' (TV snow / no-signal). at_output_s is PROGRAM seconds; everything after shifts later by duration_s. Keep it SHORT (0.3-1s reads as a hit; longer feels genuinely broken). intensity 0-1 = how harsh (default 0.7). sound (default true) plays a matching static/hiss burst over the glitch; set false for a silent flicker. No captions ever land on it (inserted media).
| Name | Required | Description | Default |
|---|---|---|---|
| sound | No | ||
| style | No | ||
| intensity | No | ||
| duration_s | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| at_output_s | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no meaningful annotation coverage (all hints false, no details), the description carries the behavioral burden and largely delivers. It discloses that the effect is 'Synthesized locally like the colour cards: NO image or video generation, always available, costs no generation credits', explains timing side effects ('everything after shifts later by duration_s'), and notes a non-obvious interaction ('No captions ever land on it (inserted media)'). No contradiction with the false annotations, which are consistent with a mutating effect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every clause earns its place — scope, effect, cost profile, style enum, timing semantics, intensity, sound, and caption interaction are all covered with no repetition. It front-loads the core purpose and scope before parameter details. Slightly long, but the density is justified given the 6-parameter, low-coverage schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter mutation tool with no output schema and 17% schema coverage, the description is nearly complete: it covers project scoping, style semantics, timing, duration, intensity, sound, and returns ('returns the project identity with its result'). The only minor gaps are default for duration_s and exact return shape beyond identity, which are acceptable given the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 17% (just project_id is described), so the description must compensate and does thoroughly: it defines all three style enum values ('digital' vivid datamosh macroblocks + horizontal tearing, 'vhs' tracking band + scanlines + chroma bleed, 'static' TV snow/no-signal), clarifies at_output_s is 'PROGRAM seconds', specifies intensity 0-1 with default 0.7, and sound default true. This adds real meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource (add + corrupt screen) and immediately explains the effect: 'Cut to a full-frame CORRUPT / glitch screen for a beat, then return to the footage — a datamosh-style transition BETWEEN sections.' This clearly distinguishes it from siblings like add_color_screen, add_freeze_frame, and add_screen_takeover by specifying its role as a transition between sections rather than a static insert.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: it's a datamosh-style transition BETWEEN sections (e.g. 'podcast -> CORRUPT -> the next scene'), and offers timing guidance ('Keep it SHORT (0.3-1s reads as a hit; longer feels genuinely broken)'). It doesn't explicitly name sibling alternatives or state when NOT to use it, but the between-sections positioning provides strong contextual routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_custom_filterAdd custom filterAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. WRITE YOUR OWN ffmpeg video filter chain and apply it to the program picture — for the look no preset makes. Presets FIRST: apply_look / add_stylize / set_color_grade / enhance_video cover the common asks; reach here when the user wants something none of them says (a CRT phosphor look, posterize, a slow hue drift, selective channel work). Rules: ONE chain on the single video stream — filters separated by commas, NO ';' or '[labels]', no file access — and it must keep the frame's size and rate. The chain is DRY-RUN on the real footage before it stores: a broken chain returns ffmpeg's own error (fix it, never retry the identical string); an over-heavy one returns its measured cost. start/end are PROGRAM seconds (omit both = whole video; windowed moments follow their footage through later cuts). label = short human name for the look ('CRT green') shown in diffs. Example chain: "hue=s=0.3,curves=green='0/0 0.5/0.6 1/1',noise=alls=8:allf=t". After it lands, LOOK at the window on the next preview — a chain that parses can still look wrong.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | ||
| chain | Yes | ||
| label | No | ||
| start | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| motion_motif | No | Active Blueprint motion motif id this event executes; never 'hold'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal (all false flags), so the description carries the full burden of behavioral disclosure. It comprehensively reveals: project-scoping, return of project identity, dry-run behavior, error responses (ffmpeg's own error, measured cost for heavy chains), the requirement to preserve frame size/rate, and the caution to visually inspect the result. This is exceptionally transparent, going far beyond basic expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but efficiently structured. It front-loads the scoping constraint, states purpose, provides presets routing, and then enumerates rules, parameter semantics, an example, and a post-action caution. Every sentence serves a distinct purpose; nothing is redundant. The length is justified by the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex, write-oriented tool with no output schema and low schema coverage, the description is complete. It covers purpose, constraints, error behavior, parameter meanings, and a follow-up verification step. An agent can correctly invoke the tool and anticipate outcomes without additional information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (2/6 parameters have descriptions). The description compensates richly by explaining start/end (program seconds, omit for whole video), label (short human name shown in diffs), chain (syntax rules, example), and project_id context (explicit scope). It adds meaning beyond the schema for all key parameters, making the tool effectively usable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'WRITE YOUR OWN ffmpeg video filter chain and apply it to the program picture.' It explicitly differentiates from sibling tools by naming presets (apply_look, add_stylize, set_color_grade, enhance_video) and specifying when to use this custom filter instead. The purpose is unambiguous and distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool vs alternatives: 'Presets FIRST... reach here when the user wants something none of them says.' It also gives concrete examples of custom looks and detailed rules for constructing the filter chain, including syntax constraints, error handling, and parameter semantics (start/end, label). This fully equips the agent with selection and invocation guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_freeze_frameAdd freeze frameAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. FREEZE the picture on a moment and hold it, optionally with a line of text over the held frame — the 'pearl' / power-phrase move: the frame stops, blurs and darkens behind big centred words, then the video continues. at_output_s is the moment in the EDITED video to freeze; duration_s 2-4s reads well; blur 0-1 and darken 0-0.85 treat the still (0.45/0.35 is the classic look, 0/0 keeps it clean); motion zoom_in/zoom_out/pan_left/pan_right gives the still a slow drift so it does not sit dead; text + subtitle are burned centred and BOUND to the frozen frame. audio_mode='pause' (default) is a real cut: the program pauses and everything after shifts. audio_mode='continue' freezes ONLY the picture as a full-frame cover while the original speech, music and timeline continue — use it when a visual must hold over an ongoing phrase without stretching or desynchronizing the audio.
| Name | Required | Description | Default |
|---|---|---|---|
| blur | No | ||
| font | No | ||
| text | No | ||
| color | No | ||
| darken | No | ||
| motion | No | ||
| subtitle | No | ||
| template | No | ||
| audio_mode | No | ||
| duration_s | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| at_output_s | Yes | ||
| accent_color | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the exact visual behavior (frame stops, blurs, darkens, text burned and bound) and the two audio modes with their timeline effects. It also specifies that text and subtitle are burned centred, and provides parameter ranges, going well beyond the minimal annotation hints (which only indicate non-read-only). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence adds value, covering scoping, visual effect, parameter ranges, and audio behavior. It front-loads the project scoping constraint and then logically walks through the effect and options, making it dense yet efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 13 parameters, no output schema, and no annotation details beyond non-read-only, the description covers the return value (project identity), the primary effect, all relevant parameter semantics, and both audio modes. It leaves little ambiguity for an agent to invoke it correctly, making it remarkably complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 8% schema description coverage, the description compensates by explaining at_output_s, duration_s, blur, darken, motion, text, subtitle, and audio_mode with concrete values and effects. It does not cover font, color, template, or accent_color in detail, but these are either enums or straightforward strings; the description adds significant meaning for the most impactful parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: it freezes a frame, holds it, and optionally adds text. It distinguishes itself from other add_* tools by describing the unique 'pearl' move with blur, darken, and motion effects on the held frame, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit guidance on when to use each audio_mode: 'pause' for a real cut that shifts subsequent content, and 'continue' to hold the visual while audio continues. It also recommends duration_s 2-4s and provides typical blur/darken values, effectively telling the agent how to invoke it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_kinetic_textAdd kinetic textAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. CHOREOGRAPH THE SPOKEN WORDS onto the screen in ONE pass — the signature move of top creator reels: each phrase of the transcript appears AT the instant it is spoken, placed in the empty space around the speaker, alternating sides, animated, and holding until the next phrase replaces it. Use it for 'edit this' talking-head footage, promo/educator reels, and whenever the house style calls for speech-carried typography — instead of dozens of add_text calls. start/end (PROGRAM seconds) scope it; default whole program. emphasis_words get the accent color, a size bump and a pop. zone: 'upper' (beside/above the head — default), 'lower', 'sides'. Mutes bottom captions over its window so words never print twice. Each phrase is a normal text item — inspect with get_edl, remove_text by id, or remove and re-run to restyle. AFTER rendering, LOOK at the frames: wrong zone for this framing -> re-run with another zone. motion_style='composed' (default) uses one restrained settle language across the pass and a controlled overshoot only for semantic emphasis; 'preset' restores the legacy named entrances; 'still' removes phrase animation.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | ||
| font | No | ||
| zone | No | ||
| color | No | ||
| start | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| size_scale | No | ||
| accent_color | No | ||
| motion_motif | No | Active Blueprint motion motif id this event executes; never 'hold'. | |
| motion_style | No | ||
| emphasis_words | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false (readOnlyHint, openWorldHint, idempotentHint, destructiveHint), so the description carries the full burden. It discloses that the tool is project-scoped (only acts on explicit project_id), that it mutes bottom captions over its window to avoid duplication, that each phrase becomes a normal text item (inspectable via get_edl, removable via remove_text), and that motion_style has three distinct behaviors (composed, preset, still). It even warns that the agent should visually verify the zone after rendering and re-run if needed. This is exemplary transparency beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-structured, starting with the core purpose, then usage context, then parameter behavior, then post-render workflow. Every sentence adds value; there is no filler. It is not concise in word count, but it is efficiently organized and front-loaded with the most critical information. The length is justified by the tool's complexity (11 parameters).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 11 parameters, no output schema, and no nested objects, the description is remarkably complete. It covers purpose, usage conditions, parameter semantics, behavioral side effects (caption muting, text item creation), and even the verification workflow (look at frames, re-run with another zone). It also explains how to inspect or remove the generated text items. Nothing essential for correct invocation or post-call evaluation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 18%, so the description must compensate. It does explain the semantics of start/end (program seconds, default whole program), emphasis_words (accent color, size bump, pop), zone (upper default, lower, sides), and motion_style (composed, preset, still). It does not detail font, color, size_scale, accent_color, or motion_motif, but the most impactful parameters are covered. For the low schema coverage, this is a strong effort, though not exhaustive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb-resource statement: 'CHOREOGRAPH THE SPOKEN WORDS onto the screen in ONE pass.' It explicitly contrasts with the alternative of dozens of add_text calls and specifies the use cases (talking-head footage, promo/educator reels, speech-carried typography). This sharply distinguishes it from sibling tools like add_text, add_captions, and set_text_motion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states precisely when to use the tool (for speech-synced typography over talking-head footage, promo/educator reels) and when not to (instead of dozens of add_text calls). It also provides post-render guidance: inspect frames, and if the zone is wrong, re-run with another zone. The description names alternatives and the conditions that select this tool, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_musicAdd musicAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Mix music into the edit. The defaults are CONTEXT-AWARE: under speech the track sits low as a bed (-18dB, ducked); when NO speech survives under the window the music is the LEAD audio (-4dB, no ducking) so the user actually hears it. Pass gain_db/duck only to override that. storage_key is an exact key from list_assets(kind='music') — the user's own uploads or a track fetch_url just downloaded — never invent one. Choose from the user's direction, metadata, context and measured get_audio_analysis evidence. start/end are OUTPUT-timeline seconds and DEFAULT TO THE WHOLE VIDEO, so omit them for 'add some music'. Fades in/out by default. loop=true (the default) repeats a short track to fill the span; offset_s starts partway into the track, e.g. to skip a slow intro. Ducking is SMOOTH by default (a sidechain dip that follows the voice; set_music_fit(duck_mode='step') restores the legacy hard -12dB duck).
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | ||
| duck | No | ||
| loop | No | ||
| start | No | ||
| gain_db | No | ||
| purpose | No | Why this music belongs in this program/window, including the story turn or energy role it supports. | |
| offset_s | No | ||
| fade_in_s | No | ||
| fade_out_s | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| storage_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false, openWorldHint=false, idempotentHint=false, destructiveHint=false, which tells the agent this is a mutating, non-idempotent, closed-world operation. The description goes far beyond that: it discloses default ducking behavior (-18dB bed vs -4dB lead), the context-aware switching logic, default loop behavior, default fades, offset_s semantics, and the smooth vs step ducking distinction. It also warns that storage_key must be an exact key and never invented. This is rich behavioral context that the annotations do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and information-rich, with front-loaded scope and a clear 'Mix music into the edit' statement. It uses capitalization and dashes to emphasize key terms (PROJECT-SCOPED, CONTEXT-AWARE, OUTPUT-timeline, SMOOTH). It is longer than a typical description, but every sentence adds operational value. It loses one point for being somewhat sprawling and for burying the 'Fades in/out by default' detail in the middle rather than grouping all defaults together.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter tool with no output schema, the description covers the critical decision points: how to choose music, how to handle defaults, how to override them, how to source storage_key, and how ducking behaves. It also references sibling tools for follow-up (set_music_fit) and evidence gathering (get_audio_analysis). The only minor gap is that it doesn't describe the return value, but the opening line says 'returns the project identity with its result,' which is sufficient for an agent to know what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 18%, so the description must compensate. It does: it explains gain_db/duck as overrides, start/end as output-timeline seconds defaulting to the whole video, loop=true repeating a short track, offset_s starting partway into the track, and storage_key as an exact key from list_assets. However, it does not explicitly explain fade_in_s/fade_out_s or purpose beyond the schema's own description, and it doesn't enumerate all 11 parameters. Still, the most behaviorally important parameters are well covered.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear project-scoped statement: 'this call acts only on the explicit project_id and returns the project identity with its result. Mix music into the edit.' It names the resource (music into the edit) and the verb (mix/add), and distinguishes itself from siblings like remove_music, swap_music, set_music_fit, and separate_music by focusing on adding music with ducking behavior. The description also clarifies scope (explicit project_id only), which differentiates it from tools that might use an active-project pointer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: 'Choose from the user's direction, metadata, context and measured get_audio_analysis evidence.' It also tells the agent when to omit parameters ('omit them for 'add some music''), when to override defaults ('Pass gain_db/duck only to override that'), and how to source storage_key ('exact key from list_assets(kind='music')... never invent one'). It even references sibling tools (list_assets, get_audio_analysis, set_music_fit) for alternatives and follow-up actions. This is strong routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_overlayAdd overlayAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Draw an image or video clip OVER the program picture for a window of PROGRAM time — picture-in-picture, a corner logo, or fit='cover' for a FULL-FRAME B-ROLL CUTAWAY: the picture switches to the asset while the program's audio (the speaker, the music) keeps playing — THE way to show what the speaker is talking about without touching the timing. asset_key from list_assets (kind='clip'/'image') or a generated/fetched/recorded asset. duration_s defaults: image 4s, video the clip's length (bounded by the program end); b-roll reads best at 2-6s. x/y = the overlay's CENTER as fractions of the frame (ignored with fit='cover') — pass a keyframe list [{t,v}] (t = seconds from the overlay's own start) for a slow drift/slide. scale = overlay width as a fraction of the frame width (0.05-1.0, default 0.4; ignored with fit='cover'). opacity 0.05-1.0 (omit = opaque). entrance/exit: fade, slide_left, slide_right, slide_up. source_start_s seeks into a video overlay. HONEST LIMITS: a video overlay's audio does NOT play (silent), overlays render above footage but BELOW captions (captions stay visible over b-roll), and they do NOT track objects in the footage. insert_media PAUSES the talk and adds time; fit='cover' does not — pick by whether the speech should continue. Assets may be reused whenever the edit benefits from repetition or a different source window.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | ||
| y | No | ||
| fit | No | ||
| exit | No | ||
| scale | No | ||
| start | Yes | ||
| opacity | No | ||
| entrance | No | ||
| asset_key | Yes | ||
| duration_s | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| motion_motif | No | Active Blueprint motion motif id this event executes; never 'hold'. | |
| source_start_s | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations (which only say readOnlyHint=false, destructiveHint=false, etc.) by disclosing honest limits: video overlay audio does NOT play (silent), overlays render above footage but BELOW captions, and they do NOT track objects. It also explains the behavioral difference between fit='cover' and insert_media regarding program timing. This is rich behavioral context that an agent needs to set expectations correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and information-rich, with clear section markers (PROJECT-SCOPED, HONEST LIMITS). It front-loads the most important scoping constraint and the primary use case. It is long, but every sentence adds operational value—defaults, ranges, exclusions, and behavioral caveats. Slightly over-long for a quick scan, but the structure (caps for key phrases, bullet-like clauses) helps navigation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter tool with no output schema and only 15% schema coverage, the description is remarkably complete. It covers parameter semantics, defaults, ranges, behavioral limits, and the key sibling distinction (insert_media). It even addresses asset sourcing (list_assets) and reuse policy. Nothing an agent needs to invoke this tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 15%, so the description carries the burden of explaining parameters. It does this thoroughly: duration_s defaults (image 4s, video clip's length bounded by program end), x/y as CENTER fractions (ignored with fit='cover'), keyframe list format [{t,v}] for drift/slide, scale as fraction of frame width with range and default, opacity range, entrance/exit enums, source_start_s for seeking. This is far beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: drawing an image or video clip over the program picture for a window of PROGRAM time, with specific use cases (picture-in-picture, corner logo, b-roll cutaway). It distinguishes itself from insert_media by explicitly noting that insert_media PAUSES the talk and adds time, while fit='cover' does not. The verb 'draw' and resource 'overlay' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: 'THE way to show what the speaker is talking about without touching the timing.' It also gives a clear exclusion: 'insert_media PAUSES the talk and adds time; fit='cover' does not — pick by whether the speech should continue.' This directly helps an agent choose between add_overlay and insert_media. It also mentions asset_key from list_assets, providing a source for valid inputs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_screen_takeoverAdd screen takeoverAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. PUSH INTO A SCREEN IN THE SHOT AND LET WHAT IS ON IT BECOME THE WHOLE VIDEO — THE tool for 'zoom into the laptop and continue with the other scene', 'make it go into the phone screen', 'transition into the monitor smoothly', and every request that describes the camera travelling INTO a device and the content taking over. It is ONE continuous move, not a zoom plus a cut: the asset is corner-pinned onto the glass so it plays ON the screen inside the shot, the camera pushes in, the picture flattens out of the screen into the full frame, and the clip cuts in on the SAME frame the push ends on — which is why the join cannot be seen. Do NOT build this out of add_zoom + insert_media: an overlay is drawn ABOVE the zoom, so the content sits flat and still while the shot pushes past it, and the cut lands as a jump. at_output_s is where in the FINAL video the takeover FINISHES and the asset is full screen (the push happens in the duration_s before it). The device shot may be the MAIN footage or a SPLICED-IN video clip: point at_output_s inside an inserted clip that shows the device and the push rides that clip's tail, arriving exactly where it ends (I snap there and say so). duration_s 0.4-5, default 1.2 — 1.0-1.5 is the move people mean. I find the corners THREE ways, in order of trust: first I MATCH the content's own pixels against the filmed glass (the laptop was almost always filmed displaying that very recording — a feature homography gives exact corners INCLUDING rotation and keystone, and the pinned clip then grows out of the very pixels it was filmed playing on, living on the glass from the window's start); else I MEASURE a screen-shaped region from the pixels; else I READ the corners with the vision model. When the corners are matched the content is on the glass the whole window; when they are only measured or read, the glass shows what was FILMED until the push is ~half done and the content dissolves on late (a scene switch visible in a wide shot of the room is the #1 thing users call 'not smooth'), fully there before the picture lands. Momentum carries through the cut either way (a brief settle past full frame); ease='accelerate' dives with speed peaking at the cut. Pass corners only to override all of that (8 numbers x0,y0,x1,y1,x2,y2,x3,y3 as FRACTIONS of the frame in the order top-left, top-right, BOTTOM-LEFT, bottom-right — or a {x,y,w,h} rectangle). clip_start_s picks where in the asset the takeover starts playing; hold_s is how long the asset stays full screen afterwards (default: the rest of it). push 0-1 is how far the camera travels (1 = all the way, the default — there is no further zoom past 1; a push that feels weak is usually a short duration_s, so lengthen the move instead). ease: 'smooth' (default), 'accelerate', 'linear'. settle:false turns OFF the through-cut momentum (the brief zoom past full frame after the handoff that settles back) — use it when the user says the video 'keeps zooming after the transition' or 'zooms then returns', or asks for a dead-flat landing. It REFUSES rather than guessing when it cannot measure the screen, and refuses when the screen is under 8% of the frame (the push would be a >12x blowup). TO CHANGE AN EXISTING TAKEOVER (flat landing, different ease/length), call this again at the SAME arrival: it REPLACES that takeover in one write — parameters you omit are inherited, and its accepted pin corners are reused instead of re-measured (pass corners to force a re-measure). remove_screen_takeover is only for taking the transition OUT.
| Name | Required | Description | Default |
|---|---|---|---|
| ease | No | ||
| push | No | ||
| hold_s | No | ||
| settle | No | ||
| corners | No | ||
| asset_key | Yes | ||
| duration_s | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| at_output_s | Yes | ||
| clip_start_s | No | ||
| motion_motif | No | Active Blueprint motion motif id this event executes; never 'hold'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, so the description carries full burden and delivers extensively: it discloses the refusal conditions (cannot measure screen, screen under 8% of frame), the replacement semantics (REPLACES existing takeover, inherits omitted params, reuses pin corners), the momentum/settle behavior, and the three-way corner detection order. The description's write semantics ('replaces... in one write') are consistent with readOnlyHint=false — no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a ~700-word wall of text that is front-loaded well but poorly structured: ALL-CAPS emphasis, long parenthetical asides, and repeated explanations (corner matching is covered in a ~150-word digression with redundant phrases like 'living on the glass from the window's start' and 'fully there before the picture lands'). The same operational facts could be delivered in roughly half the length; the verbosity taxes the agent's context window despite the valuable content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (11 params, 18% schema coverage, no output schema, all-false annotations), the description is exhaustive: every parameter is explained, refusal and replacement behavior is stated, corner-detection strategy is documented, and the distinction from remove_screen_takeover is drawn. Nothing an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 18%, so the description must compensate and does so thoroughly: it defines at_output_s (where the takeover FINISHES), duration_s (0.4-5, default 1.2, recommended 1.0-1.5), corners (8 fractions in top-left, top-right, BOTTOM-LEFT, bottom-right order or a rect), clip_start_s, hold_s (default rest of asset), push (0-1, 1=all the way), ease (three values), and settle. This far exceeds what the sparse schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource ('camera travels INTO a device and the content takes over') and gives concrete user-phrase examples ('zoom into the laptop and continue with the other scene'). It explicitly differentiates from siblings add_zoom and insert_media, explaining that an overlay drawn ABOVE the zoom makes the content sit flat while the shot pushes past. An agent can unambiguously select this tool for device-screen takeover transitions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use ('every request that describes the camera travelling INTO a device'), an explicit when-NOT-to-use ('Do NOT build this out of add_zoom + insert_media' with the failure reason), and the alternative for removal ('remove_screen_takeover is only for taking the transition OUT'). It also documents the idempotent-replacement pattern (call again at the same arrival to change an existing takeover). Nothing about selection is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_sfxAdd sfxAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Punctuate a MOMENT with a one-shot sound effect — a whoosh on a cut, a click on a beat, an impact on a reveal. Choose it when the brief, format, timing, or your editorial judgment says sound design improves the cut. Analysis, metadata, and deterministic preview AUDIO CHECK are useful evidence; uncertainty is something to judge rather than a reason the tool becomes unavailable. storage_key is an exact key from fetch_sfx or list_assets(kind='music') — never invent one. at is an OUTPUT-timeline second (the edited program, not source time). This is NOT background music: it plays once, for as long as the sound is, and never ducks. offset_s starts inside source audio — use it when an extracted clip contains the requested hit late in a long track. purpose records the nameable visible/editorial event for later final-mix review; do not add anonymous decorative sounds. Default -6dB.
| Name | Required | Description | Default |
|---|---|---|---|
| at | Yes | ||
| gain_db | No | ||
| purpose | No | ||
| offset_s | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| storage_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no behavioral hints (all false), so the description carries full responsibility. It discloses project scoping ('PROJECT-SCOPED: this call acts only on the explicit project_id'), return behavior ('returns the project identity with its result'), audio behavior ('plays once, for as long as the sound is, and never ducks'), and timing semantics. This is comprehensive given the absence of annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is lengthy but every sentence adds value: scoping, usage, exclusions, parameter guidance, and default. It is front-loaded with project scoping and maintains a logical flow. While dense, it avoids redundancy and each sentence earns its place, making it appropriately structured for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description explains the return value ('returns the project identity with its result'). It covers all parameters, usage context, prerequisites, and exclusions. It also addresses potential uncertainty ('uncertainty is something to judge rather than a reason the tool becomes unavailable'). This is a complete and self-sufficient description for a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 17% (only project_id has a description). The description compensates by explaining storage_key (exact key from fetch_sfx or list_assets), at (output-timeline second), offset_s (starts inside source audio), purpose (records event for review), and the default -6dB gain. This covers all parameters meaningfully, far exceeding schema detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Punctuate a MOMENT with a one-shot sound effect' and gives concrete examples (whoosh, click, impact). It explicitly differentiates from background music, aligning with sibling tools like add_music and add_voiceover. The verb 'add' combined with the resource 'sfx' is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage conditions: 'Choose it when the brief, format, timing, or your editorial judgment says sound design improves the cut.' It also states a clear exclusion: 'This is NOT background music: it plays once, for as long as the sound is, and never ducks.' Additionally, it specifies the source for storage_key, guiding the agent on valid inputs and prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_stock_mediaAdd stock mediaAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. DOWNLOAD one saved search_stock or research_broll result and save it as a project asset. id must exactly match a result returned for THIS PROJECT; handles survive later turns and MCP worker processes. The clip is SILENT and is NOT in the video yet — place it with add_overlay(fit='cover') for a cutaway that keeps the speech running, or insert_media to splice it in. Representative frames from the ACTUAL downloaded rendition are automatically attached; inspect them before placement. Always tell the user which shot you used.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant behavioral context beyond the annotations: the clip is SILENT, not yet in the video, representative frames from the actual downloaded rendition are attached, and handles survive later turns and MCP worker processes. It does not contradict the annotations (readOnlyHint=false, destructiveHint=false, etc.), and actually reinforces them by describing a non-destructive, additive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately long but each sentence contributes essential information. It front-loads the project-scoped warning and uses clear directives (DOWNLOAD, place it, inspect, tell the user). It could be slightly more compact, but the structure is logical and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description gives a hint of the result ('returns the project identity with its result') and mentions attached frames. It covers all critical call requirements: id matching, project_id sourcing, placement guidance, and user notification. Minor details like error handling are absent but not essential for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite the schema having only 50% coverage (id lacks description), the description thoroughly explains both parameters: id must exactly match a project result and handles persist, while project_id is a required immutable scope copied from project state, not guessed from the active pointer. This compensates fully for the schema's gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'DOWNLOAD one saved search_stock or research_broll result and save it as a project asset.' It specifies the resource (stock media) and the verb (add), and distinguishes itself from other add_* tools by focusing on downloading and saving stock media. The project-scoped warning further clarifies its specific scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool and how to use it correctly: it is project-scoped, requires an exact id match, and provides placement guidance by naming alternatives like add_overlay(fit='cover') and insert_media. It also advises inspecting frames before placement, giving clear conditional usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_stylizeAdd stylizeAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Layer a windowed finishing effect on the program picture: 'grain' (film grain), 'vignette' (darkened corners), 'glow' (soft bloom), 'halation' (warm red-orange highlight bloom like exposed film), 'chromatic' (RGB fringe), 'dream_blur' (soft dreamy diffusion), 'vhs' (tape look), 'flash' (strobe pop), 'shake' (adds camera shake), 'sharpen' / 'denoise' (picture quality — prefer enhance_video, which orders them correctly), 'motion_blur' (real frame blending; only reads on movement, does nothing on a static shot), 'stabilize' (smooths modest HANDHELD wobble via deshake; mirrored edges may soften and it cannot fix a whip, a walk or rolling shutter; say that rather than promising stabilization). Stabilize is whole-video only. For other kinds start/end are PROGRAM seconds — omit both for the whole video. intensity 0.05-1.0 (default 0.5). Content-anchored: a stylized moment follows its footage through later cuts. One or two layered effects read as a look; five read as a broken TV.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | ||
| kind | Yes | ||
| start | No | ||
| intensity | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| motion_motif | No | Active Blueprint motion motif id this event executes; never 'hold'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With minimal annotations, the description carries the burden and does so thoroughly. It discloses content-anchoring ('a stylized moment follows its footage through later cuts'), explains effect limitations (motion_blur 'only reads on movement, does nothing on a static shot'), and warns about layer stacking ('five read as a broken TV'). It also notes the return behavior ('returns the project identity with its result'). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph, but every sentence earns its place. It front-loads the project scope, then lists effects with inline clarifications. While long, the semicolon-separated list keeps it readable. It could be split into clearer sections, but it remains efficient for the information conveyed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 13 effect variants and subtle caveats, the description is remarkably complete. It explains the whole-video vs. program-seconds behavior, intensity constraints, effect-specific limitations, and the content-anchored nature. It also gives an alternative (enhance_video) and sets expectations about layered effects. An agent has all the information needed to decide and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, but the description adds significant meaning: it explains start/end as program seconds, intensity range and default, and describes each effect kind. project_id and motion_motif are already described in the schema. The description does not explicitly tie parameter names to their explanations, but it covers the critical ones. It compensates well for the coverage gap, though a few parameters like motion_motif are left to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Layer'), resource ('program picture'), and scope ('PROJECT-SCOPED: acts only on the explicit project_id'). It enumerates all effect kinds and distinguishes from siblings like remove_stylize and enhance_video. An agent can immediately understand what this tool does and how it differs from alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance is provided for when to use this tool versus others: 'sharpen'/'denoise' → 'prefer enhance_video, which orders them correctly'; 'stabilize' is 'whole-video only' and cannot fix a whip, walk, or rolling shutter. It also clarifies start/end semantics ('PROGRAM seconds — omit both for the whole video') and intensity range, so the agent knows how to invoke correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_textAdd textAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Burn a designed motion-graphics TEXT template over a PROGRAM-time window — separate from captions (spoken words) and overlays (media). Templates: 'title' (big centered opening card), 'subtitle' (support line under a title), 'lower_third' (name/context bar, interviews), 'callout' (short pointed label), 'big_number' (a huge stat — '10x', '$40K'), 'quote' (a quoted line), 'chapter' (section marker). x/y override the template's position (fractions of the frame); size_scale 0.4-3.0; color/accent_color '#RRGGBB'; font from the bundled families (exact name, e.g. 'Anton'); entrance/exit: 'none' (INSTANT — the text is simply there at frame one and simply gone at the end, no animation at all; use when the user wants no effect), fade, pop, slide_up, blur_in, whip, rise, drop, plus 'typewriter' (entrance only); uppercase forces casing; box adds a backing panel. motion is the general primitive for authored x/y/scale/rotation/opacity curves in LOCAL seconds: it can express a coherent drift, arc, settle, punch, spin or fade instead of choosing a named preset. When motion is present, omit entrance/exit. Use for text the user dictates — titles, labels, stats; spoken-word captions stay with add_captions. This text item owns caption suppression for its live window, so enabling captions before or after cannot stack two word layers and removing the text restores those captions automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | ||
| y | No | ||
| box | No | ||
| end | Yes | ||
| exit | No | ||
| font | No | ||
| text | Yes | ||
| color | No | ||
| start | Yes | ||
| motion | No | Element-local motion curves. t is seconds from this text's own start; x/y are frame fractions, scale is relative, rotation is degrees, opacity is 0..1. | |
| entrance | No | ||
| template | No | ||
| uppercase | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| size_scale | No | ||
| accent_color | No | ||
| motion_motif | No | Active Blueprint motion motif id this event executes; never 'hold'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses a non-obvious side effect: this text item owns caption suppression for its live window, preventing stacked word layers and automatically restoring captions when removed. This goes beyond the minimal annotations and gives the agent a clear mental model of the tool's impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and information-rich, using lists and semicolons to organize options. It is longer than average, but every sentence adds value (e.g., explaining coordinate systems, edge cases, and the motion vs. preset decision). The structure is coherent and front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (17 parameters, nested objects, no output schema), the description is largely complete: it covers the main behaviors, constraints, and relationships with sibling tools. It lacks some details like return value structure, but since no output schema is provided, this is acceptable. The description effectively sets the tool in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is low (18%), but the tool description compensates by explaining many parameters: x/y override position, size_scale range (0.4–3.0), color/accent_color format, font families, entrance/exit presets, and the motion curve semantics (units, coordinate system). A few parameters (e.g., 'motion_motif') are only described in the schema and not in the description, but the overall coverage is strong.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that this tool burns a motion-graphics text template into a video window, explicitly distinguishing it from captions and overlays. It also specifies the intended use cases (dictated text like titles, labels, stats) in a concise way.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool versus alternatives (add_captions for spoken words, add_overlay for media) and explains the relationship between 'motion' and preset entrance/exit animations. It also clarifies that 'motion' should be used instead of named presets when authoring custom curves.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_text_behindPut text behind the subjectAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Put words BEHIND the moving subject — the person walks IN FRONT of the letters, the way a title painted on the street or the wall behind them would. This is the 'text behind me walking' / 'name behind the subject' move, and it is a REAL depth composite, not a fade: a person-matting model that carries temporal state between frames cuts the subject out of every frame — dark clothes on a dark wall, handheld wobble and a moving camera are all fine, and the mask holds steady instead of flickering — and the renderer lays them back over the words. PEOPLE occlude the words (with whatever they carry); static objects — furniture, walls — do NOT: over those the words read as an ordinary title, which is what keeps the occlusion steady. Say so if the user asks about an object. Same styling arguments as add_text (template/x/y/size_scale/color/font/entrance/exit); at_output_s + duration_s are where in the EDITED video the words appear. REQUIREMENTS I check and refuse on, so read the reply: a PERSON must be visible in the window (nothing to go behind otherwise — I say so and you offer add_text instead), they must not fill most of the frame (the words would never be visible), the window must be inside ONE take with no cut in it, and no speed ramp over that footage. I also report how much of the text the subject actually crosses — if that is near zero the user will see a plain title, so move the text or the window. BIG TYPE IS THE LOOK: the subject should cross the MIDDLE of tall glyphs with their tops and bottoms staying readable — that is what reads as depth. A small line sits entirely inside the body and whole words vanish, so titles default to size_scale 2.4 here; NEVER shrink the text to 'fix' hidden letters — enlarge it or shorten the phrase. Do NOT put a zoom or a stabilize pass over the window. Remove it with remove_text like any other text.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | ||
| y | No | ||
| box | No | ||
| exit | No | ||
| font | No | ||
| text | Yes | ||
| color | No | ||
| entrance | No | ||
| template | No | ||
| uppercase | No | ||
| duration_s | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| size_scale | No | ||
| at_output_s | Yes | ||
| accent_color | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With only generic annotations (readOnlyHint=false, destructiveHint=false), the description carries the full burden. It discloses scope (project-scoped only), temporal-state matting behavior, refusal criteria listed as 'REQUIREMENTS I check and refuse on', reporting of overlap, and the recommendation not to zoom or stabilize. It adds substantive behavioral detail beyond annotations and contradicts none.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but earns its length: it is organized, front-loaded with project scope, then semantics, then usage prohibitions, then style guidance. Some sentences are redundant for choosing a tool ('PUT WORDS BEHIND THE MOVING SUBJECT' repeated), but no unsourced marketing filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 15 parameters, no output schema, and minimal annotations, the description is nearly complete: it covers the depth semantics, parameter meaning, expected failure conditions, fallback behavior, and how to remove the effect. It goes beyond the minimum needed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only 7% of parameters have schema descriptions, so the description must compensate. It does by identifying arg groups: 'Same styling arguments as add_text (template/x/y/size_scale/color/font/entrance/exit)' and explains at_output_s + duration_s and the special default for size_scale. However, at least four properties (box, uppercase, accent_color, gap between x/y) remain unaddressed, and it depends on the agent already knowing add_ with sibling's arguments, so not a full 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the exact operation with specific verb and resource: put text behind the subject, a real depth composite. It explicitly differentiates from add_text and explains when words read as an ordinary title, so an agent can tell this apart 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use and when-not-to-use guidance: requires a visible person, refuses if no person and tells agent to offer add_text instead. It also names sibling tools as alternatives for using add_text and remove_text, leaving no inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_title_cardAdd title cardAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Cut to a STANDALONE full-frame card showing only this text, then return to the footage — the 'show the term on a blank screen' move. One call does all of it: builds the solid-colour card, splices it into the program at at_output_s, and centres the text on it. Because the card is a real cut (not an overlay), spoken-word captions never appear on it, so nothing overlaps. at_output_s is PROGRAM seconds and everything after it shifts later by duration_s (2-3s reads well). bg_color is the card colour ('#000000' default); subtitle adds a smaller second line under the title. Use add_text instead when the text should sit OVER the footage rather than replace it.
| Name | Required | Description | Default |
|---|---|---|---|
| exit | No | ||
| font | No | ||
| text | Yes | ||
| color | No | ||
| bg_color | No | ||
| entrance | No | ||
| subtitle | No | ||
| template | No | ||
| duration_s | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| size_scale | No | ||
| at_output_s | Yes | ||
| accent_color | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false (readOnly=false, destructive=false, etc.), so the description carries the full burden and does a good job: it discloses that the card is a real cut (not overlay), that spoken-word captions never appear on it, that it shifts subsequent content, and that it returns the project identity. Minor gaps remain—it doesn't discuss reversibility or effects on other tracks—but the disclosed behavior is substantial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but efficiently organized: it front-loads the critical scope, then explains the behavior, then parameter hints, then the alternative. Every sentence adds value—no filler—though it could be tightened slightly by moving the explicit alternative to the end, which it already does. It's appropriately sized for the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 13 parameters, 4 enums, and no output schema, the description is not complete. It doesn't explain the enum options (entrance, exit, template, font) or their effects, doesn't specify defaults for duration_s or size_scale, and doesn't detail the return value beyond 'project identity'. The description covers only the core behavior and a couple of params, leaving too much for an agent to guess or investigate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 8%, and the description compensates for only a few parameters: at_output_s (program seconds), bg_color (default '#000000'), subtitle (adds a second line), and text (implied as the main text). The remaining 10 parameters (exit, font, color, entrance, template, duration_s, size_scale, accent_color, project_id, etc.) are unexplained, leaving the agent to infer or open the schema for each. This is insufficient for a low-coverage schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a precise verb+resource ('add_title_card' builds a standalone full-frame card with text) and immediately scopes it as project-limited. It also distinguishes itself from the sibling add_text by explaining the difference (card replaces footage vs. text overlays on it), so an agent can tell them apart without inspecting schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use it ('when the text should sit OVER the footage rather than replace it' is the exclusion for add_text) and clarifies the timing semantics (at_output_s is program seconds, everything shifts later by duration_s). It also notes the project_id is immutable and copied from specific sources, giving clear invocation guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_vector_graphicAdd vector graphicAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Add a renderer-native VECTOR graphic over a PROGRAM-time window. Kinds: rectangle (panel/highlight), ellipse, line (underline or connector), arrow, ring (point at a real visible subject/UI target), progress (a truthful completion indicator). x/y are frame-fraction centres; width/height are frame fractions. color/stroke_color/background_color are #RRGGBB; stroke_width is a fraction of the short frame edge; rounding is 0-0.5 of the shape's short side; progress value is 0-1. motion uses the same LOCAL x/y/scale/rotation/opacity keyframes as designed text. These are compositional primitives, not decoration quotas: use a panel to support hierarchy, a line to connect, and arrows/rings only when the frame contains the thing they identify. Preview the whole path before accepting it.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | ||
| y | No | ||
| end | Yes | ||
| kind | Yes | ||
| color | No | ||
| start | Yes | ||
| value | No | ||
| width | No | ||
| height | No | ||
| motion | No | Element-local motion curves. t is seconds from this text's own start; x/y are frame fractions, scale is relative, rotation is degrees, opacity is 0..1. | |
| opacity | No | ||
| rounding | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| motion_motif | No | Active Blueprint motion motif id this event executes; never 'hold'. | |
| stroke_color | No | ||
| stroke_width | No | ||
| background_color | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, so the description carries the full burden. It discloses that the call is project-scoped, returns the project identity, uses program-time windows, and advises previewing the whole path before accepting. This gives the agent a clear sense of side effects and scope, though it doesn't state whether it replaces or adds to existing graphics or detail error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph, but every sentence adds value: scope, action, kinds, coordinate system, formatting rules, motion, and usage philosophy. It is front-loaded with the project-scoping caveat and avoids filler. Slightly long but efficient for the parameter complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 17 parameters, nested motion objects, and no output schema, the description covers most parameter semantics and usage context. It lacks explicit units for start/end (seconds vs frames) and does not explain motion_motif or the top-level opacity (though motion includes it). These are minor gaps given the richness of the rest, so it is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema coverage at only 18%, the description compensates well: it explains x/y as frame-fraction centres, width/height as fractions, color formats (#RRGGBB), stroke_width as a fraction of the short edge, rounding as 0-0.5 of the short side, and progress value as 0-1. It also explains motion uses the same keyframe structure as designed text. It does not explicitly describe start/end units or the motion_motif parameter, but most critical semantics are covered.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it adds a renderer-native VECTOR graphic over a program-time window, enumerates the supported kinds (rectangle, ellipse, line, arrow, ring, progress) and distinguishes them by purpose. This is a specific verb+resource with enough detail to separate it from sibling add_* tools like add_text or add_overlay.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit guidance on when to use each shape ('use a panel to support hierarchy, a line to connect, and arrows/rings only when the frame contains the thing they identify') and notes the project-scoped nature. However, it does not explicitly name alternatives or state when not to use this tool (e.g., versus set_vector_graphic), so the exclusion context is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_voiceoverAdd voiceoverAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Lay an uploaded audio file OVER the whole program from start_output_s (a position in the FINAL edited video, default 0). duck_others (default true) lowers all other audio 12dB while it plays. source_offset_s seeks into the file in place (use it to start a narration/song excerpt at the right moment; never create an externally trimmed workaround). duration_s ends the excerpt after exactly that many seconds. To reuse dialogue from the MAIN source over an inserted/second scene, pass asset_key='main', its SOURCE start as source_offset_s, the sentence length as duration_s, and the destination scene's OUTPUT time as start_output_s. Otherwise use a storage_key from list_assets(kind='music').
| Name | Required | Description | Default |
|---|---|---|---|
| gain_db | No | ||
| asset_key | Yes | ||
| duration_s | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| duck_others | No | ||
| start_output_s | No | ||
| source_offset_s | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal (no readOnly, destructive, etc.), so the description carries the burden. It discloses key behaviors: project-scoped, duck_others lowers other audio by 12dB, source_offset_s seeks into the file, and it returns the project identity. No contradictions found with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-structured: it opens with the critical scope note, then explains each parameter with examples and use cases. While it is longer than a typical description, every sentence serves a purpose and it is logically organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters and no output schema, the description covers all essential aspects: what it does, how to use it, parameter meanings, and even the return value. It lacks explicit details on edge cases (e.g., what happens if duration_s is omitted), but overall it is complete enough for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 14% (only project_id is described), but the description compensates by explaining start_output_s, duck_others, source_offset_s, duration_s, and asset_key in detail. gain_db is not explicitly explained but is self-explanatory from its name. Overall, it adds substantial meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: lay an uploaded audio file over the whole program, with parameters for timing and ducking. It distinguishes itself from siblings like add_music and add_sfx by focusing on voiceover and the explicit project-scoped behavior, and it even describes a specific reuse case for main-source dialogue.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear guidance on when to use the tool, including a specific scenario for reusing dialogue and an explicit instruction to use storage_key from list_assets(kind='music') for music. It also advises against external trimming workarounds. It doesn't explicitly list exclusions vs. alternatives, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_web_sfxAdd web sfxAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. ONE-CALL on-demand sound design: search real Openverse/Freesound recordings, rank clean physical one-shots above loops/music/ambience, DOWNLOAD and acoustically compare the candidates. By default an actual-audio reviewer may choose KEEP THIS MOMENT DRY when every sound weakens it; pass allow_none=false only when the user explicitly requires an effect. Otherwise the tool fetches the best measured/listened match and places it at an exact OUTPUT-timeline second. Use for 'add a cinematic whoosh at 3.2s', 'put a shutter on this cut', or any specific requested sound. The result reports the real source and license. gain_db defaults -6; max_seconds defaults 15.
| Name | Required | Description | Default |
|---|---|---|---|
| at | Yes | ||
| query | Yes | ||
| gain_db | No | ||
| allow_none | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| max_seconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, it discloses project scoping, the download-and-compare workflow, the default 'keep this moment dry' decision behavior, exact timeline placement, and source/license reporting. It does not address what happens if the call is repeated or whether placement overwrites an existing effect, which would be useful to know.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence adds information: scope, workflow, defaults, exceptions, and examples. It front-loads the project-scoping constraint and keeps the reader oriented, though the uppercase emphasis is slightly noisy in an otherwise well-structured definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter tool with no output schema, the description is fairly complete: it covers purpose, sourcing, placement, licensing, defaults, and result contents. It still omits explicit error behavior and exact return shape, so an agent must infer some handling from the schema and examples.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 17% schema description coverage, the description carries most parameter meaning: gain_db defaults to -6, max_seconds to 15, allow_none=false is reserved for explicit user requests, and 'at' refers to an exact output-timeline second. It adds meaning via examples but leaves max_seconds' precise effect and allowable ranges undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it searches real Openverse/Freesound recordings, acoustically compares candidates, and places a match at an exact timeline position. The PROJECT-SCOPED note and concrete examples like 'add a cinematic whoosh at 3.2s' make its behavior unmistakable and distinguish it from related sfx sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit use cases ('add a cinematic whoosh at 3.2s', 'put a shutter on this cut') and explains when to set allow_none=false (only when the user explicitly requires an effect). It does not explicitly contrast with nearby alternatives like add_sfx or audition_sfx_candidates, so some routing judgment remains.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_zoomAdd zoomAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Zoom on a time range of the FINAL edited video (output seconds) only when a named event needs the camera to move: a reveal, a UI target, a punchline, an explicit user beat. A talking-head already in frame does NOT need a punch-in. strength 0.05-4.5 (default 0.15; above 1.0 is a dramatic 2x+ punch). mode: 'ease' (default, smooth ramp — use this), 'push_in' / 'pull_out' (continuous Ken Burns drift), 'punch' (instant snap — ONLY the single biggest peak or an explicit punch-in request, never every few seconds). TWO ways to aim, and they answer different requests: rect=[x0,y0,x1,y1] (fractions of the output frame, read off look_at's grid) FRAMES A REGION — the tool solves strength and centre so that box fills the frame with margin, THE way to 'zoom into the message / that button / this panel', and its result reports where the region lands on screen. cx/cy instead PIN A POINT: that point keeps its exact screen position while everything magnifies around it — right for emphasis on a subject that is already well-composed, and wrong for framing a thing near an edge (an edge point stays at the edge at any strength — it never slides to centre). Pass rect OR cx/cy, not both; if both arrive the rect wins (it already determines the centre) and the call still succeeds. Omitting all targets uses the frame center and returns a quality advisory. Coordinates may come from look_at, the filmstrip, user direction, or the editor's own judgment; no prior evidence call is required. Zero zooms is often correct. Do not sprinkle punches on 'important sentences'. punch_in_on_emphasis is only for an explicit punch-in-on-stressed-words request. If the zoom should MOVE while pushed in — 'then move it to X', 'keep it and go to the next message', 'follow the cursor' — that is ONE add_zoom_path (its keyframes take rect too), never a chain of static zooms.
| Name | Required | Description | Default |
|---|---|---|---|
| cx | No | ||
| cy | No | ||
| end | Yes | ||
| mode | No | ||
| rect | No | ||
| start | Yes | ||
| purpose | No | The nameable narrative or visible reason for this zoom. | |
| strength | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| motion_motif | No | Active Blueprint motion motif id this event executes; never 'hold'. | |
| target_evidence_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say not read-only and not destructive, so the description carries the burden. It details behavioral nuances: rect vs cx/cy semantics, precedence rules ('if both arrive the rect wins'), default behavior when targets are omitted, and result reporting ('returns the project identity... reports where the region lands on screen'). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence adds value. It is front-loaded with the scope constraint and structured logically: when, how (strength/mode), aiming (rect/cx/cy), precedence, fallback, and routing to add_zoom_path. No redundant or fluff sentences; density is appropriate for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers all necessary decision points: when to use, how to choose between rect and cx/cy, strength semantics, mode selection, edge cases (edge points), default behavior, and when to defer to add_zoom_path. With no output schema, it even describes the result content. Nothing an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 27%, so the description must compensate. It thoroughly explains rect, cx/cy, strength (with value ranges and effects), mode (with per-mode behavior), and start/end implicitly. It does not explain motion_motif or target_evidence_ids, but these are peripheral to core usage; the main parameters are richly documented beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the exact verb and resource ('Zoom on a time range of the FINAL edited video') and immediately clarifies scope ('PROJECT-SCOPED'). It explicitly distinguishes itself from the sibling add_zoom_path ('that is ONE add_zoom_path, never a chain of static zooms'), so an agent can tell them apart without inspecting schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use conditions ('only when a named event needs the camera to move: a reveal, a UI target, a punchline'), negative guidance ('A talking-head already in frame does NOT need a punch-in'), and strong direction on when not to use it ('Zero zooms is often correct'). It names the alternative tool (add_zoom_path) for moving zooms, leaving no ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_zoom_pathAdd zoom pathAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. A ZOOM THAT MOVES — THE tool for 'make the zoom follow the cursor' / 'move the zoom between buttons' / 'stay zoomed and then move to the next thing' on ANY footage, including a screen recording the user made themselves. Any request where ONE zoom should hold, travel, or visit several subjects in sequence is THIS tool — never a chain of static add_zoom calls, which cut out and back instead of moving. keyframes is a list of at least two points, each {t, rect, strength} or {t, cx, cy, strength}: t is OUTPUT-timeline seconds; rect=[x0,y0,x1,y1] FRAMES the thing to look at there (fractions of the frame from look_at's grid — the same solver as add_zoom rect, so edge subjects come out framed, and omitting strength on a rect keyframe picks the strength that fits it); cx/cy instead PIN a point ((0,0) = top-left). strength 0-4.5 interpolates between keyframes, so the frame can push in as it arrives and ease out as it leaves; to HOLD on a subject, repeat its keyframe at the hold's start and end times. The window runs from the first t to the last. NO ramp is added at the edges: give the first and last keyframe strength 0 for a seamless entry and exit (a strength-0 rect keyframe still aims where the move is going). ease: 'cubic_in_out' (default — settles at each keyframe, the right answer for stopping at buttons) or 'linear' (constant speed, for a steady scan across a wide screenshot). It re-anchors across later cuts exactly like add_zoom, so cutting elsewhere never strands it. Remove the whole move with remove_zoom_path.
| Name | Required | Description | Default |
|---|---|---|---|
| ease | No | ||
| purpose | No | ||
| keyframes | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| motion_motif | No | Active Blueprint motion motif id this event executes; never 'hold'. | |
| target_evidence_ids | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a write operation (readOnlyHint false) with no destructive hint, and the description aligns by describing a mutating effect. It discloses key behaviors: acts only on explicit project_id, interpolates between keyframes, holds by repeating keyframes, adds no ramp at edges, and re-anchors across cuts. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but densely packed with necessary details. It front-loads the purpose and usage guidance, then systematically explains parameters and edge cases. While it could be trimmed, every sentence contributes to correct usage for a complex tool. It earns a 4 rather than 5 due to length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with six parameters, no output schema, and complex keyframe semantics, the description is remarkably complete. It covers parameter formats, interpolation behavior, hold strategies, easing options, edge-case handling, and even cleanup (remove_zoom_path). An agent has enough to call it correctly without further lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%, so the description must compensate. It thoroughly explains keyframes (structure, t, rect/cx/cy, strength semantics, hold behavior) and ease values. It also clarifies project_id as explicit scope. However, it does not explain purpose, motion_motif, or target_evidence_ids, which remain underdocumented. Given the critical parameters are covered, a 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb-resource pair and clearly defines the tool's niche: moving a single zoom across multiple subjects in sequence, contrasted with static add_zoom calls. It even gives example phrasings ('make the zoom follow the cursor') and differentiates from add_zoom and remove_zoom_path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (one zoom that holds, travels, or visits several subjects) and when not (never a chain of static add_zoom calls). It also names the removal counterpart (remove_zoom_path). This gives the agent clear decision criteria without opening other tool schemas.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_lookApply lookAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. ONE-CALL aesthetic: composes caption preset + grade + custom grade + transitions + fades + stylize in a single EDL version and reports every component it set. Looks: 'hype' (beast xl captions, vibrant grade, zoom_punch cuts, closing fade), 'clean' (clean white size-led captions, ungraded, gentle fades), 'cinematic' (elegant captions, cinematic grade + slight warmth, 1s fades, dip_black), 'luxury' (luxe captions, warm grade + temperature lift, long fades), 'meme' (impact xl captions, flash cuts, grain). Preserves existing emphasis_words, else picks them from the transcript. Never touches cuts, music or sfx — place accents with add_sfx. Every component can be adjusted afterwards with its own tool.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only mark readOnlyHint=false, destructiveHint=false, idempotentHint=false. The description adds substantial behavior: it preserves existing emphasis_words or picks them from the transcript, never touches cuts/music/sfx, and reports every component it set. It also discloses the return behavior (project identity with result). This is far beyond annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place. It front-loads the critical scoping and one-call nature, then enumerates looks, states constraints, and gives adjustability guidance. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description explains what the result contains (project identity, reported components). It covers all inputs, lists the exact enum values with behavior, notes the immutable scope, and clarifies what the tool does NOT do. An agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (only project_id has a description). The description adds semantic meaning to the 'name' parameter by explaining exactly what each look does (e.g., 'hype' = beast xl captions, vibrant grade, zoom_punch cuts, closing fade). It also reinforces project_id's scope. This compensates well for the schema gap, though it doesn't enumerate parameter syntax explicitly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('apply') and resource ('look'), and immediately clarifies project scoping. It lists five distinct looks (hype, clean, cinematic, luxury, meme) with concrete effects, making the purpose unmistakable and easily distinguishable from sibling tools like add_stylize or set_color_grade.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use this tool: for a one-call aesthetic composition across captions, grade, transitions, fades, and stylize. It also gives a clear exclusion: 'Never touches cuts, music or sfx — place accents with add_sfx.' This is direct when/when-not guidance with a named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ask_userAsk userAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Ask the user a specific question and wait for their reply (ends this turn). Use whenever a material choice genuinely belongs to the user.
| Name | Required | Description | Default |
|---|---|---|---|
| question | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no hints (all false), so the description carries the burden. It discloses that the call is blocking ('wait for their reply') and ends the current turn, which is critical behavioral context. It also states the project scoping ('acts only on the explicit project_id') and that it returns project identity, giving a clear picture of side effects and interaction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences, front-loaded with the critical scoping note and the turn-ending behavior. No filler words; every clause adds value. The structure makes the key constraints immediately visible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool, the description covers the essential aspects: scope, action, blocking behavior, and usage context. The schema covers project_id. It doesn't mention timeout or response format, but those are not necessary given the simple interactive nature. It's complete enough for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% – only project_id has a description, which is detailed. The question parameter has no schema description, but the tool description says 'Ask the user a specific question', which directly maps to the question field. However, it doesn't elaborate on question format or constraints, so the description only partially compensates for the missing schema detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'ask' and the resource 'user', and it distinguishes this tool from all editing siblings by emphasizing it's the only one that interacts with the user. The phrase 'Use whenever a material choice genuinely belongs to the user' further clarifies the exact purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear condition for use ('whenever a material choice genuinely belongs to the user') and implicitly advises against using it when the decision is not the user's. It doesn't explicitly state alternatives, but no sibling offers this capability, so the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_audio_mixAudit audio mixAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Deterministic audit of the CURRENT EDL's authored music, voiceover and SFX roles, files, program windows, source offsets, gains, ducking and mastering. Each music item includes its persisted raw provider provenance, rights-capability signals and downloaded SHA-256, with explicit null/unknown values. Detects the same asset playing twice or a likely song misfiled as voiceover. This state is ground truth; deterministic preview AUDIO CHECK can measure the rendered mix without relabeling roles.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read-only, side-effect-free audit ('deterministic audit', 'ground truth', 'returns'), but annotations set readOnlyHint=false. This is a direct contradiction, and the description provides no clarification about any potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-structured, front-loading the PROJECT-SCOPED constraint and then listing the audit components. Every sentence adds value, though it is slightly long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description thoroughly explains what is returned (roles, files, provenance, SHA-256, null/unknown handling, duplicate/misfile detection). It is sufficient for an agent to understand the result, though exact formatting is not specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema documents project_id, but the description adds crucial guidance: it must be copied from list_projects/open_project/project_state and the active-project pointer is never used. This prevents misuse and goes beyond the schema's generic description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool audits the audio mix (music, voiceover, SFX) of the current EDL and enumerates specific attributes (roles, files, windows, offsets, gains, ducking, mastering) plus detection capabilities. It distinguishes itself from sibling audit tools like audit_captions by focusing on the audio mix.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It notes the tool is project-scoped and returns ground truth, and mentions an alternative (deterministic preview AUDIO CHECK) for measuring rendered mix without relabeling roles. However, it does not explicitly name the alternative tool or provide clear when-to-use versus when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_captionsAudit captionsAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Mechanically compile and audit the CURRENT caption track using the exact ASS artifact ffmpeg burns. Reports first-caption lateness, missing spoken-word coverage, true distinct-state overlaps, max_words_seen, max_lines_seen, declared-density and single-line wrap violations, exact event pages and up to 16 high-information output times for rendered pixel QA. Call after adding or restyling captions and after render_preview; this is stronger timing evidence than a visual critic.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations all false, the description carries the burden, and it delivers useful behavioral details: it is project-scoped, uses the exact ASS artifact that ffmpeg burns, returns project identity with the result, and lists exact metrics and output times. It does not explicitly state whether state is modified, but the audit semantics and output framing make the behavior reasonably clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but mostly high-value, front-loading the critical project-scoped constraint. The long mid-sentence list of metrics is packed with useful information, though it would be easier to parse if broken into shorter sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description does well by enumerating the reported metrics, event pages, and output times. The only notable gap is the lack of any guidance on limit and offset, which leaves the pagination behavior ambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%, with limit and offset completely undocumented in the schema. The description clarifies project_id's required immutable scope and how to source it, but it does not explain limit or offset at all, so it fails to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: it audits the current caption track, and is explicitly marked PROJECT-SCOPED. It also distinguishes itself by naming what it reports and by comparing itself to a visual critic, making it easy to differentiate from siblings like audit_audio_mix.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly tells the agent when to call this tool: after adding or restyling captions and after render_preview. It also provides a exclusionary reason by stating it is stronger timing evidence than a visual critic, which helps select the correct tool among alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audition_sfx_candidatesAudition sfx candidatesAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Compare multiple search_sfx candidates using their ACTUAL waveform before choosing. Measures attack, peak position, tail, crest, spectral balance, bass and whether the file contains one clean event or several. Ranks those facts against a named physical/editorial purpose. The language model does not hear the recordings; use this evidence together with title/license, then fetch and place the winner exactly on the visible event.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | ||
| purpose | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal (readOnlyHint false, etc.) but the description adds important context: it is project-scoped, returns the project identity, measures specific audio attributes, and does not hear audio. It discloses that it is an analysis/ranking operation without claiming mutation. No contradiction with annotations; the description enriches beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately long but information-dense. It is front-loaded with the project-scoping note and the core comparison purpose, then adds measurement details and usage advice. Every sentence contributes value; it is not overly verbose for the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, but the description tells what the tool returns (project identity and ranking evidence) and what it measures. It also explains the post-selection workflow. This is sufficient for an agent to invoke it correctly, though exact output format is unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% (only project_id has a description), but the description compensates by explaining the purpose of 'ids' (candidates from search_sfx) and 'purpose' (named physical/editorial purpose for ranking). It adds meaning beyond the bare schema, though it does not detail exact formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: compare multiple SFX candidates using actual waveform data. It specifies the exact resource (SFX candidates), the action (audition/compare), and the outcome (ranking against a purpose). It distinguishes itself from siblings like search_sfx (searching) and fetch_sfx (fetching) by focusing on the audition/ranking step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context on when to use: 'Compare multiple search_sfx candidates using their ACTUAL waveform before choosing.' It also advises what to do after (fetch and place the winner) and acknowledges the LM's limitation. It does not explicitly state when NOT to use it, but the intended usage is well implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
auto_reframeReframe for a vertical or square platformAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. THE tool for 'make it 9:16 / vertical / for TikTok'. It samples frames across the kept footage and MEASURES two things before writing the frame: where the subject is (faces found in the pixels; vision or a detail-energy estimate only when there is no face), and whether a crop is the right operation at all — how much of the picture's detail would survive the crop window. With mode='auto' (default) footage with a subject gets a crop aimed at it, and footage whose content runs to the edges (gameplay, screen recordings, wide scenes) is FITTED into the new frame over a blurred backdrop so nothing is cut off — cropping those is the 'it just truncated my video instead of adjusting it' complaint. Pass mode explicitly to force one. Read what it reports and repeat THAT.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| ratio | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses internal behavior: it samples frames, measures subject location and detail survival, and decides between crop and fit (with blurred backdrop). It mentions 'writing the frame' indicating a mutation, and notes it returns the project identity. While annotations provide no hints (all false), the description carries the burden and does so well, though it doesn't cover side effects or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but front-loaded with scope and purpose ('PROJECT-SCOPED', 'THE tool'). Every sentence adds value—explaining the measurement logic, mode behavior, and the truncation complaint. It could be trimmed slightly, but the structure is logical and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should clarify the return value. It says 'returns the project identity with its result' and 'Read what it reports and repeat THAT,' but the 'result' and 'THAT' are vague. It doesn't specify the output format or error conditions, leaving an agent uncertain about how to interpret and act on the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% (project_id has a description), but the description compensates by explaining mode's behavior ('auto' default, crop vs pad) and implicitly clarifies ratio via the title. It adds meaning beyond the enum for mode, and reinforces project_id's immutability. Ratio is not directly explained but is obvious from context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it is 'THE tool for make it 9:16 / vertical / for TikTok' and emphasizes 'PROJECT-SCOPED', clearly distinguishing it from siblings like add_aspect_shift or set_frame. It names the specific verb (reframe) and the resource (project video), leaving no ambiguity about its function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit usage guidance: 'Pass mode explicitly to force one' and instructs the agent to 'Read what it reports and repeat THAT.' It positions itself as the definitive tool for vertical/square conversion, implying when to use it, though it doesn't explicitly list alternatives or when not to use it. The context is sufficient for an agent to select it correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
beat_align_cutsSnap cuts to the musical beatAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. THE tool for 'cut to the beat'. Slides each INTERNAL cut (never the program's first start / last end) onto the nearest beat within tolerance_s (default 0.35s), skipping any move that would land inside a word. WHICH beat: when the edit has music it uses the SONG the viewer hears, in program time — that is what 'the beat' means; source='video' forces the footage's own audio instead. If the USER tells you the tempo ('there's a beat every second', 'it's 120 BPM'), pass every_s=1 or bpm=120 — their tempo is data and skips the confidence gate. With no music, no stated tempo and no clear pulse in the footage it refuses honestly rather than 'syncing' to noise — never invent a tempo yourself. Cuts must already exist: this MOVES boundaries, it does not create them (to cut ON every beat, build the spans with keep_segments from the beat times get_audio_analysis reports, then call this to tighten them). One EDL version; reports moved/skipped counts.
| Name | Required | Description | Default |
|---|---|---|---|
| bpm | No | ||
| source | No | ||
| every_s | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| tolerance_s | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite minimal annotations, the description fully discloses behavior: it moves boundaries, skips word-interior moves, refuses to sync to noise, never invents a tempo, returns project identity plus moved/skipped counts, and notes it operates on a single EDL version. No contradiction with annotations (destructiveHint=false aligns with 'moves boundaries, does not create').
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence carries necessary information. It is front-loaded with scope and core behavior, then covers edge cases and workflow. Slightly verbose in phrasing, but justified by the tool's complexity and the absence of an output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description covers the return (project identity, moved/skipped counts) and behavior in edge cases. It also integrates with sibling tools (get_audio_analysis, keep_segments) to give a complete workflow. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 20% (only project_id described), but the description explains every parameter: tolerance_s default (0.35s), source enum meaning (video forces footage audio), every_s and bpm as tempo hints that skip the confidence gate, and project_id as immutable scope. This fully compensates for the sparse schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('slides each INTERNAL cut') and resource (cuts), and explicitly frames itself as 'THE tool for cut to the beat'. It distinguishes from siblings by noting it does not create cuts and skips moves that would land inside a word, making it clear vs. keep_segments and cut_silences.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance: describes when to pass tempo hints, when it refuses (no music/tempo/pulse), and gives a workflow with keep_segments and get_audio_analysis for cutting on every beat. It also states it only moves existing cuts, not creates them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bind_motion_motifBind motion motifAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Bind an EXISTING renderer-visible movement to the exact motif id it was designed to execute in the active Blueprint v3 motion language. This records causal provenance; it does not create an effect or require a count. target_type: zoom, text, vector, overlay, insert, speed, aspect_shift, stylize, custom, transition or captions. Pass id for item targets; transition/captions are track-level. Pass motion_motif='clear' to remove a binding. Static targets and the reserved stillness decision 'hold' are rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| target_type | Yes | ||
| motion_motif | Yes | Active Blueprint motion motif id this event executes; never 'hold'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false, and the description aligns by stating it records provenance without creating an effect. It adds valuable context: project-scoped side effects, return of project identity, rejection of 'hold' and static targets. No contradiction found, and it discloses the key non-creation behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place. It front-loads the project-scoped constraint, then quickly states the core purpose, clarifies target semantics, and ends with clear rejections. No redundant wording or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description covers all essential details: required parameters, scoping, valid target types, special values, and rejection rules. It also states the return includes project identity, which addresses the output gap. An agent has enough to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 50% schema coverage, the description compensates substantially. It explains that target_type values map to specific domains (transition/captions are track-level, id is for item targets), clarifies motion_motif can be 'clear' and that 'hold' is rejected, and emphasizes project_id is an immutable scope that must be copied from a source, never guessed. These go well beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('bind'), a precise resource (an existing renderer-visible movement to a motif id), and distinguishes it from creation tools by clarifying it records provenance rather than creating an effect. It also enumerates target types and explicitly rejects static targets and 'hold', leaving no ambiguity about scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly scopes the call to a project_id, explains it acts on EXISTING movements, and differentiates track-level vs item targets. It does not explicitly name alternative sibling tools, but the behavioral constraints (e.g., 'does not create an effect') make the usage context clear. The 'clear' option and rejection rules further guide correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blur_regionBlur regionAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Put a VISIBLE censor over a fixed RECTANGLE of the original footage — blur, mosaic or a black bar. Use it when the user WANTS the covering to show: a face, a document, a phone number, a plate. To make something GO AWAY instead — burned-in captions, a watermark, a username, an object — use erase_region / erase_burned_text, which repaint the pixels and rebuild the picture behind them; a blur where the user asked for removal reads as a workaround. x,y = TOP-LEFT corner and w,h = size, all as FRACTIONS (0-1) of the SOURCE frame — exactly the frames look_at shows you; a 9:16 or other output reframe moves the censored footage with it automatically, and spliced-in clips/images are never censored. Example — a username in the top-right corner: x=0.6, y=0.02, w=0.38, h=0.1. FIRST look_at the video asking exactly where the text sits (corner? edge? how big?), then blur_region, then render_preview and CHECK the sheet — if text still shows, remove_blur and place a bigger region. start/end (output seconds) optionally limit when it applies; omit both for the whole video. mode: 'blur' (soft, default), 'pixelate' (mosaic), 'black' (solid bar). The rectangle does NOT track motion — text that moves with the camera may leave it; verify and tell the user honestly.
| Name | Required | Description | Default |
|---|---|---|---|
| h | Yes | ||
| w | Yes | ||
| x | Yes | ||
| y | Yes | ||
| end | No | ||
| mode | No | ||
| start | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provide behavioral hints (all false), so the description carries full burden. It discloses the coordinate system (fractions of source frame), the non-tracking nature, that spliced clips are never censored, optional timing, and the project-scoped behavior. This goes well beyond what annotations offer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but each sentence adds essential context: scope, purpose, usage alternatives, coordinate system, example, workflow, mode, and limitation. It's front-loaded with the project scope and purpose, and while lengthy, it's structured with bold labels and an example, so it's not wasteful. Slightly over-wordy but justified for the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters, no output schema, and no annotation hints, the description covers all necessary details: how to specify the region, coordinate system, modes, timing, verification workflow, and edge cases (motion, spliced clips). It even includes a concrete example. Nothing critical is missing for an agent to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 13% (only project_id described). The description explains x/y/w/h as fractions, start/end as output seconds, mode meanings, and project_id scoping. It adds substantial meaning for every parameter, fully compensating for the sparse schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool's function: placing a visible censor (blur, mosaic, black bar) over a fixed rectangle of the original footage. It distinguishes itself from siblings (erase_region/erase_burned_text) by contrasting visible covering vs removal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly specifies when to use it (user wants covering to show) and when not (when removal is desired, pointing to erase tools). Provides a step-by-step workflow (look_at, blur_region, render_preview, check, adjust) and notes the limitation about motion tracking.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_uploaded_mediaCompare uploaded mediaAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. YOUR OWN EYES on SEVERAL uploaded clips/images in ONE story-wide comparison. Pass every relevant exact storage_key together; each candidate is represented on dynamically built labeled pages, with representative real frames, CLIP seconds and exact sentence/shot IDs. Use this instead of serial look_at_asset calls when choosing/order-casting a reel, montage, B-roll library or multi-clip story. It does not rank by upload order, does not silently shortlist, and explicitly allows leaving a weak/redundant asset unused. Then use source_asset_key + the returned evidence_ids in sequence_map.
| Name | Required | Description | Default |
|---|---|---|---|
| question | No | ||
| asset_keys | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| samples_per_asset | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, so the description carries the burden. It discloses that the call acts only on the explicit project_id, does not rank by upload order, does not silently shortlist, and explicitly allows leaving weak/redundant assets unused. It also mentions dynamically built labeled pages and returned evidence_ids. It doesn't detail side effects or performance, but the key behavioral traits are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and somewhat disorganized, with unusual capitalization and run-on phrasing ('YOUR OWN EYES on SEVERAL uploaded clips/images in ONE story-wide comparison'). It front-loads the project-scope constraint but buries the key usage guidance mid-paragraph. It could be tightened into clearer, shorter sentences without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a comparison tool with no output schema, the description covers the main operational needs: what to pass, how it behaves, and what to do with the result ('use source_asset_key + the returned evidence_ids in sequence_map'). It doesn't explain the 'question' or 'samples_per_asset' parameters, which is a gap, but the core workflow is complete enough for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%, so the description must compensate. It explains asset_keys ('Pass every relevant exact storage_key together') and project_id ('Required immutable scope... Copy the id from list_projects/open_project/project_state'), but it does not explain the 'question' or 'samples_per_asset' parameters. The description adds meaning for two of four parameters, which is partial compensation for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Compare') and resource ('uploaded media'), and clarifies it operates on multiple assets at once. It distinguishes itself from serial look_at_asset calls, though the name 'compare_uploaded_media' is somewhat generic and the description's unusual formatting makes the core purpose less crisp than it could be.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use this instead of serial look_at_asset calls when choosing/order-casting a reel, montage, B-roll library, or multi-clip story. It also states what it does not do ('does not rank by upload order, does not silently shortlist'), giving clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compose_panelsCompose panelsAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. PROJECT-SCOPED: build ONE 16:9 clip that shows 2 or 3 independent videos side-by-side on a solid BLACK canvas — the signature multi-panel athlete/action wall. Do NOT fake this with pad_blur inserts plus small PIP overlays. columns is either a list of 2–3 asset_keys or a list of columns, each a list of {asset_key, start, duration} clips that play in that column (when one clip ends the next one in that column starts). duration_s caps the result (1–20s, default 8). The file is saved as a video_clip and is NOT in the program until insert_media (use fit='pad'). Audio is omitted — add_music for the bed.
| Name | Required | Description | Default |
|---|---|---|---|
| columns | Yes | ||
| duration_s | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the bare annotations, the description discloses meaningful behavior: it is project-scoped to the explicit project_id, saves a video_clip, does not place it in the program until insert_media, omits audio, and caps duration at 1-20s. This gives the agent clear expectations about side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence serves a purpose: scope, core behavior, anti-pattern warning, parameter semantics, and post-processing notes. It is front-loaded with project-scoping, though the repeated 'PROJECT-SCOPED' phrasing is somewhat redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers composition rules, duration limits, file persistence, insertion status, and audio behavior. However, with no output schema, it only vaguely says 'returns the project identity with its result'—it does not specify the exact response shape or whether the operation is synchronous or asynchronous, leaving some uncertainty for an agent invoking it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only lists `columns` as a bare array and `duration_s` as a number, with 33% description coverage. The description compensates by explaining the two valid formats for columns (list of asset_keys or list of column clip-lists) and defining each clip's structure as {asset_key, start, duration}, plus the valid range/default for duration_s.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states precisely what the tool does: 'build ONE 16:9 clip that shows 2 or 3 independent videos side-by-side on a solid BLACK canvas'. It also distinguishes itself from the naive approach ('Do NOT fake this with pad_blur inserts plus small PIP overlays'), making its unique purpose clear relative to sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives strong context for when to use the tool—creating the signature multi-panel athlete/action wall—and explicitly warns against faking it with pad_blur inserts and PIP overlays. It also points to follow-up steps: insert_media with fit='pad' and add_music for audio. It doesn't name specific alternative tool names, but the guidance is usable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_projectCreate a projectAInspect
Create an empty project and select it for navigation. Copy the returned project_id into every later call. Upload a video into it with upload_start, or build a canvas program from generated/uploaded assets. kind='shorts' creates a Podcast to Shorts intake project. After its main video finishes analyzing, read the podcast and call make_shorts with your explicit story arcs; selection does not start automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Default 'edit'. Use 'shorts' for a long podcast/video that should fan out into multiple generated short projects. | |
| title | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, so the description carries the full burden. It discloses that the tool selects the new project for navigation, returns a project_id that must be copied into later calls, and that selection does not start automatically for shorts. It also explains the required explicit story arcs for make_shorts. This is exceptionally transparent about side effects and workflow requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph with multiple sentences, but each sentence earns its place by covering a distinct aspect: creation, side effect, usage options, and the shorts workflow. It front-loads the primary purpose and then adds necessary detail. It is concise relative to the complexity of the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with significant behavioral nuance (selection, shorts workflow, required project_id usage), the description covers the main points thoroughly. It does not explicitly mention the default kind ('edit') or error/edge cases, but the schema covers the default and the description provides enough to call the tool correctly in typical scenarios. Given the absence of an output schema, the mention of the returned project_id is helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (only kind has a description). The tool description adds context for kind ('shorts' creates a Podcast to Shorts intake project) but this largely repeats the schema's own description. For title, no additional meaning is provided beyond the schema's bare string type. The description adds some value for kind but does not compensate for the missing title semantics, so a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('create'), resource ('empty project'), and a side effect ('select it for navigation'). It clearly differentiates from siblings like open_project and list_projects by focusing on creation and selection, and it also explains the special 'shorts' kind. This is a precise, non-tautological purpose statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit usage context: after creation, upload with upload_start or build a canvas program; for shorts, it outlines the post-analysis workflow with make_shorts. It does not explicitly say 'use this instead of open_project', but the creation vs. existing distinction is implicit and clear enough for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cut_output_rangeCut a range of the finished editAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Cut a span of the ASSEMBLED program — OUTPUT seconds, the clock the viewer and the scene map use — no matter what plays there. Kept footage under the span is cut in source time; an inserted clip it crosses is SPLIT around it (or removed when fully covered); one version write, everything re-anchored. THE tool for 'cut 12-15 of the video' / 'cut that part of the second scene' — never answer that cutting inside an insert is impossible, and never fake it with set_insert_window (that changes WHICH part plays, it cannot remove a middle). One range per call; batch several calls for several ranges.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | ||
| start | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, so the description carries the full burden. It discloses that the call is project-scoped, that it splits inserts it crosses, removes footage fully covered, and re-anchors everything in one version write. This goes well beyond the minimal annotations and gives the agent a precise mental model of the operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence adds value: scope, behavior, insert handling, use cases, and warnings. It is front-loaded with the project-scoped note and structured logically. It could be slightly tighter but remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex operation with no output schema, the description covers the essential aspects: what it does, how it handles overlapping inserts, when to use it, and what it returns (project identity). It even addresses a common misconception (that cutting inside an insert is impossible). Nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 33% schema coverage, the description compensates by explaining that start and end are in OUTPUT seconds and that the range applies to the assembled program. It also clarifies project_id is required and immutable, and that one range per call is allowed. This adds meaning the schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it cuts a span of the ASSEMBLED program in OUTPUT seconds, distinguishing from source-time cuts and explicitly contrasting with set_insert_window. The verb 'cut' and resource 'output range' are specific, and the mention of 'the clock the viewer and the scene map use' adds precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly names the alternative set_insert_window and explains why it is inappropriate ('that changes WHICH part plays, it cannot remove a middle'). It also provides example user requests ('cut 12-15 of the video') and advises batching multiple calls for multiple ranges, leaving no ambiguity about when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cut_rangeCut rangeAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Remove ONE source-time range from the current keep set (a local edit — the rest of the edit is untouched). Creates a new EDL version. snap_to_words:true keeps neighbouring words whole. SOURCE seconds of the main video ONLY — when the user gives times of the EDITED video ('cut 12-15 of the video'), or the span sits inside an inserted clip, use cut_output_range.
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | ||
| start | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| snap_to_words | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite annotations (readOnlyHint=false), the description adds substantial context beyond them: project-scoping ('PROJECT-SCOPED: this call acts only on the explicit project_id'), the side-effect boundary ('a local edit — the rest of the edit is untouched'), the state change ('Creates a new EDL version'), and the return format ('returns the project identity with its result'). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense and front-loaded — the critical scoping constraint leads, followed by the operation, side-effect boundary, snap behavior, and sibling routing. Every sentence carries information with no filler, though it packs multiple clauses into long sentences that could be split for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers everything an agent needs: scope, one-operation behavior, side-effect guarantee, EDL versioning, snap semantics, return value, and the source-vs-output routing rule. Nothing required to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25%, so the description must compensate and does: it clarifies that start/end are SOURCE-seconds of the main video (resolving the timeline ambiguity), and explains snap_to_words ('keeps neighbouring words whole'). project_id is already well-described in the schema, and the description reinforces the explicit-scope requirement. Minor gap: snap_to_words is explained but its default is not stated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says 'Remove ONE source-time range from the current keep set' — a specific verb (remove), resource (source-time range in keep set), and operation scope. It explicitly names cut_output_range as the sibling it is not, telling the agent apart from the edited-output sibling without opening either schema. This is precise and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when/when-not guidance: 'SOURCE seconds of the main video ONLY — when the user gives times of the EDITED video... use cut_output_range.' It names the specific alternative and the exact condition that selects it, which is the gold standard for usage routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cut_silencesCut silencesAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. ONE-CALL silence trim — THE tool for 'cut the silences' / 'tighten this up' / 'remove the dead air'. Cuts every detected pause at least min_silence_s long (default 0.5s), keeping padding_s (default 0.12s) of breathing room around speech and snapping to word edges so no word is clipped. Do this in one call instead of many cut_range calls; then get_kept_transcript to verify. If at least half of the gaps contain audible material and the pass would remove 25%+ of the program, it refuses without changing the EDL. Set allow_nonquiet=true ONLY when the user explicitly permits discarding those non-speaking music/game/room-performance moments.
| Name | Required | Description | Default |
|---|---|---|---|
| padding_s | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| min_silence_s | No | ||
| allow_nonquiet | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite annotations being sparse (all false), the description fully discloses behavior: trimming mechanics (min_silence_s, padding_s), word-edge snapping to avoid clipping, refusal logic (>=50% audible gaps and 25%+ removal), and the requirement to set allow_nonquiet only with user permission. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence earns its place. Key scoping and single-call positioning are front-loaded, defaults are given inline, and the safety guardrails are stated without redundancy. Dense but efficiently organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 params, no output schema, and important failure/refusal behavior, the description covers everything an agent needs: scope, defaults, edge-case refusal, and the recommended verification step. Nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25% (only project_id described), but the description compensates by explaining min_silence_s (default 0.5s), padding_s (default 0.12s), and allow_nonquiet (permission gating). It adds semantic meaning beyond the raw schema, which is exactly what's needed at low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it cuts silences in a project with a specific verb+resource. Explicitly distinguishes itself from cut_range ('Do this in one call instead of many cut_range calls') and identifies itself as 'THE tool' for silence trimming, making it unmistakable among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance: the intended use case ('cut the silences', 'tighten this up'), the alternative (cut_range) to avoid, and the follow-up verification tool (get_kept_transcript). Also specifies the condition for allow_nonquiet and the refusal conditions. No guesswork needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_urlGet a download link for a renderARead-onlyInspect
A temporary URL for watching or downloading a render of an explicit project, with a durable receipt. asset_id recovers a historical render. kind 'preview' (complete draft/approval), 'preview_check' (changed sections), or 'final' (an existing Studio or Shorts export). This tool cannot create a final export.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | ||
| asset_id | No | ||
| project_id | Yes | ||
| edl_version | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
ReadOnly annotation is reinforced and expanded: URL is temporary, receipt is durable, and the tool cannot create exports. This tells the agent about side-effect-free retrieval and a capability limit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences lead with the core purpose, then clarify parameter semantics and limitations. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the return behavior (temporary URL, durable receipt) and main kind values, but omits edl_version, response shape, and any conditions/errors. Adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so all meaning must come from the description. It explains kind and asset_id well, but says nothing about edl_version and only implies project_id. Partial compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('temporary URL for downloading a render') and differentiates itself by clarifying it cannot create a final export, which sets it apart from render/export-style siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies when to call it — when you need a download link for a render — and notes a negative boundary (cannot create final export), but gives no explicit guidance on when to prefer this over sibling tools or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enhance_cursorEnhance cursorAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. MAKE THE MOUSE POINTER BIGGER AND STEADIER — THE tool for 'the cursor is too small' / 'too jittery' on a screen recording. It finds the pointer in the source frames, repaints the original out, and redraws it at scalex (1-4; 2 is the usual answer) along a path filtered to remove hand tremor — smoothing 0-1, where fast deliberate moves stay sharp at any setting. click_times is a list of SOURCE-video seconds that get an expanding ripple: I CANNOT see clicks in the pixels (nothing distinguishes a press from a hover), so either pass the times record_website_demo reported, or ask the user when the clicks were — never guess them. Set click_highlight=false to skip the ripples. This bakes into the source copy the render reads, so every cut keeps it and no timestamp moves; it reports what fraction of frames the pointer was actually found in and refuses outright on footage that has no visible cursor. Undo with remove_cursor_enhance.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | ||
| smoothing | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| click_times | No | ||
| click_highlight | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say not read-only and not destructive, so the description carries the burden. It discloses that it bakes into the source copy, reports fraction of frames found, refuses on no-visible-cursor, and cannot detect clicks in pixels. This is rich, accurate behavior disclosure beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence adds value: scope, purpose, mechanics, parameter meanings, limitations, and side effects. It is dense but efficiently organized, with the most critical constraints (project-scoped, don't guess clicks) front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and low schema coverage, the description covers everything needed: what it does, when to use, parameter semantics, side effects, undo path, and failure conditions. An agent can call it correctly without ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 20% (only project_id has a description). The description explains scale (1-4, 2 usual), smoothing (0-1, hand tremor), click_times (source-video seconds, must be provided or asked), and click_highlight (skip ripples). It fully compensates for the sparse schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (enhance cursor), the target (small/jittery pointer on screen recording), and differentiates from the undo sibling remove_cursor_enhance. It names the exact problem it solves, making selection unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use (for small/jittery cursor on recordings) and when it refuses (no visible cursor). It instructs on click_times (pass from record_website_demo or ask user, never guess) and mentions undo via remove_cursor_enhance. Lacks a direct 'use X instead' but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enhance_videoEnhance videoAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. PICTURE QUALITY, not a look — the right answer to 'make it clearer / sharper / better quality / HD / enhance this'. sharpen 0-1 (default 0.5) recovers detail the camera's encoder smeared; denoise 0-1 (default 0) cleans grainy low-light footage and should be raised BEFORE sharpening noisy video. start/end are PROGRAM seconds; omit both for the whole video. It cannot add resolution — say that plainly instead of promising HD from a small source. Never answer a clarity request with a colour grade.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | ||
| start | No | ||
| denoise | No | ||
| sharpen | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, so the description carries the burden of behavioral disclosure. It adds useful context: the call is project-scoped, returns the project identity with the result, and cannot add resolution. However, it does not disclose whether the operation is asynchronous (e.g., requiring wait_for_job), side effects on existing media, or reversibility. Given the mutation nature (readOnlyHint=false), more disclosure would be beneficial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and front-loads the critical scope and purpose. It is a single block but effectively organized: scope, purpose, parameter details, and limitations. No wasted sentences, though the lack of formatting makes it slightly harder to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter tool with no output schema, it covers the essential usage, parameter semantics, and key limitations. The main gap is the absence of information about asynchronous behavior or the exact shape of the result beyond 'project identity with its result'. This is a minor omission given the overall richness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 20% schema coverage, the description compensates fully. It explains sharpen (0-1, default 0.5, purpose), denoise (0-1, default 0, purpose and ordering relative to sharpen), and start/end (program seconds, omit both for whole video). project_id is already described in the schema. All parameters gain meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: enhancing picture quality via sharpening and denoising. It explicitly distinguishes itself from look-based tools ('PICTURE QUALITY, not a look') and names the exact user intents it addresses ('make it clearer / sharper / better quality / HD / enhance this'). It also states it is project-scoped, which is a precise scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit when-to-use guidance by mapping to user phrases and warns against using it for resolution increases or colour grading. It also gives operational advice like raising denoise before sharpen on noisy footage. It does not name specific sibling tools as alternatives, but the differentiation is clear enough for an agent to select it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
erase_burned_textErase burned-in text from the pictureAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. TRULY REMOVE burned-in captions (or watermarks) — one call: it measures every matching region and REPAINTS THE PIXELS, reconstructing the picture that was behind the text. This is real removal, not a blur or a bar: say 'removed'. Use it for 'remove the captions' / 'take the subtitles off' / 'get rid of the watermark' on footage that arrived with text burned in, and BEFORE add_captions when the user wants a different caption font or style — with the old text gone, new captions cannot stack on it. Cuts, timings, transcript and captions are unaffected; the video is unchanged except that the text is gone. scope defaults to 'captions'.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | ||
| scope | No | ||
| start | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide readOnlyHint=false, so the description carries the full burden. It discloses that it repaints pixels, reconstructs the original picture, is real removal (not blur), and that other elements (cuts, timings, transcript, captions) remain unaffected. It also mentions the scope default and project identity return. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and front-loaded with the key distinction (real removal vs blur) and project-scoping. It's slightly verbose with emphatic caps ('TRULY REMOVE', 'REPAINTS THE PIXELS') but each sentence contributes purpose, usage, or behavior. It could be trimmed without losing value, but it's well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, it covers purpose, usage, behavior, side effects, and return (project identity with result). It mentions scope default. The main gap is lack of explanation for start/end parameters, but they are likely self-explanatory. Overall, it gives sufficient context for an agent to decide and call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% (only project_id has a description). The description adds meaning to scope ('scope defaults to captions') and reinforces project_id as explicit scope. However, start and end parameters are not mentioned in the description, leaving their semantics undocumented. It partially compensates for the low schema coverage but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('TRULY REMOVE') and resource ('burned-in captions or watermarks'), and clarifies it repaints pixels rather than blurring or barring. It explicitly distinguishes from add_captions and implies it's for text burned into footage, making it distinct from siblings like erase_region or remove_text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly lists when to use: for 'remove the captions' / 'take the subtitles off' / 'get rid of the watermark' on burned-in text, and before add_captions to avoid stacking. It also states exclusions ('Cuts, timings, transcript and captions are unaffected') and mentions the project-scoped requirement. However, it doesn't explicitly say when NOT to use alternatives like remove_text or erase_region, so it's clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
erase_regionErase regionAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. TRULY REMOVE whatever is inside a rectangle — repaints those pixels and reconstructs the background, so the thing is GONE, not covered. Use it for a word, a sign, a sticker, a logo, a person's name on screen, or any object the user wants taken out. SEVERAL marks (a watermark AND a handle AND a caption bar) go in ONE call as regions=[{x,y,w,h,fill?,start?,end?}, ...]. The repaint costs time proportional to the WINDOW you erase, not the video — so pass start/end around when the mark is actually visible and the erase lands in seconds; earlier erases are never redone. x,y = TOP-LEFT corner, w,h = size, all FRACTIONS (0-1) of the SOURCE frame — get them from find_burned_text rather than estimating. fill: 'text' (default — repaints only the letter strokes and keeps the picture behind them; best for captions/handles) or 'box' (repaints the whole rectangle; use for an OBJECT or a solid graphic). start/end (SOURCE seconds) limit it to a window; omit both for the whole video. Reconstruction is excellent for thin text and for anything on a steady shot; a large object on a moving, detailed background can leave a soft patch — the result is measured and reported back to you, so check it before you promise anything.
| Name | Required | Description | Default |
|---|---|---|---|
| h | No | ||
| w | No | ||
| x | No | ||
| y | No | ||
| end | No | ||
| fill | No | ||
| start | No | ||
| regions | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description claims the tool 'TRULY REMOVE[s]' content, which is a destructive operation, but the annotations declare destructiveHint: false. This directly contradicts the annotation. Since the description contradicts the structured metadata, it scores 1 per the rules, even though the description is otherwise rich with behavioral detail (repaint, reconstruction, performance, return of project identity). The contradiction is flagged.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence serves a purpose—scoping, behavior, use cases, parameter details, performance, and limitations. It is front-loaded with the most critical information ('PROJECT-SCOPED' and 'TRULY REMOVE'). It is well-structured with clear punctuation and logical flow. It is slightly verbose but not wasteful, so a 4 rather than 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 9 parameters, no output schema, and low schema coverage, the description is remarkably complete. It covers all parameters, explains performance trade-offs, advises on coordinate sourcing, discloses limitations, and notes that the result is measured and reported back. An agent has everything needed to decide when to use it and how to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 11% (only project_id has a description), so the description must carry the burden of parameter semantics. It does so excellently: x,y,w,h are defined as top-left corner and fractions of the source frame; fill is explained with 'text' vs 'box' meanings; start/end are described as source-second windows; and the regions array is explained. It even tells the agent to get coordinates from find_burned_text. This fully compensates for the sparse schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool 'TRULY REMOVE whatever is inside a rectangle — repaints those pixels and reconstructs the background, so the thing is GONE, not covered.' It names specific use cases (word, sign, sticker, logo, person's name) and distinguishes itself from siblings like blur_region or erase_burned_text by emphasizing true removal rather than covering. This is a clear, specific verb+resource with strong differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: 'Use it for a word, a sign, a sticker, a logo, a person's name on screen, or any object the user wants taken out.' It also advises getting coordinates from find_burned_text rather than estimating, and explains that multiple marks go in one call. It mentions limitations (large objects on moving backgrounds may leave a soft patch) but does not explicitly name alternative tools or say 'do not use for X', so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
expand_toolsetExpand toolsetAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Load additional tool schemas for the NEXT reasoning step when the compact catalog does not expose a capability you need. This changes no media or EDL and is not a tool limit: request any relevant domains, then continue immediately.
| Name | Required | Description | Default |
|---|---|---|---|
| domains | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (all false), the description discloses critical behavior: it is project-scoped, acts only on the explicit project_id, returns the project identity, changes no media or EDL, and is not a tool limit. This adds valuable context about side effects and scope that annotations do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense sentence with several clauses, but it is front-loaded with the most critical scoping note. Every sentence earns its place—no filler—though a slightly more structured format (e.g., separating usage condition from side-effect disclosure) would improve readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple schema-expansion tool, the description covers scope, side effects, usage trigger, and immediate next steps. It does not specify the exact return format beyond 'project identity with its result', and does not mention error handling or what happens with invalid domains, but these are minor gaps given the tool's simplicity and the lack of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (project_id has description, domains does not). The description adds context that 'domains' are the capabilities to load, but does not explain how to select them or what each domain maps to. The enum values are in the schema, so the description partially compensates but could be more explicit about the domains parameter's meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool loads additional tool schemas for the next reasoning step when the current catalog lacks a needed capability. The verb 'load' and resource 'tool schemas' are specific, and the tool is clearly distinct from all siblings (none of which perform this function).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit condition for use: when the compact catalog does not expose a capability you need. It also instructs to 'request any relevant domains, then continue immediately', making the usage scenario concrete. No alternative tool is named, but none exists—this is a unique capability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_audioExtract audioAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Take ONLY the sound out of an uploaded VIDEO and save it as an audio file — THE answer to 'use the song from this clip', 'put this video's audio on my video', 'I want the sound but not the picture'. Users hand you songs as videos because a TikTok or Reel download is the only file they have; that is normal and it works. The clip's picture is never shown. asset_key is a [video_clip] storage_key from list_assets. Returns a new storage_key for add_music / add_sfx / add_voiceover — nothing is in the edit until you place it. Passing a clip's key DIRECTLY to those tools does the same thing in one step; call this when you want the file first (e.g. to get_audio_analysis its beats). If the clip is silent it says so — never claim a sound was added.
| Name | Required | Description | Default |
|---|---|---|---|
| asset_key | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no hints (all false), so the description carries the burden. It discloses project-scoping ('acts only on the explicit project_id and returns the project identity'), that the picture is never shown, and that silent clips are reported rather than claiming sound was added. These are valuable behavioral traits beyond the schema. It does not explicitly mention side effects like file creation, but the description implies saving an audio file, and destructiveHint=false covers safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than average but every sentence adds value: project-scoping note, purpose, examples, usage guidance, and edge-case behavior. It is front-loaded with the critical scope constraint and remains focused without redundancy. Slightly verbose but justified by the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description provides everything needed: how to obtain the asset_key, what the return value is (a new storage_key), how to use that key, when to use this tool vs. direct placement, and handling of silent clips. It fully equips the agent to call this tool correctly without additional lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema describes project_id in detail, but asset_key is only a bare string. The description compensates by stating 'asset_key is a [video_clip] storage_key from list_assets,' which is essential for correct invocation. Since schema coverage is 50%, this added meaning raises the score from baseline 3 to 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the action: 'Take ONLY the sound out of an uploaded VIDEO and save it as an audio file,' with concrete user-phrase examples ('use the song from this clip'). It clearly distinguishes from sibling tools like add_music by explaining that this tool returns a storage_key for later placement, so the agent knows exactly what this tool does and what it does not.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage guidance: 'call this when you want the file first (e.g. to get_audio_analysis its beats)' and contrasts with the alternative of passing the clip key directly to add_music/add_sfx/add_voiceover, which achieves the same in one step. It also notes that nothing enters the edit until placed, preventing misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetch_sfxFetch sfxAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Download ONE search_sfx result (by its id) into the project — returns the storage_key for add_sfx. Repeat the license line to the user when it carries an obligation.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, so the description must carry the behavioral burden. It discloses that the call is project-scoped, returns the project identity, downloads a single result, and returns a storage_key. It also notes the license handling. It does not state idempotency or side effects, but for a fetch/download operation the provided details are reasonably transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the project-scoping note. Each clause adds value: scope, operation, return value, and license instruction. No filler words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must explain the return value, which it does (storage_key for add_sfx, plus project identity). It covers the core workflow and the license obligation. It does not describe error cases or confirmation of download, but for a simple fetch the essentials are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: project_id has a descriptive note, id has none. The description clarifies that 'id' is the search_sfx result id (by its id), adding some meaning. It does not elaborate on id's format or provenance, so the description partially compensates but leaves room for more detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Download' and the resource: a search_sfx result identified by its id, scoped to a project. It also mentions the return value (storage_key for add_sfx), distinguishing it from search_sfx (searching) and add_sfx (adding), and is explicit about the project-scoping.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: after search_sfx has returned results, to fetch one into the project for later addition via add_sfx. It also gives a specific guideline about repeating the license line when there is an obligation. However, it does not explicitly state when not to use it or name alternatives beyond the implicit add_sfx dependency.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetch_urlFetch urlAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Download media from a LINK the user gave you and save it as a project asset — a video, a song, or an image. Works with direct file links (Dropbox, Drive, a CDN, a stock library) and with page links (YouTube, TikTok, Vimeo, SoundCloud). Use this whenever the user pastes a URL for something they want in the edit; never tell them to upload a file you could have fetched. The file type is detected automatically — pass as_kind only to force audio-only from a video page ('music'). The result is saved to the project but is NOT in the video until you add it with insert_media (clip/image) or add_music (audio). Fetching verifies neither ownership nor license: the returned RIGHTS CHECK must be relayed; a downloadable file is not permission to republish.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| as_kind | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond annotations. Annotations indicate mutation (readOnly=false) and non-idempotency, but the description adds critical details: it saves the asset but does not add it to the video until later, it returns a RIGHTS CHECK that must be relayed, and it verifies neither ownership nor license. Also clarifies the project_id scoping behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but efficiently organized. It leads with the scope, then the purpose, supported link types, usage rule, as_kind behavior, next steps, and rights caveat. Every sentence adds value, though it could be slightly tighter by trimming redundancy (e.g., the phrase 'download media' appears twice).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the essential operational context: what it does, what it doesn't do (not added to video), what to do next, and the rights caveat. Lacks details on return structure beyond 'project identity' and 'RIGHTS CHECK', and no error handling or rate-limit info, but these are minor for a fetch tool. The output schema is absent, so description must carry this weight, which it does adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% (only project_id has a description), but the description compensates fully. It explains what URL formats are accepted (direct links vs page links), clarifies that as_kind is optional and only for forcing audio extraction, and reinforces project_id immutability. This adds meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (download media from a LINK), the resource (URL) and the action (save as project asset). It also specifies the project scope. However, it does not explicitly differentiate from the sibling tool download_url, which could overlap in purpose. The phrase 'for something they want in the edit' narrows it to project assets, but a direct comparison is missing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance: 'Use this whenever the user pastes a URL for something they want in the edit; never tell them to upload a file you could have fetched.' It also explains when to use as_kind ('only to force audio-only from a video page') and what to do next (insert_media/add_music). This is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_burned_textFind burned textARead-onlyInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. MEASURE where text is burned into the footage — subtitle bands, watermarks, handles, on-screen labels. Reads the actual frames and returns EXACT rectangles as frame fractions, plus when each is visible. Use this INSTEAD of estimating a rectangle from look_at: an estimated box is what puts a bar next to the text instead of over it. Read-only. scope: 'captions' (wide subtitle lines whose words change), 'watermark' (a small mark identical in every frame), 'text', or 'all' (default). start/end limit the scan to a source-time window.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | ||
| scope | No | ||
| start | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals that it reads actual frames, returns exact rectangles as frame fractions, and includes visibility times. It also notes project-scoping and that the project identity is returned. Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds valuable detail about output format and scope without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph where each sentence contributes: scoping, purpose, behavioral detail, alternative usage, read-only note, and parameter explanations. No filler or redundancy; it is appropriately front-loaded with the most critical scoping constraint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, usage alternatives, behavioral expectations, and parameter semantics. It even specifies the return format (exact rectangles as frame fractions, visibility times) despite having no output schema. The only minor gap is that start/end units are not explicitly stated, but 'source-time window' strongly implies seconds, so the tool is sufficiently complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 25% schema description coverage, the description compensates by explaining the scope enum values (captions, watermark, text, all) with their meanings, describes start/end as a source-time window, and gives specific guidance for project_id (copy from list_projects/open_project/project_state, never guess from active pointer). This adds meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (measure where text is burned into footage), lists concrete examples (subtitle bands, watermarks, handles, on-screen labels), and explicitly contrasts with look_at for estimating rectangles, making the tool's purpose unambiguous and distinct from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It directly instructs 'Use this INSTEAD of estimating a rectangle from look_at' and explains the consequence of using the alternative. It also defines each scope value (captions, watermark, text, all) with behavioral distinctions, providing clear when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_footageFind footageARead-onlyInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Find REAL footage of a NAMED topic on the web — the b-roll move: the speaker mentions Elon Musk, the cut shows his rocket. Query the concrete THING ('spacex starship launch', 'tesla factory'), not a mood — search_stock covers generic visuals ('busy city'), THIS covers named people, companies, products, events. Returns candidate links best-guess first; pick real footage of the subject (short clips), then fetch_url(url, as_kind='clip'), look_at_asset for the right seconds, and a cutaway or insert at the mention. Tell the user what footage you used (title + channel).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds valuable behavioral context beyond annotations: the call is project-scoped (acts only on explicit project_id), returns project identity with the result, and returns candidate links 'best-guess first'. This enriches the agent's understanding of the tool's scope and output ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the most critical constraint (project-scoped), then moves to the core purpose, usage pattern, and output handling. Each sentence earns its place: it differentiates from siblings, gives concrete query guidance, and specifies the follow-up actions. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a search tool with specific usage pattern), the annotations cover read-only safety, and there is no output schema, the description is remarkably complete. It explains what it returns (candidate links best-guess first), the intended workflow (fetch_url, look_at_asset, cutaway), how to handle the results, and what to tell the user. Nothing essential is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50% (query has no schema description), but the description fully compensates by explaining that query must be a concrete named thing (e.g., 'spacex starship launch') and not a mood, with explicit examples. It also reinforces project_id's role as an immutable scope, which aligns with the schema's description. The description adds meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('find'), a resource ('real footage of a NAMED topic on the web'), and the project-scoped nature. It explicitly contrasts with search_stock, which covers generic visuals, so an agent can distinguish this from siblings without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit when-to-use vs when-not-to-use guidance: 'search_stock covers generic visuals... THIS covers named people, companies, products, events.' It also outlines the downstream workflow (fetch_url, look_at_asset, cutaway) and how to report usage, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_silencesFind silencesARead-onlyInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Silences of at least min_seconds, with midpoints and surrounding words — cut points should snap to these midpoints or word boundaries.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| min_seconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds behavioral context: it returns the project identity with the result and notes that cut points should snap to midpoints/word boundaries. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the most critical scope constraint (PROJECT-SCOPED), and every phrase earns its place. It's efficient and immediately actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only find operation with no output schema, the description covers the key aspects: scope, parameter semantics, and the expected result behavior (snapping cut points). It doesn't detail the output format, but given the tool's simplicity and the presence of annotations, this is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: only project_id has a description. The description explicitly explains min_seconds ('Silences of at least min_seconds'), adding meaning beyond the bare type in the schema. It partially compensates for the missing schema description, though it could be more detailed (e.g., units).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('find') and resource ('silences' within a project), and explicitly differentiates the scope (project-scoped) and result (returns project identity and silences). This distinguishes it from siblings like cut_silences, which perform a mutating action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description highlights that it operates only on an explicit project_id, implying it should be used when a project is known and silences need to be identified. It doesn't explicitly mention alternatives, but the existence of cut_silences suggests a natural separation, so the usage context is implied rather than fully stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_songFind songARead-onlyInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Find web links for a SPECIFIC song the user NAMED ('add Blinding Lights by The Weeknd') — the case a generic catalog cannot serve, because named commercial tracks need exact discovery. Returns candidate links best-guess first; pick the real thing (artist's own/'- Topic' channel or 'Official Audio'; no lyric/sped-up/loop/cover versions unless asked; never a full album/mix — one track only), then fetch_url(url, as_kind='music') downloads the pick. Always tell the user which version you grabbed. Search can verify the likely recording, NOT a usage license; a public/downloadable upload does not grant republication rights, so disclose that. For a genre/vibe request ask for a user-supplied file or link; a trending platform sound can only be provided by the user.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint=true), the description discloses project-scoped behavior, returns project identity with result, candidate link ordering, version-selection criteria (artist's own/'- Topic' channel, no covers), and the need to disclose licensing limitations. This is rich context not in annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence adds value: scoping, purpose, selection rules, follow-up steps, and caveats. It is front-loaded with PROJECT-SCOPED and then the core purpose. Some redundancy exists but it remains organized and purposeful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains that it returns candidate links best-guess first and describes the pick criteria, but it does not specify the exact structure of the result (e.g., fields or error handling). Overall it is quite complete for agent use, but a little more on return format would make it fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers project_id well with a detailed description, but query has no schema description (50% coverage). The description compensates by explaining query is the named song, adding meaning beyond the bare schema. However, it could be more explicit about query format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool finds web links for a specific named song, with an example ('add Blinding Lights by The Weeknd'), and explicitly contrasts it with generic catalog scenarios. This distinguishes it from siblings like add_music or fetch_url.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use it (named songs), when not to (genre/vibe requests should ask for user-supplied file/link), and what to do after (fetch_url with as_kind='music'). It also warns about licensing verification, giving clear decision guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_visual_momentsFind visual momentsARead-onlyInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. READ: focused semantic search across the COMPLETE indexed main-video filmstrip. Use once for a long source when requested highlights are visual rather than transcript-searchable (gameplay saves/fails, a gesture, a product appearing, action moments). query names one concrete visible event. It returns coarse SOURCE timestamps after scanning all tiles in parallel; verify useful candidates with ONE batched look_at call, then WRITE. Never replace it with serial whole-video look_at probing.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | ||
| query | Yes | ||
| start | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| max_results | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. The description adds behavioral detail: it 'returns the project identity with its result', 'scans all tiles in parallel', and produces 'coarse SOURCE timestamps' – useful expectations not implied by the schema. It also frames the query as naming 'one concrete visible event', clarifying the semantic requirement. No contradiction with annotations; the description enriches beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but front-loaded with key markers 'PROJECT-SCOPED' and 'READ'. Every sentence adds value: scope, behavior, usage, output, and verification steps. It is slightly long but not wasteful; the use of caps and semicolons aids scanning. It earns a high score for structure and efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters, no output schema, and no nested objects, the description covers purpose, usage, output format (coarse timestamps), and a verification workflow. It does not specify how start/end or max_results affect results, nor error handling, but the essential operational details are present. The absence of an output schema is mitigated by the mention of 'returns the project identity with its result' and 'coarse SOURCE timestamps'. Overall, it is sufficiently complete for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20% (only project_id has a description). The description compensates for query by stating it 'names one concrete visible event', and for project_id by emphasizing explicit scope. However, start, end, and max_results receive no semantic clarification in the description, and the schema only provides type and numeric bounds for max_results. Given the low coverage, the description partially addresses parameters but leaves significant gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs 'focused semantic search across the COMPLETE indexed main-video filmstrip' and returns 'coarse SOURCE timestamps'. It distinguishes itself from transcript-based search and from sibling tools like look_at by explicitly contrasting with 'serial whole-video look_at probing'. The purpose is unambiguous and tied to a specific resource (the indexed filmstrip).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use conditions: 'Use once for a long source when requested highlights are visual rather than transcript-searchable' with concrete examples (gameplay saves/fails, gestures, product appearances). It also provides an exclusion: 'Never replace it with serial whole-video look_at probing' and prescribes a follow-up verification step with 'ONE batched look_at call'. This fully guides an agent on when and how to use it vs. alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_audio_analysisGet audio analysisARead-onlyInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. READ: measured musical/energy analysis of the source audio (cached after the first call): tempo (BPM + confidence — below 0.5 the pulse is unreliable and beat_align_cuts refuses), beat count plus the first up-to-eight detected beat timestamps, where the loudest/quietest sections and the biggest energy rise sit, and the most vocally STRESSED words with timestamps. Times are SOURCE seconds. Call before beat_align_cuts / punch_in_on_emphasis, or to answer 'what's the tempo'. Pass asset_key (an uploaded or fetched music file) to analyze that instead — e.g. to find the drop for add_music offset_s.
| Name | Required | Description | Default |
|---|---|---|---|
| asset_key | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds substantial behavioral context: it's cached after the first call, times are in SOURCE seconds, and it mentions that a confidence below 0.5 makes the pulse unreliable and causes beat_align_cuts to refuse. This goes well beyond the annotations and helps the agent anticipate side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence earns its place. The description is front-loaded with 'PROJECT-SCOPED' and 'READ', then delivers precise details without fluff. It's dense but not verbose, and the structure flows logically from purpose to outputs to usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description enumerates all key return values (tempo with confidence, beat count, timestamps, energy sections, stressed words) and ties them to usage. It also addresses the optional asset_key scenario. For a tool with this complexity, nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 50% schema coverage, the description compensates thoroughly. It explains project_id as an immutable scope and instructs to copy it from specific tools, explicitly stating the active-project pointer is never used. For asset_key, it clarifies it's an uploaded or fetched music file and gives a concrete use case. This adds significant meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: a read-only call that returns musical/energy analysis of the source audio, with specific outputs (tempo, beats, energy sections, stressed words). It differentiates itself by noting it is project-scoped and references sibling tools (beat_align_cuts, punch_in_on_emphasis) and explains how it relates to them. It also mentions the alternative use via asset_key.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'Call before beat_align_cuts / punch_in_on_emphasis, or to answer "what's the tempo".' It also explains the asset_key alternative for analyzing a different asset, with an example. This gives clear context for when this tool is appropriate versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_editorial_mapGet editorial mapARead-onlyInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. READ: compact cross-modal SOURCE timeline joining each sentence (or shot when there is no speech) to overlapping shot changes, relative energy/trend, beats, vocal stress, pauses and measured face/source-text/dense-UI evidence. Use this instead of separately re-reading transcript + shots + audio analysis when directing a substantial reel, podcast, montage or B-roll/SFX/motion treatment. It aligns evidence but does not recognize the full picture or prescribe effects: inspect filmstrips/look_at before visual choices. Pass asset_key for an indexed uploaded clip. focus can be all, story, visual, energy, faces, ui, quiet or peaks.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | ||
| focus | No | ||
| limit | No | ||
| start | No | ||
| asset_key | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the read-only nature is known. The description adds valuable context: it is project-scoped, requires an explicit project_id (never guesses), and explicitly says it does not prescribe effects, directing the agent to use look_at for visual decisions. This goes beyond annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but efficient, with key info front-loaded (project-scoped, READ, cross-modal timeline). Each sentence earns its place: scope, content, usage guidance, caveat, and parameter notes. It is longer than average but warranted given the tool's complexity. No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description thoroughly explains the output content (sentences/shots, shot changes, energy/trend, beats, stress, pauses, face/UI evidence) and clarifies what the tool does not do (prescribe effects). It also notes the need for look_at for visual decisions and explains asset_key. With no output schema, this description carries the burden well. The only gap is the lack of detail on start/end/limit parameters, but those are likely self-explanatory time and count ranges.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 17% (only project_id has a description). The description compensates partially: it explains that asset_key is for an indexed uploaded clip and enumerates focus options ('focus can be all, story, visual, energy, faces, ui, quiet or peaks'). However, it does not explain start, end, or limit parameters, which are likely time range and result count. The description adds value but does not fully compensate for the low coverage of all parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: it returns a project-scoped, compact cross-modal SOURCE timeline with detailed evidence (sentences/shots, shot changes, energy, beats, stress, pauses, face/UI evidence). It explicitly differentiates from reading transcript, shots, and audio analysis separately, and distinguishes itself from sibling tools like get_shots, get_transcript, and get_audio_analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance: 'Use this instead of separately re-reading transcript + shots + audio analysis when directing a substantial reel, podcast, montage or B-roll/SFX/motion treatment.' It also states limitations: 'It aligns evidence but does not recognize the full picture or prescribe effects: inspect filmstrips/look_at before visual choices.' This gives the agent clear conditions for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_edlRead the edit decision listARead-onlyInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Current EDL JSON and version. Large timelines return a compact index instead of invalid truncated JSON. Request top-level sections such as ['captions','overlays'] and paginate list sections with offset/limit. Natural aliases are accepted without a retry: cuts/segments -> keep, text -> texts, zooms/transitions/grades/fades -> effects, audio -> all audio sections, and program/overview/summary -> the compact program overview. compact=true always returns counts, caption state and duplicate assets.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| compact | No | ||
| sections | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds meaningful behavioral details: large timelines return a compact index instead of truncated JSON, aliases are accepted without retry, and compact=true returns counts, caption state, and duplicate assets. This goes beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-structured, starting with the scoping constraint and then covering return format, large-timeline behavior, and parameter usage. Each sentence adds value without redundancy, though it could be slightly tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description explains what is returned (current EDL JSON, version, compact index) and how to request specific sections. It covers all five parameters effectively, and for a read-only tool with clear annotations, the information is sufficient for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 20%, so the description carries the burden. It explains how to use sections (with examples), paginate with offset/limit, and the meaning of compact. It also documents aliases for section names, which is not in the schema. This compensates well for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads the edit decision list, returns current EDL JSON and version, and is project-scoped. It explicitly names the resource and the verb, and the scope constraint is front-loaded. It distinguishes itself as a read-only EDL accessor, even without naming a specific sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (to read the EDL) but does not explicitly contrast it with sibling tools like get_editorial_map or get_shots. It provides usage context like pagination and aliases, but no direct guidance on choosing this over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_kept_transcriptGet kept transcriptARead-onlyInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. The transcript the CURRENT edit actually keeps, in program time with matching source spans, plus automatic repeated-phrase detection. ALWAYS call this after cutting repetitions or tightening — it is how you verify nothing repeated survived.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and destructiveHint annotations, the description discloses project-scoping behavior ('acts only on the explicit project_id', 'active-project pointer is never used to guess') and output characteristics (program time, source spans, repeated-phrase detection). This adds meaningful behavioral context beyond what annotations alone provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the key scoping constraint, and the usage rule is clearly stated at the end. The first sentence is slightly awkward and somewhat redundant with the second, but overall every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, but the description does summarize what the result contains: the kept transcript, program time, matching source spans, and repeated-phrase detection. Combined with the one required parameter and read-only annotations, this is sufficient for an agent to invoke the tool and understand the purpose of the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the project_id schema description is already detailed, including where to copy the id and that the active-project pointer is not used. The tool description mostly repeats the scoping concept without adding new parameter-level detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource ('the transcript the CURRENT edit actually keeps') and adds differentiating detail (program time, matching source spans, repeated-phrase detection). It is clear it returns the kept transcript rather than a general transcript, though the phrase 'returns the project identity with its result' is somewhat confusing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit when-to-use rule: 'ALWAYS call this after cutting repetitions or tightening — it is how you verify nothing repeated survived.' This is clear context for the intended use case, though it does not name alternatives or explicitly state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shotsGet shotsBRead-onlyInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Shot boundaries (scene changes — where transitions may land) for a time range. The PICTURE itself is in your filmstrips and look_at.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | ||
| start | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description is not required to restate those. It adds value by specifying project scoping ('acts only on the explicit project_id'), that it returns the project identity, and that it does not return pictures. This goes beyond annotations and helps the agent understand the tool's boundaries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences with no filler. It front-loads the critical project-scoping constraint and keeps the reader's attention on the key facts. Each sentence adds distinct information, making it efficient and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with three parameters and no output schema, the description leaves gaps: it does not specify the return format (e.g., array of timestamps), whether start and end are inclusive, or what happens if they are omitted. It also does not mention any limits or pagination. These are important for an agent to call it correctly, especially without an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (only project_id has a description). The description mentions 'for a time range' but does not clarify the units, format, or optionality of start and end. It adds no detail about these parameters beyond the schema, so it fails to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns 'Shot boundaries (scene changes — where transitions may land) for a time range', and it is project-scoped. It also distinguishes itself from siblings by noting it returns the project identity and that the actual picture is in filmstrips and look_at, which helps an agent know this is not the tool for frames.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a hint about when not to use it ('The PICTURE itself is in your filmstrips and look_at'), implying look_at is for pictures. However, it does not explicitly name alternative tools for other purposes, nor does it state clear conditions for when to choose this over get_editorial_map or get_video_info. Usage 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.
get_transcriptGet transcriptARead-onlyInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Sentence-level SOURCE transcript with timestamps for a time range (source seconds). For word-exact timing use get_words; for what the current EDIT keeps, use get_kept_transcript. Pass asset_key to read an UPLOADED clip's or song's own transcript instead (clip seconds).
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | ||
| start | No | ||
| asset_key | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context: it clarifies that the tool only acts on the explicit project_id and never guesses the active project, and it distinguishes between source seconds and clip seconds. However, it does not disclose potential edge cases like missing transcripts or pagination, though these are minor given the read-only nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the 'PROJECT-SCOPED' warning, then covers the core function, alternatives, and special case in a few sentences. Every sentence adds value, with no redundancy or filler. It is well-structured for quick parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the four parameters and no output schema, the description covers the essential aspects: what it returns, the time-range semantics, the alternative tools, and the asset_key option. It does not describe the exact return structure or error behavior, but for a read-only transcript fetcher, this is sufficient. The presence of sibling tools with clear distinctions further rounds out the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema coverage at only 25% (only project_id has a schema description), the tool description must compensate. It does: it explains that project_id is required and immutable, start/end define a time range in source seconds, and asset_key switches to an uploaded clip's transcript. This adds meaning beyond the bare schema, though it could be more explicit about start/end format (e.g., inclusive boundaries).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: retrieving sentence-level SOURCE transcript with timestamps for a time range in source seconds. It is specific about the resource (transcript), the granularity (sentence-level), and the scope (project-scoped with explicit project_id). It also explicitly differentiates from get_words and get_kept_transcript, making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: it tells when to use get_words (word-exact timing) and get_kept_transcript (current EDIT), and explains when to pass asset_key (for uploaded clips/songs). It also emphasizes project-scoped behavior, implying the tool should only be used when project_id is available. This is excellent routing information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_video_infoGet video infoARead-onlyInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Video metadata plus index and EDL summary. Use only when the supplied project state does not already answer the metadata question.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds scoping behavior ('acts only on the explicit project_id') and discloses that the result includes the project identity. This is meaningful context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the critical scoping constraint ('PROJECT-SCOPED') and then the return summary. Every clause earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one fully documented parameter and annotations covering safety, the description is complete: it states scope, return content, and usage condition. It doesn't detail the exact output structure, but there is no output schema, and the tool is simple enough that this is not a critical gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the project_id parameter is already well-documented in the schema (immutable scope, copy from list_projects/open_project/project_state, never guessed). The tool description adds no additional parameter semantics beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('get'), a resource ('video info'), and enumerates exactly what is returned ('Video metadata plus index and EDL summary'), and adds the project-scoping constraint and project identity return. This is clearly distinguishable from sibling get_* tools by the explicit scope and return content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit when-to-use condition: 'Use only when the supplied project state does not already answer the metadata question.' It implies a when-not (when project_state already answers) but does not name specific alternative tools. Still, the guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wordsGet wordsARead-onlyInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Word-level timestamps [{t0-t1 word}] for any source-time range (the response caps at 400 words and says how to page for the rest). THE source of truth for cut points inside a sentence — never estimate word timing from sentence ranges.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | ||
| start | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint=true and destructiveHint=false. The description adds valuable context: the 400-word cap, pagination hint, and the fact that the result includes the project identity. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, front-loaded with scope and key constraints. Every clause adds information—no filler or repetition. The emphasis via uppercase is purposeful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with 3 params and no output schema, the description covers scope, cap, pagination existence, and the 'source of truth' role. Missing details like time units and pagination mechanics are minor for an agent selecting the tool, and the description gives enough to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% (only project_id is described). The description implies start and end define a 'source-time range' and that the response caps at 400 words, but it doesn't specify units, whether they're required for pagination, or their exact semantics. It partially compensates but leaves gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('get'), resource ('words'), and scope ('project-scoped'), and clarifies it returns word-level timestamps with time ranges. It explicitly distinguishes itself from sentence-based timing by declaring itself 'THE source of truth for cut points inside a sentence', making its unique purpose clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear directive to use this tool for word-level timing and never estimate from sentence ranges, which is an actionable exclusion. However, it doesn't name specific sibling tools (e.g., get_transcript) as alternatives, so the guidance is implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
index_statusCheck video analysis progressBRead-onlyInspect
Progress of an explicit project's video analysis. The editing tools cannot read a transcript, shots or silences until this reaches 'done'.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description doesn't need to cover safety. It adds the key behavioral context that this tool's result gates other operations, and that there's a 'done' state. However, it doesn't describe the return format or whether it's a pollable status, leaving some behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at two sentences, but the first sentence is a fragment ('Progress of an explicit project's video analysis.') which could be more grammatically complete. The key gating information is front-loaded, and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (single integer param) and presence of readOnly annotations, the description covers the essential purpose and gating. However, it doesn't specify what the progress output looks like (e.g., a status string, percentage), which an agent would need to interpret the result. This gap is notable since there's no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain project_id. It refers to 'explicit project' but never explicitly states that project_id is the identifier or how to use it. The description adds minimal value beyond the schema's type, leaving the parameter under-documented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks the progress of a project's video analysis, which is a specific verb-resource combination. It also differentiates from siblings by explaining that editing tools depend on this status reaching 'done', so it's not about reading content but checking readiness.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives strong contextual usage guidance: use this tool to check if analysis is complete before attempting to use editing tools that require transcript, shots, or silences. It doesn't explicitly name alternatives like get_transcript or wait_for_job, but the gating condition implies when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
insert_mediaInsert mediaAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Splice an uploaded video clip or image INTO the edit at ANY position in the FINAL edited video — mid-take positions split the take cleanly at a word edge, so 'in the middle of the talk' works exactly. NEVER splice a clip the user sent as a STYLE REFERENCE ('watch this', 'make it like this', 'use this as reference', 'recreate this', a YouTube they asked you to study) — look_at_asset it, extract_audio / add_music if they want THAT song, and rebuild the look from the MAIN gameplay/footage. If the studio already placed a reference on the timeline, remove_insert it. Call list_assets(kind='clip') or kind='image' first and pass the exact storage_key. duration_s: how long the insert plays (image default 3.0s; a video defaults to its available length). clip_start_s: where in the source clip the window starts — use look_at_asset to pick the right moment. motion: 'zoom_in', 'zoom_out', 'pan_left' or 'pan_right' gives either a still or a video insert its own slow local camera move without changing timing or audio. Use it deliberately to direct attention, not on every shot. Inserted media is NOT transcribed — captions cover the main footage only. fit defaults to 'auto': the WHOLE asset is preserved (black bars when the program frame is already pad; a blurred extension otherwise) so a portrait card cannot be center-cropped into an empty middle band. Pass fit='pad' for solid black; never use blur when the user asked for black. fit='crop' fills edge-to-edge. Assets may be reused whenever the edit benefits from repetition or a different source window.
| Name | Required | Description | Default |
|---|---|---|---|
| fit | No | ||
| motion | No | ||
| asset_key | Yes | ||
| duration_s | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| at_output_s | Yes | ||
| clip_start_s | No | ||
| motion_motif | No | Active Blueprint motion motif id this event executes; never 'hold'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false (non-readonly, non-open-world, non-idempotent, non-destructive), so the description carries the full burden of behavioral disclosure. It delivers: project-scoped behavior, splitting at word edges, no transcription of inserted media, fit behavior with black bars/blur, motion effects, and defaults. It even clarifies edge cases like portrait cards and blur-vs-pad preferences. This is comprehensive behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but each sentence adds substantive value, from scoping to usage rules to parameter semantics. It is front-loaded with the critical project-scoping warning. It could be tightened slightly (e.g., merging some fit explanations), but the density is justified by the tool's complexity and the need to avoid misuse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, no output schema) and the high-risk misuse cases (style references, fit options), the description is remarkably complete. It covers prerequisites (list_assets), behavioral nuances (no transcription, split at word edge), parameter defaults, and explicit exclusions. An agent could confidently invoke this tool without further documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 25% schema description coverage, the description must explain the six undocumented parameters. It does so thoroughly: duration_s (defaults for image vs video), clip_start_s (use look_at_asset), motion (types and effect), fit (auto/pad/crop and blur behavior), and it implicitly clarifies asset_key and at_output_s through the overall description. This compensates fully for the schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: splicing an uploaded video clip or image into the edit at any position, with specific details like splitting at word edges. It distinguishes itself from siblings by naming alternatives (look_at_asset, extract_audio, remove_insert) and by explicitly scoping to the project_id. This makes the purpose unambiguous and differentiates it from the many other add/insert tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use and when-not-to-use guidance. It warns against splicing style-reference clips, directs to alternatives (look_at_asset, extract_audio, remove_insert), and instructs to call list_assets first. This is far beyond typical usage guidance and leaves no ambiguity about correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
justify_verification_findingsJustify verification findingsAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Resolve a genuine verification false positive only after direct pixel/audio evidence proves it. The finding and justification stay in the immutable EDL version's durable record. Missing previews, caption proof, corrupt glyphs and invalid music timing require repair and cannot be justified.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| finding_ids | Yes | ||
| evidence_ids | No | ||
| justification | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no behavioral hints (all false), so the description carries the full burden. It discloses that the tool modifies state by persisting the finding and justification in the immutable EDL version's durable record, and that it is project-scoped. It also states the return value (project identity with its result). This is strong disclosure, though it could be more explicit about the irreversibility of the action, which is implied by 'durable record.'
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but efficient, front-loading the critical project scope and then layering conditions, effects, and exclusions. Every sentence adds unique information with no fluff or redundancy. The structure flows logically from scope to usage to persistence to exclusions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description explains the return value ('returns the project identity with its result'). It also covers the key behavioral context: project scoping, persistence, and the requirement for direct evidence. It doesn't mention potential error conditions or side effects on other projects, but the project-scoped statement implies isolation. Overall, it gives an agent enough to correctly decide when to call and what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%, so the description must compensate. It emphasizes that project_id must be explicit and copied from list_projects/open_project/project_state, which is also in the schema. It does not explain the semantics of finding_ids or evidence_ids, and it does not clarify how justification should be structured beyond the schema's minLength. The description adds minimal value beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: it justifies verification findings for a specific project. It explicitly says it acts only on the explicit project_id and returns the project identity with the result. It also distinguishes itself by stating that certain conditions (missing previews, caption proof, corrupt glyphs, invalid music timing) cannot be justified, which differentiates it from repair-oriented siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: 'Resolve a genuine verification false positive only after direct pixel/audio evidence proves it.' It also provides clear when-not-to-use exclusions: 'Missing previews, caption proof, corrupt glyphs and invalid music timing require repair and cannot be justified.' This effectively routes the agent to the correct action without ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keep_segmentsKeep segmentsAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. REPLACE the whole keep list: the parts of the SOURCE video that survive, [[start,end],...] in seconds. Everything else is cut. Use only for wholesale restructuring, always after get_edl — for local fixes prefer cut_range/restore_range. snap_to_words:true moves boundaries outward to word edges so no word is clipped.
| Name | Required | Description | Default |
|---|---|---|---|
| segments | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| snap_to_words | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description clearly discloses the mutating behavior (REPLACE, everything else is cut), project-scoping, the returned project identity, and the boundary-moving semantics of snap_to_words. Since annotations provide no positive safety signals, the description carries the disclosure burden and meets it fully.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four dense sentences, each earning its place: scope/return, core replace semantics, when-to-use/alternatives, and the optional parameter behavior. Critical warnings are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating tool with no output schema and no helpful annotations, the description covers prerequisites, exact input semantics, scope constraint, return expectation, and disambiguation from siblings. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only project_id has a schema description, but the prose defines segments fully and snap_to_words semantically. The project_id schema text is itself detailed and reinforces the explicit-scope rule.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise action: REPLACE the whole keep list of source-video survivals as [[start,end],...] in seconds. This distinguishes it from cut_range/restore_range and aligns with the name without tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use only for wholesale restructuring, always after get_edl — for local fixes prefer cut_range/restore_range.' This gives both a precondition and named alternatives, so an agent knows when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_assetsList assetsARead-onlyInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Every file in this project — used on the timeline AND unused uploads sitting in the library. kind='music' lists audio (use its storage_key with add_music or add_voiceover); 'clip' lists uploaded video clips and 'image' reference images (use with insert_media); 'render' past renders; 'all' everything. UNUSED files are marked AVAILABLE and can be placed without asking the user to re-upload.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds behavioral detail beyond that: it acts only on the explicit project_id (never the active pointer), returns the project identity with its result, and marks unused files as AVAILABLE. This enriches the agent's understanding of side effects and scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense yet well-structured. It front-loads the critical scope constraint (PROJECT-SCOPED) and then proceeds logically: what is returned, kind meanings, and the notable unused-file behavior. No sentence is wasted; all information is actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description provides necessary context: it returns project identity and marks unused files as AVAILABLE, and it explains each kind. It doesn't describe the full asset record structure, but for a listing tool with simple parameters and read-only annotations, it gives sufficient detail for correct invocation and interpretation of results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: project_id has a detailed description, but kind has none. The description compensates by explaining every valid value of kind ('music', 'clip', 'image', 'render', 'all') and their meaning, plus how to use the results. This adds significant semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool lists all assets in a project, scoped to a specific project_id. It differentiates from siblings by explaining what each kind returns (music, clip, image, render, all) and how to use those results with specific tools (add_music, add_voiceover, insert_media). This is a precise, resource-specific purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states when to use this tool: for project-scoped asset listing including unused uploads. It gives explicit usage guidance by mapping each kind to its downstream consumer tool and notes that unused files are marked AVAILABLE so they can be placed without re-upload, which is a practical usage hint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_projectsList this account's projectsARead-onlyInspect
List this account's video projects, newest first, with whether each has a video, its project kind, its podcast-shorts status, and which parent generated a short. The navigation-pointer label is informational only; every project-targeting call still requires project_id. Start here.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds context about the returned fields and ordering, and the note about navigation-pointer vs project_id is a behavioral nuance not captured by annotations. However, it does not mention potential result size limits or pagination, which is a minor gap for a list operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero waste. The main action and ordering are front-loaded, and the critical note about navigation-pointer and project_id is delivered concisely. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with no parameters and no output schema, the description provides the essential details: what is listed, the fields, ordering, and the relationship to project_id usage. It could mention whether there is a limit on the number of projects returned or how to handle pagination, but given the tool's simplicity and the annotations covering safety, it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so schema coverage is trivially 100% and there is nothing to explain about parameters. The description focuses on output, which is not parameter semantics. The baseline for 0 params is 4, and the description adds value by clarifying the output fields, but that's beyond parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists video projects with specific attributes (has video, kind, podcast-shorts status, parent) and orders them newest first. It distinguishes itself as the starting point for project discovery, which is a clear purpose that differentiates it from the many sibling tools that operate on a single project.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Start here' explicitly instructs when to use this tool. It also clarifies that the navigation-pointer label is informational only and that other calls require project_id, providing guidance on how to use this tool's output to proceed with other tools. This is explicit usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
look_atLook at frames of the videoARead-onlyInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. YOUR OWN EYES on the footage. Pass times=[...] (1-8 exact source seconds of the MAIN video) and the frames at those moments come back as ONE timestamp-labeled picture in your own context — you see the footage yourself and judge it directly (composition, where the subject is, clear space for text, what a moment looks like). Every frame carries a faint tenths grid ((0,0) = top-left): READ aim points, cx/cy and rects off its labels instead of estimating. start/end still work as a range sampled evenly. OR pass output_times=[...] to see the ASSEMBLED PROGRAM instead: output seconds of the current edit, resolved through the EDL — kept footage AND spliced inserts both sample correctly, each tile labeled with its scene number, in TRUE output geometry (canvas fit and any active zoom applied — so you can SEE an aimed zoom's framing before rendering) — THE way to check what the viewer sees at a moment of the EDITED video ('the second scene') without rendering. Look as often as you need — there is no cap on looking; before aiming anything and before disputing what a user saw, look. Batch the moments you need into ONE call with several times rather than a string of separate calls. The filmstrips already gave you the whole video at a glance — use look_at for the CLOSER look: exact framing, small text, a precise instant. The transcript is ASR and can be wrong; inspect confidence and sentence context using get_words / the transcript — never look to lip-read or guess a word. IMPORTANT: the assembled geometry view omits burn-ins. Set rendered=true after render_preview to inspect the CURRENT preview's real pixels—including captions, text, overlays and grade. In rendered mode output_times (or times) are output seconds and any useful set can be batched for caption QA.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | ||
| start | No | ||
| times | No | ||
| question | No | ||
| rendered | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| output_times | No | ||
| native_resolution | No | With rendered=true, preserve image width up to 1920px; request one time for full-detail approval pixels without another encode. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. The description adds rich behavioral context beyond annotations: output is a single timestamp-labeled picture with a tenths grid, both source and assembled modes sample correctly, rendered mode omits burn-ins unless rendered=true, and there is no call cap. It also explains the grid for reading aim points, which is non-obvious and valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very long and dense, with many clauses and parentheticals. It is front-loaded with the scoping warning and main usage, but overall it is verbose and could be condensed without losing critical information. Some sentences repeat or elaborate beyond necessity, making it harder to scan quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (two modes, rendered behavior, grid), the description covers most operational details. However, it does not clarify what happens if both times and output_times are provided, nor does it explain the 'question' parameter's purpose. With no output schema, these omissions are noticeable, but the description is still fairly complete for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25% (2 of 8 params described). The description compensates well for times, output_times, start/end, and rendered by explaining their semantics and mode differences. However, the 'question' parameter is not explained anywhere, and native_resolution is only in the schema. This leaves a minor gap but the core parameters are well-covered.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool does: it returns frames from the main video at specified times as a timestamp-labeled picture for the agent to inspect directly. It distinguishes itself from siblings by contrasting with 'filmstrips' (whole-video overview) and noting it is for closer inspection. The two modes (times vs output_times) are clearly explained, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance: 'before aiming anything and before disputing what a user saw, look.' It also states when not to use it for lip-reading or guessing words, directing to get_words/transcript instead. It differentiates from filmstrips and advises batching times into one call. This is comprehensive and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
look_at_assetLook at frames of an uploaded assetARead-onlyInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. YOUR OWN EYES on an UPLOADED clip or image, or a finished RENDER (storage_key from list_assets; kind='render' lists past previews/finals). Same contract as look_at: pass times=[...] (seconds into the clip) and the frames arrive as one labeled picture you read yourself, with the same tenths grid for reading positions. THE way to choose which moment of a long clip to splice in — one call over the whole clip, then insert_media with clip_start_s at the moment you saw. On a RENDER it is how you CHECK YOUR OWN WORK at exact moments — narrow times sample frame-accurately, so use it to verify a transition junction or an effect the user questions before claiming it is fine. For video clips it also returns a cached, measured temporal profile (static/frozen share, motion intensity and abrupt changes). This is sparse measurement—not continuous playback—and remains available on later turns.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | ||
| start | No | ||
| times | No | ||
| question | No | ||
| asset_key | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| native_resolution | No | Preserve image width up to 1920px; one requested time avoids contact-sheet downscaling. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the operation is sparse measurement, not continuous playback, returns a cached temporal profile, and remains available later. Annotations already mark readOnlyHint=true, and the description adds context about what is returned (frames, project identity, temporal profile) without contradicting annotations. It does not mention potential errors or limits, but overall it is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long and uses heavy capitalization for emphasis, which can be noisy. It front-loads key info about project scoping and the core action, but many sentences could be trimmed without losing meaning. It is organized but not concise, earning a mid score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, no output schema), the description covers purpose, usage, and some behavior, but leaves gaps: it does not explain the format of 'one labeled picture' beyond a grid, the structure of the temporal profile, or the meaning of start/end and question parameters. It is incomplete for an agent to call it correctly without further inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 29% (only project_id and native_resolution have descriptions). The description explains the 'times' parameter conceptually ('pass times=[...]') but does not clarify start, end, question, or asset_key beyond what the schema gives. It adds some meaning for times but fails to fully compensate for the low schema coverage, leaving several parameters ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to view frames of an uploaded asset (clip/image or render) for selecting splice points or verifying work. It differentiates itself from look_at by being asset-scoped and mentions the same contract, which helps distinguish it from that sibling. However, the heavy use of emphasized phrases and references to 'same contract as look_at' may slightly reduce clarity for an agent unfamiliar with look_at.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit usage scenarios: choosing a moment to splice and checking renders at exact times. It also implies when not to use (not continuous playback) and references list_assets for obtaining storage_key. It does not explicitly name an alternative tool to use instead, but the context is strong enough for an agent to infer appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_shortsBuild podcast shorts from explicit story arcsAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Scout this LONG podcast/video for multiple complete story arcs and create LOCKED child projects. Valmera's internal agent may let the background scout choose the arcs. MCP callers MUST do the editorial selection themselves: read the full transcript, then pass clips with explicit source ranges and useful story context. The pipeline only seeds the selected source windows; it does not choose captions, framing, B-roll, music, effects or render a creative edit. Studio users explicitly press Edit on a card to boot a fresh editor. MCP callers open each child and perform the edits directly. It returns the scouting job ID; poll with wait_for_job or shorts_status. count bounds only Valmera's legacy one-call auto-scout. An explicit clips array keeps every valid non-overlapping story arc; total creation is naturally bounded by source duration, not an editorial quota. style_note is reference context for the eventual child editor, not a hard-coded recipe.
| Name | Required | Description | Default |
|---|---|---|---|
| clips | Yes | Caller-authored story arcs. Required over MCP so the connected model chooses the shorts itself. | |
| count | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| style_note | No | Optional audience or reference context to preserve for the eventual editor. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes far beyond the annotations: it explains that the pipeline only seeds source windows, does not choose captions/effects, returns a job ID, and bounds creation by source duration. It explicitly states what it does NOT do, which is critical for a complex tool. No contradiction with annotations (readOnlyHint=false aligns with creating projects).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long (a single dense paragraph) but every sentence carries distinct information, and the most critical scoping and responsibility details are front-loaded. It could be broken into sections for readability, but it is not redundant or padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity and lack of an output schema, the description covers the return value (job ID), how to poll for completion, caller responsibilities, limitations, and parameter nuances. An agent has everything needed to invoke the tool correctly and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Even though schema coverage is 75%, the description adds substantial meaning to all four parameters: it clarifies that count only bounds the legacy auto-scout, that clips must be non-overlapping and caller-authored, that project_id is immutable and copied from other tools, and that style_note is reference context not a recipe. This goes beyond the schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (create locked child projects from explicit story arcs) on a specific resource (podcast/video), and clearly distinguishes from sibling tools like open_short by emphasizing the creation and scouting job. The first sentence adds project scoping, and the overall text leaves no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly instructs MCP callers to perform editorial selection themselves, explains the difference from studio users, and clarifies when to use count vs clips. It also names polling mechanisms (wait_for_job or shorts_status), giving concrete alternatives and conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_insertMove insertAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. MOVE A SPLICED SCENE — reorder an inserted clip between any other scenes, in place. after_id is the insert it should play right AFTER (the scene map in get_edl names each scene's insert id); omit it to play FIRST at its boundary. THE tool for 'move this clip between those two scenes' / 'put the uploaded video after the intro' — never remove + re-insert, which costs two versions and the user watches the clip vanish. Everything anchored to the moved scenes (zooms, takeovers, texts) re-anchors and follows.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| after_id | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnly=false), the description reveals that the call is project-scoped, that it returns the project identity, and that anchored elements (zooms, takeovers, texts) re-anchor and follow. These are behavioral details not in the annotations and crucial for the agent to anticipate side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but each sentence adds value: project scoping, action, parameter explanation, usage guidance, and side effects. It is front-loaded with the critical 'PROJECT-SCOPED' note. While somewhat verbose, it is structured with dashes for readability and does not waste words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 3 parameters and no output schema, the description covers the core operation, the after_id semantics, the re-anchoring effect, and the return of project identity. It lacks an explicit definition of the 'id' parameter and does not mention error conditions, but these are minor given the clarity of the rest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains after_id in detail (what it means, where to find it, and the omit behavior) and reinforces project_id's role. However, the 'id' parameter is only implicitly described as the insert to move via context; it is not explicitly named. Given schema coverage is only 33%, the description compensates for after_id and project_id but could be more explicit about id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'MOVE' and the resource 'A SPLICED SCENE', and explains it reorders an inserted clip. It distinguishes from siblings like move_overlay and move_sfx by specifying it's for clips/inserts, and even names the alternative approach of remove+reinsert that should be avoided.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use: 'THE tool for move this clip between those two scenes' and 'put the uploaded video after the intro'. It also provides a clear when-not: 'never remove + re-insert, which costs two versions and the user watches the clip vanish.' This directly guides the agent's choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_overlayMove overlayAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Reposition/retime/resize an EXISTING overlay — 'move the logo to the other corner', 'make the PIP smaller'. Only the fields you pass change. id from get_edl.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | ||
| y | No | ||
| id | Yes | ||
| scale | No | ||
| start | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false, consistent with the description's mutating action. The description adds that it returns the project identity with its result and that only passed fields change, which is useful behavioral context. It does not disclose potential side effects beyond that, but given the annotations are minimal, the description carries the burden well.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the critical project-scoping constraint and then the action. Every sentence serves a purpose: scope, action, partial-update behavior, and id sourcing. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 6 parameters and no output schema, so the description must compensate. It covers the action, scope, and id source, but does not elaborate on the semantics of x, y, scale, and start (e.g., coordinate system, units, whether start is in seconds or frames). For a moderately complex tool, this is a gap, but the description provides enough to get started.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 17% (only project_id has a description). The description mentions 'reposition/retime/resize' which loosely maps to x, y, scale, start, but does not explain units, array types for x/y, or what start means. It does clarify the source of id, which adds value, but it does not fully compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: reposition/retime/resize an EXISTING overlay, with concrete examples ('move the logo to the other corner', 'make the PIP smaller'). It distinguishes from add_overlay by emphasizing 'EXISTING' and 'only the fields you pass change', making it unambiguous what this tool does versus its siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides context that this is for modifying an existing overlay, not creating one, and specifies that id should come from get_edl. However, it does not explicitly mention when to avoid this tool (e.g., when adding a new overlay) or compare to set_overlay_motion, which might be a similar sibling. The guidance is clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_sfxMove sfxAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Retime an existing sound effect — 'the whoosh is too early'. Keeps which sound and how loud. id from get_edl.
| Name | Required | Description | Default |
|---|---|---|---|
| at | Yes | ||
| id | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false (mutation) and destructiveHint=false (non-destructive), and the description aligns: 'Retime' is a mutation, not destructive. The description adds value by specifying project scoping, the return value ('returns the project identity'), and what it preserves ('Keeps which sound and how loud'). It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no filler. It front-loads the critical project-scoping note, then the core purpose, then a useful preservation detail, then a practical source hint for 'id'. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description explains the return ('returns the project identity with its result') and the scoping. It covers purpose, source of id, and what is preserved. However, it omits the exact meaning of 'at' (units or format), which is a minor gap for a simple 3-parameter tool. Overall, it is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% (only project_id has a description). The description compensates partially: it explains that 'id' comes from get_edl and implies 'at' is the new time via 'Retime' and the example. However, it does not specify units or format for 'at' (e.g., seconds, frames), and 'at' remains ambiguous for precise invocation. The description adds some meaning but not enough to fully cover the undocumented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Retime') and resource ('existing sound effect'), with an example ('the whoosh is too early'). It also clarifies what it does not change ('Keeps which sound and how loud'), distinguishing it from add/remove operations. The purpose is unambiguous and distinct from sibling tools like add_sfx or remove_sfx.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool (retiming an existing sound effect) and tells the user where to get the id ('id from get_edl'). However, it does not explicitly state when not to use it or name alternative tools (e.g., 'use add_sfx for new sounds'), leaving some inference required. The project-scoping note adds a usage constraint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_projectOpen a project for navigationARead-onlyIdempotentInspect
Open a project for navigation and return its full state: the video, its transcript and shots, the current EDL and what is available to place. Copy this project_id into every later project-scoped call; no edit or review tool guesses from the active pointer.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint, idempotentHint, and destructiveHint, so the description need not repeat safety. It adds useful context about returning full state and the workflow requirement, but doesn't disclose any side effects or special edge cases beyond that. With annotations covering the safety profile, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first states purpose and return content, the second gives a clear workflow directive. No fluff, information is front-loaded and each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only open tool with no output schema, the description explains what it returns and how to use the result. It doesn't mention how to get the initial project_id (e.g., from list_projects), but that's a minor gap given the tool's simple scope. Annotations cover safety, so nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the only parameter project_id is an integer. The description mentions 'this project_id' but doesn't explain how to obtain it, what valid values are, or any format constraints. Since schema coverage is low, the description should compensate, but it doesn't add meaningful parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool opens a project for navigation and enumerates the returned state (video, transcript, shots, EDL, available items). It differentiates itself from siblings like list_projects (which lists) and project_state (which may just query) by emphasizing the full-state return and the navigation context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to copy the project_id into every later project-scoped call and notes that no other tool guesses from an active pointer. This tells the agent exactly when to use it and why it's the entry point, distinguishing it from alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_shortOpen a short for direct editingARead-onlyIdempotentInspect
Open one generated short for DIRECT editing by this MCP caller. Select it by its 1-based board card number or child project ID; copy the returned child project ID into every normal editor tool for exactly the same capabilities as Valmera's own agent. This does NOT call or delegate to Valmera's agent. Use this, then watch_video and the normal editing tools, when the user says YOU should edit a short. card requires parent_project_id; a direct child_project_id resolves its own parent and never trusts the active-project pointer.
| Name | Required | Description | Default |
|---|---|---|---|
| card | No | 1-based card number from shorts_status. | |
| child_project_id | No | Generated child project ID. | |
| parent_project_id | No | Shorts board project; required when selecting by card. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds valuable behavioral context beyond those: it clarifies that the tool does not delegate to Valmera's agent, and explains the returned child_project_id must be copied into editor tools for equivalent capabilities. It also discloses the parameter trust nuance (child_project_id never trusts the active-project pointer). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is somewhat long but every sentence earns its place. It is front-loaded with the core purpose ('Open one generated short for DIRECT editing'), then selection options, then a crucial non-delegation clarification, then usage guidance, then parameter nuance. The structure is logical, though it could be tightened slightly without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 optional parameters, no output schema, and read-only/idempotent annotations, the description is quite complete. It explains how to select a short (by card or child_project_id), what to do with the returned ID, when to use it, and the parameter dependencies. It doesn't describe return format details (though the description implies the child_project_id is returned) or error handling, but given the tool's simplicity and annotation coverage, these are minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description enriches this by explaining the semantic relationship between parameters: card requires parent_project_id, and child_project_id resolves its own parent without trusting the active-project pointer. It also clarifies that card is 1-based from shorts_status, which is not in the schema. This adds meaning beyond the field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb+resource: 'Open one generated short for DIRECT editing by this MCP caller.' It specifies the exact scope (generated short) and the mechanism (returning a child project ID to use in editor tools). It also distinguishes itself from delegation by explicitly saying 'This does NOT call or delegate to Valmera's agent,' and implies it is distinct from open_project by focusing on shorts specifically.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit usage condition: 'Use this, then watch_video and the normal editing tools, when the user says YOU should edit a short.' It also clarifies when not to expect delegation and explains the parameter selection logic (card requires parent_project_id; child_project_id resolves its own parent). This is clear, actionable guidance with no ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_visual_pageOpen visual pageAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Open one or more labeled pages from the main footage's persisted hierarchical visual storyboard. The full text inventory names every cluster; use this whenever you need the actual pixels for an evidence_id not present in the initial orientation page. Pages are transport batches, not an editorial allowance: call repeatedly and open as many as the edit requires. With pages omitted, opens every page not yet delivered in this logical turn.
| Name | Required | Description | Default |
|---|---|---|---|
| pages | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, so the description carries the full burden. It discloses project-scoping, the return of project identity, and the default behavior when pages are omitted. However, it does not clarify whether the operation modifies state (e.g., marking pages as delivered) or if it is idempotent, given readOnlyHint=false and idempotentHint=false. This lack of side-effect disclosure is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with 'PROJECT-SCOPED' and is logically structured. However, it is somewhat verbose with jargon like 'persisted hierarchical visual storyboard' and 'logical turn,' which could be simplified. It's not wasteful, but not as crisp as the ideal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given two parameters, no output schema, and sparse annotations, the description covers purpose, usage, and parameter behavior adequately. It does not detail the exact return structure beyond mentioning project identity, but this is likely sufficient for an agent to invoke it correctly. The large sibling list is addressed by the clear usage condition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50% (project_id has a description; pages does not). The description compensates by explaining that pages are integer labels, can be omitted to open all undelivered pages, and are 'transport batches.' It also reinforces project_id's role as required immutable scope. This adds meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: opening labeled pages from a persisted hierarchical visual storyboard. It uses a specific verb ('open'), names the resource ('pages'), and distinguishes it from siblings by noting it retrieves actual pixels for evidence IDs not in the initial orientation page. This is explicit and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage condition: 'use this whenever you need the actual pixels for an evidence_id not present in the initial orientation page.' It also advises to 'call repeatedly and open as many as the edit requires,' giving practical guidance. However, it does not explicitly name alternative tools or state when NOT to use it, so it's not as strong as a direct sibling comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_stateRead an explicit project's stateARead-onlyInspect
Re-read one explicit project's state (video, transcript, shots, current EDL, assets). Cheap — call it whenever you are unsure what the edit currently looks like.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds value by noting the operation is 'Cheap' and enumerating the components returned, giving the agent a sense of the response scope without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loads the verb and resource, and delivers the usage guidance in a compact second sentence. There is no wasted wording, and it is easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one parameter and annotations covering safety, the description covers the core behavior, usage trigger, and the components included. It doesn't describe the exact response format, but the absence of an output schema is mitigated by the listed components.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema defines project_id only as an integer with no description, and the tool description does not mention the parameter at all. With schema coverage at 0%, the description fails to compensate by explaining what project_id refers to, leaving the agent to infer its meaning from context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb 'Re-read' and a resource 'explicit project's state' with a list of contained elements (video, transcript, shots, current EDL, assets). This clearly distinguishes it from sibling get_* tools that retrieve specific components, so an agent can immediately understand its scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises 'call it whenever you are unsure what the edit currently looks like' and labels it 'Cheap', providing a clear usage condition. It doesn't mention when not to use it or name alternatives, but the guidance is sufficient for a general-purpose state read.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
punch_in_on_emphasisPunch in on emphasized wordsAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. ONLY when the user explicitly asked for punch-ins on stressed / important spoken words. Not a default pass, not 'make it high-retention', not a talking-head finish. Writes a sparse, timeline-distributed motion pass on vocally STRESSED words that survive the current cut (stress from the audio, times from real word timestamps). Prefer zero or one hard punch over a sprinkle. Omit count to keep density sparse; omit strength to keep magnitude small. Face targets are used when detected. If you cannot name why a word deserves a camera bump, do not call this — hold the frame or use one add_zoom(mode='ease') on the actual turn.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| strength | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotation hints (all false), the description carries the full burden. It discloses that it's project-scoped, acts only on explicit project_id, returns the project identity, writes a sparse motion pass, derives stress from audio and times from word timestamps, uses face targets when detected, and prefers zero or one hard punch. It also warns about not calling without justification. This is comprehensive behavioral disclosure with no contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but each sentence delivers unique information—scope, usage conditions, parameter guidance, and fallback. It's front-loaded with the most critical scope warning. Slightly verbose but not redundant; earns its length. Could be tightened slightly but is efficient for the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (specialized effect, 3 params, no output schema, no annotations), the description covers all necessary aspects: what it does, when to use, how to parameterize, what it returns, and alternatives. It even addresses edge cases like face detection and why to avoid calling. No missing information that an agent needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% (only project_id has a description). The description compensates by explaining count as density ('Omit count to keep density sparse') and strength as magnitude ('omit strength to keep magnitude small'). It also adds context like 'Prefer zero or one hard punch over a sprinkle' which clarifies how to set parameters. This gives meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: adding a sparse, timeline-distributed motion pass on vocally stressed words. It distinguishes itself from siblings by explicitly saying it's not a default pass, not 'make it high-retention', and not a talking-head finish, and even names add_zoom as an alternative. The verb+resource is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit when-to-use conditions ('ONLY when the user explicitly asked for punch-ins on stressed / important spoken words') and when-not-to-use scenarios ('Not a default pass... not a talking-head finish'). It also gives a concrete fallback: 'hold the frame or use one add_zoom(mode='ease')' if the agent can't justify a bump. This fully guides tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_skillRead an editing skillARead-onlyInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Load a focused editing playbook (captions, zooms, audio, transitions, ...) into this turn. The SKILLS list in your instructions names them. Read the matching skill before your first edit of that kind — batch it with your other reading calls. Pass section to retrieve only the decision, evidence, pattern, failure, verification, or repair material needed now.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| section | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=true and destructiveHint=false, so the description need not repeat that. It adds value by stating the call is project-scoped (no guessing from active pointer) and that it returns the project identity with the result. This clarifies side effects and scope beyond the annotations, though it doesn't detail pagination or response structure. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is multi-sentence but each sentence earns its place: scope declaration, purpose, source of names, batching advice, and section usage. It is front-loaded with the most critical constraint. Slightly verbose but not wasteful; a 4 is appropriate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with three parameters (one enum) and no output schema, the description covers purpose, usage timing, batching, and parameter semantics. It mentions the return of project identity, giving a hint of output. It could specify the exact result shape or whether the skill content is embedded, but overall it provides enough for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (only project_id has a description), so the description must compensate. It does: it tells the agent that `name` values come from 'the SKILLS list in your instructions', and it explains the `section` parameter by listing the kind of material it retrieves, mirroring the enum but adding intent. `project_id` is already well described in the schema. This adds meaningful usage context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result', which precisely identifies the resource (editing skill), the action (read/load), and the scope constraint. It clearly distinguishes from sibling tools by framing it as a skill-loading read operation. The mention of the SKILLS list further anchors the resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: 'Read the matching skill before your first edit of that kind' and advises batching with other reading calls. It also explains the optional `section` parameter to narrow the load, effectively telling the agent what to pass and when. This is clear operational direction without ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
record_websiteRecord websiteAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. RECORD A LIVE WEB PAGE as video: a headless browser opens the URL at the project's aspect, holds the top, smooth-scrolls to the bottom and holds — the classic product-demo pan — and the capture becomes a project video asset. THE tool for 'show my website / landing page / this product page in the edit'. duration_s 4-30 (default 12). orientation defaults to the project's output frame. scroll=false just holds the top of the page. The capture is SILENT and shows the PUBLIC page (no logins, no clicks); place it with insert_media or add_overlay(fit='cover').
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| scroll | No | ||
| duration_s | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| orientation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false. The description adds valuable behavioral context: the headless browser opens the URL, holds the top, smooth-scrolls to the bottom, captures silently, and shows the public page. It also discloses that the capture is silent and public, which is important for agent expectations. It doesn't contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but front-loaded with the core purpose and scoping. It packs a lot of behavioral detail into a few sentences, though the all-caps emphasis and slightly run-on structure reduce readability slightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description covers the key behavioral aspects: what happens during capture, defaults, constraints, and how to place the result. It doesn't describe the return value format, but the description's placement guidance and behavioral detail make it largely complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20%, so the description must compensate. It explains duration_s (4-30, default 12), orientation (defaults to project's output frame), scroll (false just holds the top), and project_id (immutable scope, never guessed from active-project pointer). This adds meaning beyond the bare schema types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'RECORD A LIVE WEB PAGE as video' with a headless browser, and distinguishes it from siblings like download_url, fetch_url, and record_website_demo. It clearly identifies the tool's purpose and scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says this is THE tool for 'show my website / landing page / this product page in the edit', and notes it is SILENT and shows the PUBLIC page (no logins, no clicks), which tells the agent when not to use it. It also mentions placement with insert_media or add_overlay(fit='cover'), providing clear context for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
record_website_demoRecord website demoAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. RECORD THE BROWSER USING A SITE — the showcase capture. A headless browser opens the URL with a VISIBLE cursor drawn on screen and works through steps you write: it glides the pointer to a button, clicks it, waits for the page to react, types into fields at human speed, scrolls between sections. THE tool for 'record yourself using my product', a launch/demo video, or 'show how it works', where record_website only pans down a static page. Steps are objects: {do:'click', text:'Start free trial'} (text = the VISIBLE label; or selector: a CSS selector), {do:'type', selector:'input[type=email]', text:'you@example.com'}, {do:'scroll', to:'Pricing'} or {do:'scroll', by:800}, {do:'hover', text:'Plans'}, {do:'press', key:'Enter'}, {do:'wait', seconds:1.5}, {do:'goto', url:'…'}. Add seconds to any step to hold longer after it. It returns an EVENT TRACK — every click, scroll and keystroke timestamped with its position in the frame — then place it with showcase_demo, which uses that track. It records the PUBLIC site as a visitor sees it and will not type into password or payment fields. Write 4-10 steps that tell one story; a demo that clicks everything shows nothing.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| steps | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| orientation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, consistent with the recording (write) behavior described — no contradiction. The description adds substantial behavioral context beyond annotations: headless browser with a visible cursor, human-speed typing, refusal to type into password/payment fields, and the event-track return value. For a mutation tool this level of disclosure is excellent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence earns its place — the step-format documentation is essential because the schema leaves steps as an unstructured object array. It is front-loaded with the critical scope constraint and the primary purpose. Minor deduction for density; it could be tightened without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description explains the return value (an EVENT TRACK with timestamped interactions and the position-in-frame, to be passed to showcase_demo). It covers the steps grammar, the security constraint on password/payment fields, the scoping rule, and the alternative-tool routing. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25%, so the description carries the burden — and it delivers. It fully documents the steps array with concrete object shapes ({do:'click', text:'...'}, {do:'type', selector:'...'}, {do:'scroll', to:'...'}, {do:'hover', text:'...'}, {do:'press', key:'...'}, {do:'wait', seconds:...}, {do:'goto', url:'...'}) plus the optional seconds modifier. It also clarifies the url and project_id semantics. Only orientation is left to the schema enum, which is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a precise scoped statement ('acts only on the explicit project_id'), then names the exact action ('RECORD THE BROWSER USING A SITE — the showcase capture') with a specific verb and resource. It explicitly differentiates from the sibling record_website ('only pans down a static page'), so an agent can pick the right tool without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly names the use cases ('record yourself using my product', 'launch/demo video', 'show how it works') and the alternative tool that should be chosen instead (record_website). It also gives concrete guidance on step count ('Write 4-10 steps that tell one story') and warns against over-clicking ('a demo that clicks everything shows nothing').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_aspect_shiftRemove aspect shiftAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Remove one mid-video aspect change by its id (see get_edl).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a mutating (readOnlyHint=false), idempotent (idempotentHint=true), and non-destructive (destructiveHint=false) operation. The description adds that it is project-scoped, does not use the active project pointer, and returns the project identity with the result. This is valuable beyond the annotations, though it does not detail error handling or edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that immediately states the scope warning, then the action and prerequisite. No fluff; every phrase contributes. It is efficiently structured for quick agent parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple remove operation with no output schema, the description covers the essential: what it removes, how to identify the target, and the required scope. It mentions the return (project identity) and the prerequisite (get_edl). While it does not specify behavior for invalid IDs or other edge cases, it is adequate for the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides a detailed description for project_id, covering its immutability and sourcing. The tool description adds that id refers to an aspect shift from the EDL ('see get_edl'), giving semantic meaning to the id parameter. With 50% schema coverage, the description compensates by linking id to a specific source, making both parameters clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Remove one mid-video aspect change by its id'. It names the specific resource (aspect shift) and the mechanism (by id), and distinguishes it from the sibling add_aspect_shift and other remove_* tools. The reference to get_edl for finding the id further clarifies the target.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on when to use it: it is project-scoped and requires an explicit project_id, and the id comes from get_edl. It does not explicitly state when not to use it or mention alternatives, but the scope and prerequisite are clearly implied. This gives adequate guidance for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_blurRemove blurAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Remove one censor region by its id (see get_edl), or ALL censor regions when id is omitted.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already supply idempotent and non-destructive hints, so the description adds value by disclosing the project-scoped guarantee and the result behavior (returns project identity). It also explains the two modes of operation (one vs all), which is behavior beyond the raw schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, with the critical project-scoping constraint front-loaded. Every clause adds information: scope, id lookup, all-vs-one behavior, and return value. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, no-output-schema tool, the description fully covers what an agent needs to invoke it correctly: required id source, optional omission semantics, project scope, and return identity. The annotations cover idempotency and safety, so no critical context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema documents project_id fully, but the id parameter is bare. The description compensates by explaining that omitting id means all regions are removed, and that ids come from get_edl. This adds essential meaning beyond the type-only schema entry.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('remove') and resource ('censor region'), and clarifies that it can target one region by id or all regions when id is omitted. It explicitly distinguishes from sibling remove_* tools by naming the resource type (censor region) and the project-scoped behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes clear when to use the tool: for removing a single censor region (after looking up its id via get_edl) or all censor regions by omitting id. It provides a strong scoping condition (explicit project_id) and references the sibling for id discovery, though it does not explicitly name exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_cursor_enhanceRemove cursor enhanceAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Put the original mouse pointer back (re-derives from the untouched source).
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotent and non-destructive hints; the description adds that it re-derives from the untouched source and returns the project identity, clarifying behavior. It also emphasizes project-scoped action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loads the key scoping constraint, then states the action. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, idempotent revert tool, it covers scope, action, and return value. It does not address what happens if no enhancement exists, but given idempotency, that is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already fully documents project_id with coverage 100%. The tool description reinforces the scope but does not add significant new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Put the original mouse pointer back' and notes it re-derives from the untouched source. It also clarifies the project scope. It does not explicitly name the sibling enhance_cursor, but the action is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies it is used to undo cursor enhancement, but does not explicitly mention when to use it versus enhance_cursor or other remove_* tools. The schema description gives guidance on the project_id parameter, but not on when to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_custom_filterRemove custom filterBIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Remove one custom filter chain by its id (see get_edl).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint true and destructiveHint false, and the description does not contradict them. It adds that the call returns the project identity and is project-scoped, which is useful context. However, it does not describe side effects, reversibility, or behavior when the id is missing, leaving some gaps beyond what annotations cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the project-scoped constraint, and each sentence conveys necessary information. It is efficient without extraneous text, though it could be slightly more explicit about usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple removal with two params, no output schema, and existing annotations, the description covers scope, action, and return value. It references get_edl for ids and states the immutable project_id. It lacks error handling or reversibility details, but these are minor for this low-complexity tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50% (project_id described, id not). The description says 'by its id' and references get_edl, but does not elaborate on the id format or meaning beyond that. It adds minimal value for the id parameter and does not compensate for the missing schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Remove one custom filter chain') and identifies the resource and identifier ('by its id'). It also clarifies the scope ('PROJECT-SCOPED') and points to get_edl for id discovery. It does not explicitly differentiate from the many other remove_* siblings, but the custom filter resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides little guidance on when to use this tool versus alternatives. It mentions the project-scoped behavior and 'see get_edl' for ids, but does not state exclusions or when to prefer this over other remove tools. There is no explicit 'use this when...' or 'do not use for...' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_eraseRemove eraseAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Undo an erase: put the original pixels back for one erased region by its id (see get_edl), or for ALL of them when id is omitted. Instant for window-patch erases; legacy whole-file erases rebuild from the untouched original.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotentHint=true and destructiveHint=false. The description adds meaningful behavioral context: it is project-scoped (does not rely on the active project pointer), returns the project identity with the result, and behaves differently for window-patch (instant) vs legacy whole-file erases (rebuild). This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the critical scoping constraint ('PROJECT-SCOPED'). It then explains the action, parameter behavior, and performance characteristics in a logical order without redundancy. Every sentence adds value, making it an efficiently structured description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with only two parameters and no output schema, the description covers the core operation, scoping, parameter semantics, and performance. It even hints at the return value ('returns the project identity with its result'). It does not detail the exact return format, but that may not be necessary given the simple operation and the presence of related tools like project_state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%: only project_id has a schema description, while id has none. The description compensates by explaining that id is the erased region identifier (optional, see get_edl) and that omitting it undoes all erases. This adds essential meaning to the id parameter that the schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: undo an erase, restoring original pixels. It specifies the resource (erase) and distinguishes it from siblings like erase_region and other remove_* tools by focusing on undoing an erasure operation. The scoping to project_id is also explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on when to use it: to undo an erase, with the option to target a specific region by id or all erases when id is omitted. It also mentions performance differences between window-patch and legacy whole-file erases, helping an agent set expectations. However, it doesn't explicitly state when not to use it or name alternatives, relying on the tool name and siblings for that.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_filler_wordsRemove filler wordsAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. ONE-CALL filler removal — THE tool for 'remove the ums' / 'cut the uhs' / 'take out the filler words'. Cuts every um, uh, er, hmm, etc. using the exact word timestamps (deterministic, never estimated). Pass a custom words list to target different tokens (e.g. ["like","you know"]) — the default set is only the safe non-word hesitations.
| Name | Required | Description | Default |
|---|---|---|---|
| words | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses several important behaviors: the call is project-scoped to the explicit project_id, it returns the project identity with the result, it uses exact word timestamps rather than timing, and the default removal set is restrict the safer non-word hesitations. These add meaningful behavioral detail beyond the structured annotation fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but to the point. It front-loads the critical project-scoping note and the one-call claim, then moves through operation, determinism, and customization. Each phrase adds distinct decision-relevant information with little or no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema, the description covers the core behavior, scoping, return indicator, and customization. It does not detail error cases or the full return payload, but the mention of returning 'project identity with its result' gives enough closure for a relatively straightforward mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: only project_id gets a description in the schema. The tool description compensates by explaining the words parameter—its purpose, how to pass custom tokens like ['like','you know'], and the default behavior when omitted. This goes beyond the bare array-of-strings schema, though a bit more detail (e.g., matching semantics) could be added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: it removes filler words from a project. It clearly distinguishes itself from the many sibling tools by explicitly claiming to be 'THE tool for “remove the ums” / cut the uhs / take out the filler words' and by listing the exact tokens it removes (um, uh, er, hmm).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description strongly signals when to use it in natural user phrasing ('remove the ums', 'cut the uhs') and clarifies how to extend its use with a custom words list. It does not explicitly name alternatives or state when not to use this tool, but the guidance is clear enough for an agent to select it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_insertRemove insertAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Remove one spliced insert by its id (see get_edl) — the surrounding timing is restored exactly. If an insert landed wrong, remove it BEFORE re-inserting, or the old one stays in the video.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, idempotentHint=true, and destructiveHint=false. The description adds valuable context beyond this: it states the call is project-scoped, restores surrounding timing exactly, and warns about the ordering requirement. This is useful behavioral information that helps the agent anticipate side effects without contradicting any annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and efficient, using two sentences to convey scope, action, the id source, and a critical usage warning. The PROJECT-SCOPED prefix is front-loaded, making the most important constraint immediately visible. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation tool with no output schema, the description covers the essential aspects: what it does, the id source, the scoping rule, and the timing behavior. It mentions the return value (project identity with result), which gives the agent a sense of the response. There is no missing information that would prevent correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% — only project_id has a description. The tool description compensates for the undocumented id parameter by directing the agent to 'see get_edl' to find the id, which gives practical meaning. The project_id description is detailed, and the description reinforces its role as an explicit scope. Overall, the description adds value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Remove') and resource ('one spliced insert by its id'), and distinguishes it from siblings by referencing get_edl and the timing restoration. The PROJECT-SCOPED prefix adds clarity about scope, making it easy for an agent to understand what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear usage scenario: remove an insert that landed wrong, and importantly advises removing BEFORE re-inserting to avoid leaving the old one. It does not explicitly name alternatives like move_insert, but the context implies when removal is appropriate versus other operations. The guidance is sufficient for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_musicRemove musicAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Remove one background-music item by its id (see get_edl). Use this to cut the music entirely or before re-adding it with a different range.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds that the call is project-scoped and returns the project identity with its result, which is useful. However, it does not disclose behavior for non-existent ids or edge cases, though the annotations mitigate this. It adds some context beyond annotations but not a rich behavioral narrative.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The first sentence states scope and purpose, the second gives usage guidance. It is front-loaded with the most critical information (project-scoped) and avoids redundancy. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple removal tool, the description covers the essential points: what it removes, how to identify the item, project scope, and what it returns. The annotations cover idempotency and non-destructiveness. The only minor gap is not specifying behavior if the id doesn't exist, but this is negligible given the simplicity and the reference to get_edl.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only project_id has a description). The description compensates by telling the user to see get_edl for the id, and provides detailed guidance on project_id, stating it is an 'immutable scope' and how to copy it from list_projects/open_project/project_state. This adds meaningful semantics beyond the schema, especially for the undocumented 'id' parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'remove' and the resource 'one background-music item by its id'. It distinguishes itself from other remove_* tools by specifying it targets music and references get_edl for finding the id. The phrase 'cut the music entirely or before re-adding it with a different range' further clarifies its purpose without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use it ('to cut the music entirely or before re-adding it with a different range') and directs the user to get_edl for obtaining the id. It doesn't explicitly mention alternatives or when not to use it, but for a removal tool, the usage context is clear. The project-scoped note also helps in guiding appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_overlayRemove overlayAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Remove one overlay by its id (see get_edl).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=true, covering the mutation and safety profile. The description adds context that the call is project-scoped and returns the project identity, which is not in annotations. This is useful additional behavioral information without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, with the project-scoping note front-loaded. It delivers the key action, scope, and source of the id without any filler. Every word contributes to understanding how to call the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema, the description covers the essential information: what it removes, how to scope it, and where to get the id. It does not discuss error handling or edge cases, but these are not required given the tool's simplicity and the annotations that cover safety.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only project_id has a description). The description adds a hint that id is obtained from get_edl, but does not specify its format or additional constraints. It does not fully compensate for the undocumented id parameter, but the hint is a small addition. A score of 3 reflects moderate compensation for a 50% coverage baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Remove') and resource ('one overlay by its id'), and clarifies it is project-scoped. This clearly distinguishes it from other remove_* tools, which target different resources, and from add_overlay/move_overlay. The reference to get_edl for the id further anchors its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit guidance on the project_id parameter: that it must be copied from specific sources and that the active-project pointer is never used. It also tells the user to consult get_edl for the overlay id. It does not explicitly contrast with alternatives like remove_sfx or remove_text, but the resource specificity makes usage obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_screen_frameRemove screen frameAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Remove the floating rounded window — the picture goes back to full-bleed.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=true, so the mutation and safety profile are covered. The description adds that it is project-scoped and returns the project identity, which is useful context beyond annotations. However, it does not disclose behavior like error conditions or what happens if no frame exists, though idempotency covers some of that. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the project-scope warning, and contains no filler. Every clause adds value: the scope constraint, the effect, and the return info. It is exemplary in brevity and structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter tool with no output schema, the description covers the essential behavior: what it removes, the effect, and the return value. It does not detail error handling or side effects beyond the project scope, but given the tool's simplicity and the annotations covering idempotency and non-destructiveness, it is sufficiently complete for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema fully documents the project_id parameter. The description adds the caution that the active-project pointer is never used to guess, which is critical semantic context not in the schema. This enhances the parameter's meaning beyond its type and required status.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: removing the floating rounded window and restoring full-bleed. It identifies the resource and effect, but does not explicitly contrast with sibling tools like remove_screen_takeover or set_screen_frame, though the inverse relationship with set_screen_frame is implied. It is sufficiently specific to distinguish itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide guidance on when to use this tool versus alternatives, such as when to use remove_screen_takeover or set_screen_frame. It only clarifies the project-scoped nature, which is a usage constraint but not a selection criterion. There is no mention of exclusions or conditions that would route an agent to a different tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_screen_takeoverRemove screen takeoverAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Undo a screen takeover by its id (see get_edl): the corner pin, the camera push and the clip it handed off to all go together. Pass keep_clip=true to leave the clip spliced in as a plain cut.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| keep_clip | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=false, idempotentHint=true, destructiveHint=false) are consistent with the description's 'Undo' language, and the description adds value beyond them: the PROJECT-SCOPED behavior, what components are undone together, and the keep_clip=true non-destructive option. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense, well-ordered sentences. The critical PROJECT-SCOPED constraint is front-loaded, followed by the action, the components undone, and the optional flag. Every clause earns its place with zero redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter removal tool with a reasonable annotation set and no output schema, the description is thorough: it covers scoping, id source, what gets undone, the keep_clip option, and even the return value (project identity). Only an explicit exclusion of when not to use it keeps this from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% (only project_id is documented). The description compensates by clarifying that id comes from get_edl and by explaining keep_clip=true leaves the clip as a plain cut. project_id is already fully described in the schema. This meaningfully bridges the gap for the undocumented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource ('Undo a screen takeover by its id') and explains what that entails (corner pin, camera push, handed-off clip), which distinguishes it from the sibling remove_screen_frame. It doesn't explicitly contrast itself with that sibling, but the domain explanation makes the boundary clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear context is provided: use it to undo a screen takeover, find the id via get_edl, and optionally keep the clip via keep_clip=true. It lacks an explicit when-not-to-use or named alternative, but the scoping note and the reference to get_edl give an agent enough to invoke it correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_sfxRemove sfxAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Delete a sound effect by id (from get_edl).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already cover idempotence, read-only state, and destructive/scope hints. The description adds useful context beyond that: the call is limited to the explicit project_id and returns the project identity with its result. This clarifies scope and observable output without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The scoping/result information is front-loaded, and the actual delete action follows immediately. Every sentence carries useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter delete operation, the description provides the id source, project scoping, and a note about the result. Since there is no output schema, the result mention is useful. It could be slightly more precise, but not enough to be a major gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The id parameter has no schema description, but the tool description adds the essential point that it comes from get_edl. The project_id parameter is already documented in the schema, so the description compresses the project scoping correctly while covering a 50% schema coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete action ('Delete'), a specific resource ('a sound effect'), and gives the id source ('from get_edl'). It also states the project-scoped behavior up front, which separates it from broader or unscoped tools and avoids a mere restatement of the title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when a caller wants to delete a sound effect and has an id from get_edl. It also documents the project_id prerequisite. However, it does not explicitly mention when NOT to use it or point to alternatives like move_sfx, add_sfx, or other remove_* tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_speedRemove speedAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Remove one speed span by its id (see get_edl) — that footage returns to normal speed and program-time items re-anchor automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context: 'footage returns to normal speed and program-time items re-anchor automatically.' This goes beyond the annotations and helps the agent predict side effects. No contradiction found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the project-scoped warning, and contains no fluff. Every clause earns its place: scope, action, id source, and behavioral consequences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with 2 parameters and no output schema, the description covers purpose, scope, behavior, and return (project identity). It doesn't mention error cases or what happens if the id is invalid, but for this simple operation the essential information is present. The output is partially described ('returns the project identity'), which is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only project_id has a description). The description compensates by telling the agent to get the id from get_edl, which is essential context for the otherwise undocumented id parameter. It also reinforces the project_id requirement by noting the call is project-scoped. This adds meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Remove one speed span by its id' with a clear reference to get_edl for the id. It distinguishes this from sibling tools like set_speed or remove_zoom by focusing on speed spans, and explicitly scopes to a project via project_id. This is precise and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells the agent to 'see get_edl' to obtain the id, which is a necessary prerequisite. It doesn't explicitly mention when not to use this tool (e.g., when modifying speed rather than removing), but the purpose is clear enough that an agent can infer the context. It could be improved by naming alternatives, but it provides adequate guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_stem_mixRemove stem mixAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Restore the original mixed soundtrack (undo separate_music).
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false (mutation) and idempotentHint=true, which the description does not contradict. The description adds useful behavioral context: it acts only on an explicit project_id, never on the active-project pointer, and returns the project identity. This goes beyond annotations and helps the agent understand side effects and return expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the scope constraint and then the action. No filler; every sentence earns its place. The structure is efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with annotations covering safety and idempotency, the description fully covers what an agent needs: what it does, how it scopes, and where to get the id. No output schema exists, but the return behavior is mentioned ('returns the project identity'). Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the schema already describes project_id as 'Required immutable scope...'. The main description reinforces this by saying 'acts only on the explicit project_id' and 'never used to guess', but it does not add significant new meaning beyond what the schema provides. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (restore/undo) and resource (original mixed soundtrack), and explicitly ties it to 'undo separate_music', distinguishing it from sibling tools like remove_music or swap_music. The 'PROJECT-SCOPED' prefix further clarifies the scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear usage context: it is the inverse of separate_music, so an agent knows to call it after a stem separation. However, it does not explicitly list alternatives or when NOT to use it (e.g., vs. remove_music). The context is strong but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_stylizeRemove stylizeAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Remove one stylize effect by its id (see get_edl).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint=false, destructiveHint=false, and idempotentHint=true. The description adds the project-scoping behavior and that it returns the project identity with the result, which is useful but not rich. It does not mention side effects or failure modes, but the annotation set lowers the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise sentence with a front-loaded 'PROJECT-SCOPED' qualifier. Every word adds value, and it avoids redundancy with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple removal tool with two parameters, the description covers the essential behavioral aspects: project scoping, the return value, and where to get the id. Given the annotations and the simplicity of the operation, it is adequate. Missing details like error handling or side effects on other effects are minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (project_id has a detailed description). The description adds a pointer to get_edl for the id parameter, which helps locate the value but does not explain its format or meaning beyond that. It partially compensates for the undocumented id parameter but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (remove), the resource (stylize effect), and the specific action (by its id). It also notes the project-scoped nature, which distinguishes it from other removal tools like remove_custom_filter. The reference to get_edl for finding ids adds precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides usage context (project-scoped, explicit project_id, see get_edl for id) but does not explicitly contrast with alternatives like remove_custom_filter or specify when not to use it. The guidance is implied rather than explicit, and there are no exclusion conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_textRemove textAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Remove one text element by its id (see get_edl) — including one placed behind the subject.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description claims a destructive action ('remove') while the annotation destructiveHint is false, which is a direct contradiction. It also does not explain any side effects or irreversibility beyond what the annotations already state, and the contradiction makes the tool unsafe for an agent to interpret correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the critical scope constraint, and includes the special case without fluff. Every sentence earns its place, and the structure is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple removal tool, it covers the essentials: what is removed, how to get the id, and the project scope. However, the contradiction between 'remove' and destructiveHint=false undermines completeness, and the description does not address behavior on missing ids or idempotency (though the annotation does). Given the contradiction, an agent would be uncertain about side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning to the 'id' parameter by referencing get_edl, which is not in the schema. For 'project_id', the schema already provides a detailed description, and the description reinforces the project-scoped behavior. With 50% schema coverage, the description compensates for the undocumented 'id' parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'remove', the resource 'text element', and the specific identifier 'id' with a reference to get_edl. It distinguishes itself from sibling tools like remove_overlay or remove_blur by explicitly mentioning 'text element' and the special case of elements 'behind the subject'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a prerequisite ('see get_edl') for obtaining the id, but does not explicitly mention when to use this tool over other remove_* siblings. The scope is clear, but there is no explicit 'when not to use' guidance or naming of alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_vector_graphicRemove vector graphicBIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Remove one renderer-native vector graphic by id.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states 'Remove', which implies a destructive mutation, yet the annotations declare destructiveHint: false. This is a direct contradiction. The description also adds minimal behavioral context beyond the annotations, but the contradiction invalidates the transparency score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense sentence that front-loads the critical project-scoping constraint before the action. There is no redundancy or filler, making it maximally efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter removal operation, the description covers the action, the required project_id scope, and the return value (project identity). It lacks explicit guidance on obtaining the id and edge-case behavior, but given the simplicity and existing schema description for project_id, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50% (project_id has a description, id does not). The tool description does not explain the id parameter beyond implying it identifies the vector graphic, and it does not compensate for the missing schema detail. The agent is left guessing about the id's format or provenance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove'), the specific resource ('renderer-native vector graphic'), and the identifier ('by id'). It also distinguishes this tool from siblings by specifying 'renderer-native' and the project-scoping constraint, making it unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for removing vector graphics and mandates an explicit project_id, which is a clear usage constraint. However, it does not explicitly compare with sibling remove tools (e.g., remove_overlay, remove_text) or state when not to use it, leaving the agent to infer based on the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_voiceoverRemove voiceoverAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Remove one voiceover by its id (see get_edl).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the return format ('returns the project identity with its result') and the project-scoping behavior, which adds context beyond the annotations. However, there is tension between 'Remove' and destructiveHint: false; the idempotentHint: true makes a reversible/idempotent removal plausible, so the annotations are internally coherent, but the description does not clarify whether removal is irreversible or a soft removal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero filler, and the most important scoping constraint is front-loaded with the 'PROJECT-SCOPED' warning. The get_edl pointer is slightly terse but earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation tool with no output schema, the description covers scoping and return format adequately. But it does not explain failure behavior (e.g., what happens if the voiceover id does not exist) or the effect of repeated removal, which matters given the idempotentHint annotation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% — project_id is well documented in the schema, but id has no schema description. The description partially compensates by saying 'by its id (see get_edl),' which tells the agent the id is a voiceover identifier and where to source it. This adds meaning beyond the bare schema but does not fully cover id semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource+identifier: 'Remove one voiceover by its id.' The voiceover resource clearly distinguishes it from sibling removal tools like remove_music, remove_sfx, and remove_overlay. The 'see get_edl' pointer tells the agent exactly where to obtain valid IDs, making the tool's purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'PROJECT-SCOPED' prefix is a strong usage signal that this call requires an explicit project_id, and the project_id schema description reinforces it: 'Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess.' This gives clear when-to-use guidance, though it does not explicitly name excluded alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_zoomRemove zoomBIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Remove one zoom by its id (see get_edl).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'Remove' which is a destructive operation, but the annotations declare destructiveHint: false. This is a direct contradiction. While the description adds that it returns the project identity, the contradiction is a serious transparency failure, so the score is 1 and annotation_contradiction is true.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the critical project-scoping note. It is concise and efficient, though the 'see get_edl' reference is slightly cryptic but still acceptable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description mentions the return value (project identity with result) and project scoping, but the contradiction with destructiveHint undermines its completeness. It also lacks details on error handling or edge cases, making it insufficient for a mutation tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (only project_id has a description). The description adds value by pointing to get_edl for the id and clarifying that project_id is an explicit immutable scope. However, it does not fully compensate for the missing id parameter description, so it is adequate but not outstanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Remove') and resource ('one zoom by its id'), which clearly distinguishes it from sibling tools like remove_zoom_path. It also clarifies the project-scoped behavior. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a pointer to get_edl for obtaining the id, implying when to use this tool (after looking up the zoom). However, it does not explicitly state when not to use it or compare it with alternatives like remove_zoom_path, so usage guidance is partial.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_zoom_pathRemove zoom pathAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Remove one keyframed travelling zoom by its id (see get_edl). Use remove_zoom for ordinary punch/ease zooms.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the call is project-scoped, only uses the explicit project_id rather than the active-project pointer, and returns the project identity with its result. Annotations already cover idempotency and non-destructiveness, so the description adds meaningful behavioral context without needing to restate them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first establishes scope and return value, the second states the operation and points to the correct sibling. No filler, front-loaded with the most important constraint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter mutation, the description covers scope, object of action, id source, and return contract. It also names an unambiguous alternative (remove_zoom), fully equipping an agent to decide and invoke.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 50% of parameters; the description adds value by saying 'see get_edl' to locate the zoom idaint, and the project_id parameter already has a detailed schema description. This meaningfully fills the gap for the undocumented 'id' parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Remove one keyframed travelling zoom by its id.' It explicitly contrasts with remove_zoom ('ordinary punch/ease zooms'), so an agent can tell the two apart immediately. The PROJECT-SCOPED prefix adds a clear boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Directs the agent to use remove_zoom for ordinary punch/ease zooms, implying remove_zoom_path is for keyframed travelling zooms. It also instructs to find the id via get_edl. This is explicit selection guidance, not just inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_previewRender previewAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Render evidence for the current immutable EDL. complete=false makes changed-section proof only; this does not create a watchable complete preview. complete=true creates the complete stored video, even on the first call. quality=approval implies complete=true and renders from the original at up to 720x1280 portrait using the final composition and typography path; draft is the inexpensive 480px preview. Use watch_video(render=false) or download_url to retrieve it; wait_for_job reports the render job and durable asset.
| Name | Required | Description | Default |
|---|---|---|---|
| quality | No | ||
| complete | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false, openWorldHint=false, idempotentHint=false, destructiveHint=false. The description adds significant behavioral context: complete=false gives changed-section proof only, complete=true creates the complete stored video even on first call, and quality=approval implies a full render from original. It also notes how to retrieve the result via watch_video or download_url. It stops short of stating side effects like cost/time, but the core behavior is well disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence adds necessary information. The description front-loads project scoping, then explains the two modes, then quality implications, then retrieval. There is no filler or repetition. It is dense but efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a rendering tool with no output schema and 3 params, the description covers all essential aspects: what it does, the two completion modes, quality behavior, how to retrieve the result, and the job-status tool. An agent would know exactly how to invoke it and what to expect, including the first-call behavior for complete=true.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% (only project_id has a description). The description compensates fully: it explains that project_id is the required immutable scope (copy from list_projects/open_project/project_state, never the active-project pointer), quality=approval implies complete=true and draft is inexpensive 480px, and complete=false vs true semantics. This exceeds what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool renders evidence for the current immutable EDL, with explicit project scoping. It distinguishes its purpose from retrieval tools like watch_video and download_url, and from job-status via wait_for_job. The verb 'render' plus resource 'preview' is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit guidance on when to use complete=false vs complete=true, the implications of quality=approval (implies complete=true, renders from original at up to 720x1280 portrait), and that draft is the inexpensive 480px preview. It also names alternative retrieval methods and clarifies that complete=false does not create a watchable complete preview.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
research_brollResearch brollAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Research B-roll as a COHERENT STORY SEQUENCE, not one isolated keyword at a time. Pass every meaningful cutaway moment with a concrete visual query, its editorial purpose, intended output time and approximate duration. For an important beat, query_variants can name distinct truthful visual routes (exact subject, observable action, environment/detail) so the choice is not trapped inside one keyword's near-duplicates. The tool searches moments concurrently, adapts candidate depth to the size of the story, returns candidates grouped by purpose, and attaches one balanced visual board spanning the whole edit. For the in-house editor, one independent sequence cast compares visible specificity, authenticity, composition, color and diversity and may choose KEEP BASE PICTURE / NO B-ROLL for any weak moment. This is selection evidence, not a placement quota. Nothing enters the project until add_stock_media; the actual downloaded clip is then visually reviewed before placement. Use kind='photo' for real people/products/places when topical video is unavailable.
| Name | Required | Description | Default |
|---|---|---|---|
| moments | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| orientation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, so the description carries the full burden. It discloses that it searches concurrently, adapts depth, returns candidates grouped by purpose, attaches a visual board, and provides an editor comparison that may choose KEEP BASE PICTURE / NO B-ROLL. It also clarifies that nothing enters the project until add_stock_media, which is a key side-effect transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence adds value. It front-loads the project-scoped note and uses clear, purposeful sentences. While it could be tightened slightly, the density is justified by the complexity of the tool. No fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, the description is remarkably complete. It explains the input structure, output behavior (grouped candidates, visual board), the editor comparison mechanism, and the absence of side effects until add_stock_media. There is no output schema, so the description fully covers what an agent needs to know.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% (project_id described). The description compensates richly: it explains moments require concrete visual queries, purpose, output time, and duration; query_variants are for distinct truthful visual routes; and kind='photo' is recommended for real people/products/places. It also implies orientation is part of the request but not detailed, which is acceptable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool researches B-roll as a coherent story sequence, not isolated keywords, and explicitly scopes it to a project_id. It distinguishes itself from simpler keyword searches and notes that media isn't added until add_stock_media, which differentiates it from sibling tools like search_stock.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context: project-scoped, acts on explicit project_id, and advises using kind='photo' when topical video is unavailable. It doesn't name specific sibling alternatives or when to use them, but the guidance on story sequencing and kind selection gives practical direction. The 'Nothing enters the project until add_stock_media' boundary clarifies when not to expect side effects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reset_editDiscard the edit and start from the sourceADestructiveInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Start again from the full untouched source video whenever that is the best route for the brief or current edit. The tool creates a new version, so every prior cut remains recoverable in version history. It drops every current cut, caption, track and effect; state honestly when you chose to rebuild from source.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations (which only indicate destructiveHint: true) by clarifying that the action is scoped to the explicit project_id, creates a new version so prior cuts remain recoverable in version history, and drops all current edits. It also instructs the agent to state honestly when it chose to rebuild from source, adding useful behavioral guidance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the PROJECT-SCOPED note and provides essential behavioral details in three sentences. The final instruction about 'state honestly' is somewhat tangential to tool mechanics, but it does not detract significantly. Overall it is efficient and well organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive action with a single parameter, the description covers scope, behavior, recoverability, and return value adequately. It does not mention error conditions or what happens if the project is not found, but those are likely handled elsewhere. The absence of an output schema is mitigated by the mention of returning the project identity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The parameter project_id is already fully documented in the schema (coverage 100%) with clear instructions to copy it from list_projects/open_project/project_state and avoid guessing. The description adds only that the call is scoped to that id and returns the project identity, which is marginal and not parameter-specific.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool resets the edit by starting again from the full untouched source video, dropping all cuts, captions, tracks, and effects. This is a specific verb (reset) on a well-defined resource (the edit/project), and it distinguishes itself from sibling removal tools by implying a full clean-slate operation rather than removing individual elements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides context that it should be used 'whenever that is the best route for the brief or current edit,' which gives a general sense but does not explicitly contrast with alternatives like the many remove_* tools. There is no explicit 'use this instead of X when Y' guidance, leaving some inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_rangeRestore rangeAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Add a previously-cut source-time range back into the keep set (undo one cut without touching the rest). Creates a new EDL version.
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | ||
| start | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| snap_to_words | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no hints (all false), so the description carries the burden. It adds useful behavioral context: the call is project-scoped, returns the project identity, creates a new EDL version, and undoes only one cut without affecting others. It does not mention potential side effects like reversibility or failure modes, but it discloses the key behavioral traits beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The scoping constraint is front-loaded, and the action is stated clearly in the second sentence. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the purpose and side effect (new EDL version) but leaves parameter details (start/end semantics, snap_to_words) unexplained. There is no output schema, so the return value is only vaguely mentioned ('returns the project identity'). For a tool with four parameters, three of which lack schema descriptions, this is a notable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25% (only project_id has a description). The description says 'source-time range,' which implies start and end are time boundaries, but it does not specify units, inclusivity, or the meaning of snap_to_words. It adds some meaning beyond the bare schema but does not fully compensate for the three undocumented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Add a previously-cut source-time range back into the keep set (undo one cut without touching the rest).' This is a specific verb and resource, and it distinguishes itself from the many sibling tools by explicitly being the inverse of a cut operation. The PROJECT-SCOPED note also clarifies its scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when you want to undo a specific cut while leaving the rest of the edit intact. It does not explicitly name alternative tools or state when not to use it, but the context is clear enough for an agent to infer the primary use case. It lacks explicit exclusions or comparisons to tools like cut_range or keep_segments.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review_audioReview audioAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Listen to bounded REAL audio through the audio-review lane and return its professional assessment. Pass asset_key for an uploaded/fetched song, audio-only file, clip or render; pass times for seconds within that asset. With no asset_key, times reviews SOURCE sound. output_times reviews the CURRENT rendered program and therefore requires render_preview first. Use this for vibe, recording quality, intelligibility, masking and mix judgment; get_audio_analysis remains the authority for BPM/beats/energy and audit_audio_mix for authored roles. Advisory only—never refuse a valid user choice because the listener is unavailable.
| Name | Required | Description | Default |
|---|---|---|---|
| times | No | ||
| span_s | No | ||
| question | No | ||
| asset_key | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| output_times | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With all annotations false, the description must carry the burden. It discloses the advisory-only nature, never refusing a valid user choice, the requirement for render_preview when using output_times, and that it is project-scoped. These are behavioral details beyond any structured field, making the tool's behavior predictable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place. It starts with the most critical scoping constraint ('PROJECT-SCOPED'), then the core action, then parameter modes, then usage domain, and ends with the advisory note. No filler; each clause adds a distinct fact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The definition covers the main usage scenarios, return content (project identity + assessment), and key preconditions. It lacks explicit mention of the output format (though there is no output schema) and does not describe span_s or question semantics. For a tool with six parameters, it is more complete than most, but not fully exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 17% (only project_id is documented). The description compensates by explaining asset_key ('uploaded/fetched song, audio-only file, clip or render'), times ('seconds within that asset' or SOURCE sound when no asset_key), and output_times ('reviews the CURRENT rendered program'). However, span_s and question are not explicitly defined, leaving a small gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Listen to bounded REAL audio and return its professional assessment') on a specific resource, distinguishes itself from siblings by naming get_audio_analysis and audit_audio_mix as authorities for other audio dimensions, and notes it is project-scoped. This gives an agent a clear, unambiguous purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use this for vibe, recording quality, intelligibility, masking and mix judgment; get_audio_analysis remains the authority for BPM/beats/energy and audit_audio_mix for authored roles.' It also explains the three parameter modes (asset_key, times, output_times) and the precondition for output_times (render_preview first). This is a model of usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_sfxSearch sfxARead-onlyInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Search the web for a REAL recorded sound effect — the editor's whoosh, camera shutter, UI click, pop, riser. Query by the sound's PHYSICAL name ('whoosh', 'camera shutter', 'keyboard click'), not a mood. Results carry duration and license terms (public domain, credit, or NON-COMMERCIAL-ONLY) — relay the terms. max_seconds caps length (default 15s; one-shots are seconds long).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| max_seconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context beyond annotations: it states the call is project-scoped (acts only on explicit project_id), returns duration and license terms, and instructs the agent to relay license terms. It also discloses the default max_seconds behavior. This is strong added value, though it doesn't describe pagination or result count limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-organized, with the project-scoping constraint front-loaded and the query-format guidance following. Every sentence earns its place, though the parenthetical list of examples and the license-term instruction make it slightly long. It is appropriately sized for the complexity of the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search tool with no output schema, the description covers the key operational details: what to search, how to phrase the query, the project scope, the max_seconds behavior, and the license-term relay requirement. It doesn't describe result count limits or pagination, but those are minor gaps given the tool's simplicity and the annotations' safety coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description carries significant weight. It explains the query parameter semantics (physical sound name, not mood), clarifies max_seconds (caps length, default 15s, one-shots are seconds long), and emphasizes project_id as an immutable scope. This compensates well for the sparse schema, though it doesn't enumerate every possible query format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Search') and resource ('web for a REAL recorded sound effect'), and explicitly scopes the call to a project_id. It distinguishes itself from siblings like add_sfx, add_web_sfx, fetch_sfx, and audition_sfx_candidates by emphasizing web search for real recorded sounds by physical name, not mood. The instruction to query by physical name ('whoosh', 'camera shutter') is a clear, differentiating behavioral rule.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: use this when searching the web for a real recorded sound effect, and it tells the agent what to query by (physical name, not mood). It also names the alternative path implicitly by contrasting with mood-based search and by noting the project-scoped nature. The max_seconds cap and license-term relay instruction provide additional usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_stockSearch stockARead-onlyInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. SEARCH for b-roll images/clips the user does not have. Two kinds of query work: generic visuals ('a busy city', 'ocean waves') AND — with kind='photo' — REAL topical subjects ('Elon Musk', 'SpaceX Starship', a company, a product) from Wikimedia/Flickr's photo record; relay each photo's license line when it carries an obligation. For real topical VIDEO use find_footage instead. Returns a VISUALLY REVIEWABLE, provider-diverse grid (Pexels/Pixabay/Openverse when configured), not a homogeneous first-provider dump. Candidates ONLY: nothing is downloaded and nothing enters the video. kind 'video' (default) or 'photo'. orientation defaults to the project's output frame, so a 9:16 edit gets vertical footage. Then call add_stock_media with the best id.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | ||
| count | No | ||
| query | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| orientation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false; the description meaningfully adds that this call is project-scoped, returns no downloads, never inserts into the video, returns a provider-diverse grid, relays license obligations, and defaults orientation to the project's output frame. These behaviors are not inferable from annotations or schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the most important scoping constraint and every sentence adds operational value. It is somewhat dense and uses heavy capitalization/parentheticals, but it is not padded or repetitive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool without an output schema, it gives a useful high-level return contract (visually reviewable, provider-diverse grid), safety guarantees, and a natural follow-up action. The main gap is the undocumented count parameter and a somewhat vague exact return shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20%, so the description must compensate. It explains the query semantics, the kind enum and default, orientation defaulting, and project_id scoping. However, the count parameter is left unexplained, so its role or limit remains ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'SEARCH for b-roll images/clips the user does not have,' scoped to an explicit project_id. It also distinguishes itself by pointing topical video to find_footage and by describing a provider-diverse result grid, so an agent can tell it apart from related search tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description is explicit about when to use it: generic visual queries, and photo queries for topical subjects via kind='photo'. It also names the alternative for real topical video ('use find_footage instead') and chains to the next step ('Then call add_stock_media with the best id').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_transcriptSearch transcriptARead-onlyInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Find where something is said (substring + fuzzy over sentences).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds valuable behavioral context: it is project-scoped and returns the project identity with the result, which goes beyond the annotation. No contradictions, and the added detail is useful without being verbose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no waste. The scoping constraint is front-loaded, and the functional purpose is stated succinctly. Every word earns its place, making it highly efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter read-only tool with annotations covering safety and no output schema, the description covers the essential aspects: purpose, scoping, and a hint at return behavior (project identity). Nothing critical is missing for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides a detailed description for project_id, but query has no schema description (50% coverage). The description compensates by explaining that query is a substring/fuzzy match over sentences, giving meaningful semantics beyond the bare parameter name. This adequately addresses the gap for both parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb 'Find' with a resource ('transcript') and method ('substring + fuzzy over sentences'). It also specifies the project scope, distinguishing it from siblings like get_transcript (retrieval) and get_words (word-level access). The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when you need to locate occurrences of a phrase in a project's transcript. It does not explicitly name alternatives or exclusions, but the scoping note ('acts only on the explicit project_id') clarifies it is not a global search. An agent can infer appropriate usage, though explicit sibling differentiation is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
separate_musicSeparate musicAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Rebalance the ORIGINAL footage's music vs its speech — the answer to 'remove the background music but keep the talking', 'the song is too loud under his voice', 'keep only the music'. The soundtrack is separated into speech/vocals + everything-else (once per video, then cached) and each side plays at its own gain: music_gain_db=-60 mutes the music, voice_gain_db=-60 mutes the speech, -12 ducks, 0 leaves untouched (range -60..+6). This changes ONLY the original footage's own audio — added music tracks are add_music/remove_music, NOT this. Not surgical on dense mixes — check the preview before promising total silence.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| music_gain_db | No | ||
| voice_gain_db | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate mutating (readOnlyHint=false), and the description adds the crucial detail that it only affects the original footage's audio, not added tracks. It discloses caching behavior and the non-surgical nature on dense mixes, enriching the annotation context without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is information-dense yet well-organized: scope warning first, then usage intent, then parameter semantics, then exclusions and caveats. Every sentence adds value, no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers scope, usage, parameter semantics, caching, and limitations. With no output schema, it still states the call returns the project identity. Nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% (only project_id documented). The description fills the gap for music_gain_db and voice_gain_db with concrete effects (e.g., -60 mutes, -12 ducks, 0 untouched) and the valid range (-60..+6), making the parameters self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it rebalances original footage's music vs speech, with concrete examples of user requests. It explicitly distinguishes from added music tracks (add_music/remove_music), so it's unambiguous and differentiated from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use scenarios (e.g., 'remove the background music but keep the talking') and when-not-to-use (added music tracks), naming the alternative tools. Also warns about limitations on dense mixes, leaving no ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_audio_gainSet audio gainAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Change the loudness of an EXISTING music, sound-effect or voiceover item without re-adding it — THE tool for 'lower the music' / 'make the narration quieter' / 'that whoosh is too loud'. kind: 'music', 'sfx' or 'voiceover'; id from get_edl; gain_db e.g. -12.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| kind | Yes | ||
| gain_db | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false. The description adds value by clarifying the project-scoped behavior ('acts only on the explicit project_id') and the return payload ('returns the project identity with its result'). It also implies the operation is non-destructive by saying 'without re-adding it'. No contradictions with annotations; it complements them with scoping and return details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact yet information-dense. It front-loads the critical scope constraint ('PROJECT-SCOPED'), then states the purpose, usage examples, and parameter hints in logical order. Each sentence earns its place; no fluff. Could be slightly more structured (e.g., bullets) but remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 required parameters and no output schema, the description covers the key elements: project_id scope, id source, kind enum, and gain_db example. It mentions the return value ('returns the project identity with its result') but does not elaborate on the result structure or error conditions. For a relatively simple mutation tool, this is adequate, though a bit more detail on the return payload would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% (only project_id has a description). The description compensates by explaining kind ('music', 'sfx' or 'voiceover'), id (from get_edl), and gain_db (example '-12', implying decibels). It adds meaning beyond the bare schema, though units for gain_db are only implied, not explicitly stated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('change'), a precise resource ('loudness of an EXISTING music, sound-effect or voiceover item'), and explicitly differentiates from adding items ('without re-adding it'). The phrase 'THE tool for' and concrete examples ('lower the music', 'make the narration quieter') make its purpose unmistakable and distinguish it from sibling tools like set_volume or add_music.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly indicates when to use the tool via colloquial scenarios and emphasizes it operates on existing items ('without re-adding it'). It also provides the source for the id parameter ('id from get_edl'). However, it does not explicitly name alternative tools (e.g., set_volume, set_master_loudness) or state when those should be preferred, leaving some ambiguity for edge cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_caption_fixesSet caption fixesAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Edit displayed captions. Default operation=replace replaces the COMPLETE active set. append upserts by matching text and scope; clear removes all; list returns active fixes and compiled caption preview. replacements accepts [from,to] pairs or objects with from,to and optional start,end in OUTPUT seconds to target one occurrence. Word-count changes, punctuation and capitalization are supported; replacement text is exact. Audio/cuts remain unchanged. A preview is returned without video encoding.
| Name | Required | Description | Default |
|---|---|---|---|
| clear | No | ||
| operation | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| replacements | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=true, and the description adds substantial behavioral detail: project-scoped action, return of project identity, preview without encoding, audio/cuts unchanged, exact replacement text, and the effect of each operation (e.g., replace clears the entire set). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence contributes necessary information. It front-loads the scoping constraint and then logically explains operations and parameter formats. Slightly long but appropriate for the tool's complexity; no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with four parameters, multiple operations, low schema coverage, and no output schema, the description covers all necessary aspects: operations and their effects, parameter formats, scoping requirement, return behavior (preview without encoding), and non-destructive nature. An agent has enough to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% (only project_id has a description), yet the description fully explains the semantics of operation, clear, and replacements, including the accepted formats for replacements ([from,to] pairs or objects with optional start/end). This compensates completely for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Edit displayed captions') and details the operations (replace, append, clear, list), making it clear what the tool does. It also differentiates from siblings by emphasizing project-scoping and that it affects only caption text while leaving audio/cuts unchanged, distinguishing it from style or mute tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool (editing caption text) and mentions that it acts only on the explicit project_id, but it does not explicitly name alternatives or state when not to use it (e.g., for style changes use set_caption_style). The 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.
set_caption_mutesSet caption mutesAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Hide the burned spoken-word captions over specific PROGRAM-time windows, leaving them on everywhere else — for when a full-frame effect, a graphic or a text treatment would otherwise have captions burned across it. spans is the COMPLETE list of muted windows as [[start, end], ...] in program seconds; it REPLACES the existing list, and spans=[] turns every caption back on. The audio and the cut are untouched — only the burned text is hidden. Not needed for inserted media or title cards (they are never captioned to begin with).
| Name | Required | Description | Default |
|---|---|---|---|
| spans | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotentHint=true and destructiveHint=false. The description adds that spans REPLACES the existing list, spans=[] turns captions back on, and that audio and cut are untouched. It also clarifies project-scoping. These details go beyond annotations and accurately describe behavior without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is somewhat long but every sentence contributes necessary context (scope, replace behavior, when not needed). It front-loads project-scoping and then explains the mechanism. No filler or repetition, though it could be tightened slightly without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers the core behavior (hiding windows), the parameter semantics, the replace-all behavior, the reset case, the non-destructive nature, and the scope. It even mentions return (project identity) and exclusions. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50% (project_id has a description, spans does not). The description fully compensates for spans by specifying the format [[start, end], ...] in program seconds, the replace semantics, and the empty-list behavior. Project_id's schema description is also reinforced. This adds significant meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (hide burned captions), the target (over specific program-time windows), and the effect (leaving them on elsewhere). It distinguishes from siblings like set_caption_style and set_caption_fixes by focusing on muting windows, not styling or fixing captions. The verb 'hide' and resource 'captions' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says when to use: when a full-frame effect, graphic, or text treatment would have captions burned across it. It also excludes inserted media and title cards as they are never captioned. However, it does not name alternative tools or conditions that would select them, though the exclusions and context are clear enough for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_caption_styleSet caption styleAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Change how existing captions LOOK without touching their text or timing. Pass only the fields to change: 'make the captions premium/viral' -> {"style":{"preset":"clean"}} (see add_captions for the preset menu: clean/documentary/broadcast/podcast/beast/karaoke/spotlight/elegant/stacked/.../classic), 'make it red' -> {"style":{"color":"#FF0000"}}, 'center the captions' -> {"style":{"position":"middle"}}, 'bigger / more dynamic captions' -> {"style":{"size":"xl","dynamic":true}} (dynamic = legacy karaoke without a preset; presets animate on their own). highlight_color changes the accent of emphasized/spoken words; uppercase forces casing; emphasis_words (top-level arg, with a preset) replaces the emphasized keyword list. An explicit position or anchor_y locks captions there for the whole video and removes any old shot-aware placement track — use this when the user says captions must stop moving. For fine size control that the s|m|l|xl buckets can't hit pass size_scale (0.5-3.0; 1.5 = 50% bigger). Outline, shadow, backing panel, tracking and text alignment are independently editable. For transcript captions, single_line:true overrides any preset stack and guarantees one rendered row per state. Works for from_transcript and manual captions; errors helpfully if no captions exist yet.
| Name | Required | Description | Default |
|---|---|---|---|
| style | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| motion_motif | No | Active Blueprint motion motif id this event executes; never 'hold'. | |
| emphasis_words | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true and destructiveHint=false, and the description adds substantial behavioral detail: it locks captions to a position when explicit, removes old shot-aware placement, explains dynamic as 'legacy karaoke without a preset', and notes that single_line overrides preset stacking. It also warns about the error when no captions exist. This goes well beyond the annotations and gives the agent a full picture of side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence carries unique value—no filler. It is front-loaded with scope and primary function, then branches into examples and edge cases. While dense, the complexity of the tool (many style parameters) justifies the length. It could arguably be tightened, but the structure remains effective and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (nested style object, many optional fields) and lack of output schema, the description is remarkably complete. It covers usage, side effects, parameter semantics, error conditions, and points to related tools. An agent has everything needed to decide when and how to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%, but the description compensates richly. It explains the meaning of key fields: style.preset with the preset menu, highlight_color, uppercase, emphasis_words, size_scale (with range and example), single_line, and how position locks behavior. It also clarifies that emphasis_words is a top-level argument and describes the effect of dynamic. This adds significant semantic value beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear statement of scope ('PROJECT-SCOPED'), the specific action ('Change how existing captions LOOK'), and what it does NOT do ('without touching their text or timing'). It distinguishes itself from add_captions by referencing its preset menu and from other caption tools. The verb+resource combination is unambiguous and an agent can immediately tell this tool modifies visual styling rather than content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use it (change appearance, lock position, fine-tune size) and when not (text/timing). It points to add_captions for the preset menu and mentions the error case when no captions exist. It also clarifies that it works for from_transcript and manual captions, giving clear context for selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_color_gradeSet color gradeAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Apply a color-grade preset to the whole video (captions stay unstyled): vibrant, warm, cool, bw, vintage, cinematic — or 'none' to clear. THE tool when the user asks for a filter / look / mood.
| Name | Required | Description | Default |
|---|---|---|---|
| preset | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true and destructiveHint=false. The description adds valuable context beyond that: it is project-scoped (only acts on explicit project_id), it returns the project identity, and it leaves captions unstyled. It also notes 'none' clears the grade. These are non-obvious behaviors that help the agent predict side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the most critical scoping constraint. Every phrase earns its place: the scoping rule, the preset list, the exclusion of captions, and the usage claim. No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple setter with two parameters and no output schema, the description covers the key facts: scope, presets, side effects, and return hint ('returns the project identity'). It does not describe the exact return structure, but that is likely self-evident from the identity. The sibling list is large, but the 'THE tool' statement resolves ambiguity sufficiently. A small gap is the lack of any mention of error conditions or prerequisites (e.g., must have an open project), though the explicit project_id requirement mitigates this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%. The description lists the preset values (already in the enum) and adds that presets apply to the whole video while captions stay unstyled, which adds meaning to the preset parameter. For project_id, the schema itself already has a thorough description about copying the id and not guessing; the tool description reinforces this with 'PROJECT-SCOPED.' Overall, the description adds some value but does not fully compensate for the schema's partial coverage—it repeats preset values and does not explain anything about the preset semantics beyond scope.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Apply') and resource ('color-grade preset to the whole video') and enumerates the exact presets. It also explicitly differentiates itself from the many sibling filter/look tools by declaring itself 'THE tool when the user asks for a filter / look / mood.' The 'PROJECT-SCOPED' note further distinguishes it from tools that might operate on the active project implicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a strong positive usage rule: 'THE tool when the user asks for a filter / look / mood.' This tells the agent when to choose it over alternatives. However, it does not explicitly name sibling alternatives (e.g., set_grade_custom, apply_look) or state when NOT to use it, which would make the guidance even stronger. The scoping note also clarifies the expected invocation pattern.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_fadesSet fadesAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Fade from black at the start and/or to black at the end (video + audio). Seconds; 0 clears. Example: set_fades(fade_in_s=0.5, fade_out_s=0.8).
| Name | Required | Description | Default |
|---|---|---|---|
| fade_in_s | No | ||
| fade_out_s | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a mutating, idempotent, non-destructive operation. The description adds behavioral detail: it returns the project identity with the result, and it is project-scoped, meaning it affects only the specified project. It also explains the '0 clears' behavior, which is a meaningful semantic detail. It does not mention auth or rate limits, but with annotations covering safety, the added context is sufficient for a 4.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with zero wasted words. It front-loads the critical project-scoping constraint, then states the functional behavior, and ends with a concrete example. Every sentence earns its place, making it easy to parse and act on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with only 3 parameters, no output schema, and clear annotations, this description is complete. It explains the scoping rule, the parameter units and semantics, the clearing behavior, and the return value (project identity). An agent has everything needed to invoke it correctly without additional inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% (only project_id is described), so the description carries the burden for the fade parameters. It explains that fade_in_s and fade_out_s are in seconds, that 0 clears the fade, and provides a concrete example. This fully compensates for the missing schema descriptions and adds semantic clarity beyond the raw number types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: setting fade-in and fade-out durations for video and audio. It specifies the verb 'Fade', the resource (the project), and the exact behavior (start and/or end, seconds, 0 clears). It is distinct from sibling tools like set_transitions or set_speed, which handle different effects, so an agent can easily differentiate it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: it explicitly states the call is project-scoped and requires an explicit project_id, and explains the units and clearing behavior. It does not explicitly list alternative tools or when not to use it, but the function is self-explanatory for fade tasks. The lack of exclusions is a minor gap, so 4 is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_frameSet frameAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Set the output aspect ratio for every render. ratio: source, 16:9, 9:16, 1:1 or 4:5; mode: crop (default), pad (black bars) or pad_blur (blurred backdrop). focus_x/focus_y aim the CROP at the subject (fractions of the source frame, (0,0) = top-left) — without them the crop is the dead-center window, which chops an off-center speaker. For 'make it 9:16' on real footage PREFER auto_reframe, which measures the subject and sets the focus for you. Never upscales beyond the source's pixels. focus_track replaces the complete per-shot track: [{t0,t1,x,y,mode}] in SOURCE seconds. Read get_edl(frame) first; change only the desired spans. Tracks survive trims and speed changes.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| ratio | Yes | ||
| focus_x | No | ||
| focus_y | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| focus_track | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover idempotency and non-destructiveness, but the description adds significant behavioral details: 'Never upscales beyond the source's pixels', 'focus_track replaces the complete per-shot track', and 'Tracks survive trims and speed changes'. Also clarifies scoping with 'acts only on the explicit project_id'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with scope and purpose, then systematically covers parameters, usage, and behavioral caveats. Every sentence adds value; no redundancy or fluff. The structure is logical and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all parameters, usage guidance, preconditions (read get_edl first), alternative tool, and a hint about the return value ('returns the project identity with its result'). Even without an output schema, the description is sufficiently complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 17%, but the description thoroughly explains ratio values, mode meanings, focus_x/focus_y as fractions with origin, focus_track structure and units (SOURCE seconds), and the 'replaces' semantics. This fully compensates for the schema's lack of detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Set') and resource ('output aspect ratio for every render'), and explicitly contrasts with auto_reframe, distinguishing it from a key sibling. The description makes the tool's purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on when to prefer auto_reframe ('PREFER auto_reframe') and instructs the agent to read get_edl(frame) first, changing only desired spans. This gives clear usage context and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_grade_customSet grade customAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Continuous color controls on all footage, applied AFTER the preset grade (the two compose — 'cinematic but warmer' = preset cinematic + temperature 0.2): exposure -1..1, contrast and saturation accept either a SMALL SIGNED DELTA around neutral (preferred: +0.08 is a restrained lift, -0.08 a reduction, 0 clears) or an explicit final multiplier >=0.5 (1.0 is neutral; contrast max 1.6, saturation max 2.0). Never pass 0.06 intending 6% color: it is treated as +6% and stored as 1.06x. Use the explicit 'bw' preset for monochrome. Temperature -1 (cool)..1 (warm), tint -1 (green)..1 (magenta), shadows -1..1 (positive LIFTS the dark regions — the answer to 'brighten the shadows / too dark in the corners'), highlights -1..1 (negative RECOVERS bright areas). 'More light' = exposure up; 'remove/soften the shadows' = shadows up. Pass ONLY the axes to change; an axis's neutral value clears it; all axes neutral clears the whole custom grade. Captions and graphics are never graded.
| Name | Required | Description | Default |
|---|---|---|---|
| tint | No | ||
| shadows | No | ||
| contrast | No | ||
| exposure | No | ||
| highlights | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| saturation | No | ||
| temperature | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true and destructiveHint=false. The description goes beyond by explaining the project-scoped nature, the clearing semantics, the delta-vs-multiplier behavior, and the fact that captions/graphics are untouched. It also warns about the 0.06 misinterpretation. This adds significant behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Despite being long, the description is dense and well-structured. It front-loads the project-scoped caveat, then explains composition, then parameter ranges, then usage warnings, then clearing behavior, then exclusions. Every sentence adds critical value; there is no fluff. The structure makes it easy for an agent to parse the most important constraints first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters, no output schema, and no enum values, the description carries the full burden. It covers all parameter semantics, common use cases, warnings, and edge cases (clearing behavior). It even hints at the return value ('returns the project identity with its result'). For a tool of this complexity, the description is complete and self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 13% (only project_id has a description), so the description must compensate. It does so thoroughly: it defines exposure range (-1..1), contrast/saturation as either delta or multiplier with specific limits, temperature/tint ranges, and shadows/highlights meanings (positive shadows lifts dark regions, negative highlights recovers bright areas). It also explains the 0.06 misinterpretation. This fully compensates for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Continuous color controls on all footage, applied AFTER the preset grade.' It specifies the resource (footage) and the verb (set custom grade), and differentiates itself by mentioning composition with a preset grade. It also explicitly excludes captions and graphics, making the scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides extensive usage guidance: it explains how controls compose with presets, gives the monochrome alternative ('Use the explicit 'bw' preset'), warns against a common mistake ('Never pass 0.06 intending 6% color'), and maps natural language to parameters ('More light' = exposure up). It also tells the agent to pass only axes to change and clarifies clearing behavior. This exceeds the typical guidance level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_insert_windowSet insert windowAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Change which part of an already-spliced clip plays, IN PLACE — duration_s for how long it runs, clip_start_s for where in the clip it starts, rate for how FAST it plays. USE THIS instead of remove_insert + insert_media to trim or re-window a clip that is already on the timeline: removing and re-adding costs two edit versions and two renders, and the user watches their clip disappear and come back. rate (0.25-4, round 76) is THE tool for 'speed up that scene instead of cutting it': rate alone keeps the clip window and shortens the block (a 10s screen recording at rate 2 becomes a 5s scene with nothing lost, audio pitch-corrected); with duration_s the block is duration_s long and consumes duration_s*rate of clip. TO SPLIT a spliced clip in two: shorten it here to the first part, then insert_media the same asset_key at the SAME at_output_s with clip_start_s set to where the first part ended — the two halves play in the order you created them. crop=[x0,y0,x1,y1] (round 77) shows ONE REGION of the clip as the whole scene, letterboxed (black bars) — THE tool for 'show the full timeline strip/panel, nothing else, static': a zoom's 16:9 window can never hold a wide UI strip without also holding what sits above it, so crop the insert instead and leave the zoom wide over it. Fractions of the CLIP's frame, read off a look_at_asset grid; pass 'full' to clear. mute=true (round 78) silences the scene's OWN audio — THE answer to 'mute that clip' / 'mute all scenes' (set_volume only reaches the main footage; muting every scene = set_volume on the kept spans + mute on each video insert). mute=false brings it back. fit (round 79) sets how THIS scene maps onto the canvas: 'pad' shows the WHOLE picture letterboxed on black — THE fix for a portrait image or clip that the default cover-crop beheads ('the image looks corrupted / cut off') — 'pad_blur' fits it over a blurred backdrop, 'crop' forces the cover-crop, 'auto' clears the override. rotation repairs THIS scene clockwise by 0/90/180/270 degrees — use it for one sideways phone clip instead of a whole-program custom filter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fit | No | ||
| crop | No | ||
| mute | No | ||
| rate | No | ||
| rotation | No | ||
| duration_s | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| clip_start_s | No | ||
| motion_motif | No | Active Blueprint motion motif id this event executes; never 'hold'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true and destructiveHint=false, but the description adds substantial behavioral detail: project-scoped return, in-place mutation, rate's effect on duration and pitch, crop's letterboxing, mute's scope, fit modes, and rotation. It also clarifies what mute does not cover (main footage) and how to achieve full-scene muting. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Though long, every sentence earns its place. It is front-loaded with the project-scoped warning and the core purpose. It is organized by parameter with clear round-number references and practical examples. The density is justified for a tool with 10 parameters and many alternative workflows.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity and lack of output schema, the description covers everything an agent needs: scope, all parameters, when to use vs alternatives, splitting workflow, and what the return value is. No missing behavioral or usage information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 20%, so the description carries the burden. It explains duration_s, clip_start_s, rate, crop, mute, fit, and rotation with concrete examples and edge cases (e.g., rate with duration_s consumption, crop fractions from grid, fit 'pad' for portrait). This is far beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Change which part of an already-spliced clip plays') and the resource ('insert window'), and explicitly contrasts it with remove_insert + insert_media. It is immediately clear what this tool does and how it differs from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says 'USE THIS instead of remove_insert + insert_media' for trimming/re-windowing, explains why (cost, user experience), and gives a concrete workflow for splitting clips. It also routes rate/crop/mute/fit to specific user intents and references sibling tools like set_volume and insert_media.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_master_loudnessMaster the mix to a loudness targetAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. enabled=true normalizes the FINAL MIX to -14 LUFS with a codec-safe -2 dBTP target plus a latency-compensated hard ceiling on preview AND export — the fix for 'the export sounds quiet on TikTok/YouTube'. It changes loudness, not the voice/music/sfx balance. false removes mastering.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotent and non-destructive. The description adds substantial context beyond that: it explains the exact effect (enabled=true vs false), the latency-compensated hard ceiling, and that it returns the project identity. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with 'PROJECT-SCOPED' and packs essential details into two sentences. It could be slightly more concise (the technical specifics about LUFS and dBTP are dense) but every sentence earns its place by clarifying behavior and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description mentions that the call returns the project identity with its result, which covers the return value since no output schema exists. It also explains the effect on both preview and export. It omits any mention of error conditions or prerequisites beyond the project_id, but for a boolean toggle with a scoped project, this is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (only project_id has a description). The description compensates for the undocumented 'enabled' parameter by clearly explaining its true/false behavior and its effect on the mix. For project_id, the schema already explains the required scope, so the description's reiteration is redundant but harmless.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('normalizes the FINAL MIX') and resource (the project's loudness), with a concrete target (-14 LUFS, -2 dBTP). It distinguishes itself from siblings by explicitly scoping to the final mix and noting it does not affect the voice/music/sfx balance, separating it from gain/volume tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a concrete use case ('the fix for the export sounds quiet on TikTok/YouTube') and clarifies that it changes loudness, not balance, which implicitly warns against using it for mix balancing. However, it does not name alternative tools or explicitly state when not to use it, so it leaves some inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_music_fitSet music fitAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Retime or refit EXISTING music in place — 'start the music later', 'let it run to the end', 'fade it out', 'loop it', 'stop it ducking'. Anything you omit is left alone. duck_mode: 'smooth' = a sidechain dip that follows the voice and swells back in the gaps; 'step' = the legacy hard -12dB duck. Use this instead of remove+re-add, which loses the other settings. For loudness use set_audio_gain.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| end | No | ||
| duck | No | ||
| loop | No | ||
| start | No | ||
| offset_s | No | ||
| duck_mode | No | ||
| fade_in_s | No | ||
| fade_out_s | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false, destructiveHint=false, idempotentHint=true. The description adds behavior beyond these: it explains that omitted fields are untouched, details the two duck modes, and mentions it returns the project identity. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is ~150 words and front-loaded with the project scope. Each sentence adds value: scope, action, examples, duck_mode semantics, and alternatives. It is structured and readable without excessive verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters and no output schema, the description covers the main behavioral aspects: it states return value (project identity), explains duck modes, and clarifies that omitted fields are preserved. Gaps remain around offset_s and units, but overall it is adequate for a non-destructive, idempotent edit tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 10% schema coverage, the description must compensate. It explains several parameters implicitly via examples (start, end, loop, duck, fade_out) and explicitly describes duck_mode. However, parameters like offset_s, fade_in_s, and id are not explained, and units for numeric parameters are not stated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool modifies existing music in place, with examples like 'start the music later' and 'fade it out'. It distinguishes itself from adding/removing music and from loudness adjustment via set_audio_gain, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises using this instead of remove+re-add (which loses settings) and directs loudness tasks to set_audio_gain. It also notes that omitted fields are left alone, giving clear context for when to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_overlay_motionSet overlay motionAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Author or replace x/y/scale/rotation/opacity on an EXISTING visual overlay using scalars or element-local keyframes. This is the general motion-graphics primitive for logos, images and PIP clips: one coherent move can drift, push, overshoot, rotate and fade without stacking named presets. Keyframe t=0 is the overlay's own start, not program time. A scalar makes that property static. Full-frame B-roll covers ignore x/y/scale; screen takeovers own their tracked camera geometry and reject ordinary curves.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| motion | Yes | Element-local visual-overlay curves. t is seconds from the overlay's own start; x/y and scale are frame fractions, rotation is degrees, opacity is 0..1. | |
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| motion_motif | No | Active Blueprint motion motif id this event executes; never 'hold'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate mutation (readOnlyHint=false), idempotency, and non-destructive nature. The description adds key behavioral context: keyframe t=0 is overlay-own start (not program time), scalar means static, and it returns the project identity with the result. It also notes scope is project-scoped and not inferred from active pointer. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-structured, front-loading the project-scope and core action. Each sentence contributes (scope, what it does, keyframe timing, scalar meaning, exclusions). It is longer than necessary but not verbose, and the information density justifies the length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a nested motion object and no output schema, the description explains the motion structure thoroughly, including units, keyframe format, and edge cases (full-frame B-roll, screen takeovers). It also indicates the return value (project identity with result) and how to obtain the project_id. Minor omission: no explicit mention of error conditions or pagination, but these are not critical for this call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 75% of parameters (id lacks description). The description adds crucial semantic details for the motion object: x/y/scale are frame fractions, rotation in degrees, opacity 0..1, and keyframe t is seconds from overlay start. It also clarifies that a scalar makes a property static, adding meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Author or replace') on an EXISTING visual overlay for x/y/scale/rotation/opacity, and distinguishes it as the general motion-graphics primitive versus stacking named presets. It also clearly scopes the call to a specific project_id, making it unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use it (general motion for logos, images, PIP clips) and when not (full-frame B-roll covers ignore x/y/scale; screen takeovers reject ordinary curves). However, it does not name alternative tools explicitly, only implies them via exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_screen_frameSet screen frameAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. THE tool for 'that floating rounded window on a gradient' look — the standard treatment for a screen recording or app demo. The finished picture is inset, its corners rounded, a soft shadow dropped under it, and it floats on a solid colour or a two-colour gradient. inset 0.02-0.35 (0.08 default — how much room the backdrop gets); radius 0-0.25 as a fraction of the picture's short side; shadow 0-1; background/background2 are #RRGGBB (pass background2 for a gradient, or 'none' to go flat) with direction vertical/horizontal/diagonal/radial — the same gradient renderer add_color_screen uses, so a backdrop can match an interstitial exactly. Calling it again edits the settings rather than stacking. It applies to the WHOLE finished picture (captions and overlays scale with it, because they are inside the window) and changes no timing at all. Remove with remove_screen_frame.
| Name | Required | Description | Default |
|---|---|---|---|
| inset | No | ||
| radius | No | ||
| shadow | No | ||
| direction | No | ||
| background | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| background2 | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true, and the description reinforces this with 'Calling it again edits the settings rather than stacking.' It adds meaningful behavioral details: it is project-scoped, applies to the whole picture (captions and overlays scale), changes no timing, and returns the project identity. These go beyond the annotation hints, though it doesn't discuss side effects like permissions or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is lengthy but each sentence adds value: scope, visual intent, parameter ranges, behavior on re-invocation, effect on overlays, and removal. It is front-loaded with the project-scoped warning and the core purpose, and the parameter details are logically grouped. Slightly overlong, but justified given the parameter count and complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 7 parameters and no output schema, the description covers the essential context: what it does, parameter semantics, idempotent behavior, scope, and relationship to remove_screen_frame. It even mentions the return value ('returns the project identity'). It doesn't cover error conditions or prerequisite conditions beyond the project_id, but given the available information, it is substantially complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 14% (only project_id has a description), so the description carries the full burden for the other six parameters. It provides concrete ranges (inset 0.02-0.35 with default 0.08, radius 0-0.25 as a fraction, shadow 0-1), color format (#RRGGBB), and the direction enum options. This is far more than the schema provides, effectively compensating for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'PROJECT-SCOPED' and then defines the exact visual treatment: 'the standard treatment for a screen recording or app demo' with inset, rounded corners, shadow, and gradient backdrop. It distinguishes itself from generic frame tools by naming the specific aesthetic, and even ties its gradient renderer to add_color_screen, providing a clear identity among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly frames itself as 'THE tool for' that look, indicating when to use it. It also explains that calling again edits rather than stacks, and how to remove it with remove_screen_frame. However, it doesn't explicitly contrast with similar tools like set_frame or add_screen_takeover, so the exclusion guidance is partial.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_speedSet speedAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Speed up or slow down a SOURCE-time range of the main video (like set_volume, start/end are SOURCE seconds — the ramp stays on its footage through later cuts, and music/overlays/zooms/sfx are re-anchored automatically). factor 0.25-4.0: 2.0 = double speed, 0.5 = half; audio keeps its pitch. Slow motion below 0.6x visibly steps (frames are duplicated, not synthesized) — the tool warns; prefer 0.6-0.8x. A span that overlaps an existing one REPLACES it (disclosed). THE tool for 'speed up the boring part' / 'slow-mo that moment'.
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | ||
| start | Yes | ||
| factor | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| motion_motif | No | Active Blueprint motion motif id this event executes; never 'hold'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are sparse (idempotentHint=true, destructiveHint=false), so the description carries the burden and delivers richly: PROJECT-SCOPED execution, SOURCE-time seconds that persist through later cuts, automatic re-anchoring of music/overlays/zooms/sfx, audio pitch preservation, frame-duplication stepping below 0.6x, and disclosed REPLACE-onspan-overlap semantics. Nothing contradicts the annotations; the idempotentHint is consistent with a replace-on-overlap speed setting, and the replacement is disclosed rather than hidden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but lean: scope is front-loaded in caps, and every sentence delivers a distinct fact (source-time semantics, factor semantics, audio behavior, quality warning, replacement, use case). There is minor redundancy with the schema's project_id description, but no filler. The length is justified by the number of counterintuitive behaviors an agent must know before calling.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter mutation tool with no output schema, the description covers the essentials: execution scope, input semantics, factor constraints, side effects (re-anchoring, replacement), and even the return shape ('returns the project identity with its result'). Minor gaps remain — behavior on invalid ranges (start >= end) and how motion_motif interacts with the speed event — but motion_motif is documented in the schema, so the total package is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40%, and the description compensates for the undocumented start/end/factor: it defines start/end as SOURCE seconds and gives factor a full semantic spec (0.25-4.0 range, 2.0=double, 0.5=half, pitch preservation, preferred band). This adds meaning the bare 'number' types in the schema omit. project_id and motion_motif are left to the schema, which already documents them adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource+scope: 'Speed up or slow down a SOURCE-time range of the main video', which distinguishes it from siblings like set_volume (audio) and remove_speed (removal). It closes with 'THE tool for "speed up the boring part" / "slow-mo that moment"', giving an agent a crisp retrieval cue. The analogy 'like set_volume' reinforces what kind of operation it is without conflating the two.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear usage context: natural-language intents ('speed up the boring part', 'slow-mo that moment') and concrete quality guidance ('prefer 0.6-0.8x' slow motion, warned visual stepping below 0.6x). It names set_volume as a behavioral analog, which helps calibration. However, it does not explicitly state when-not-to-use or name mutually exclusive alternatives (e.g., remove_speed for undo), so it stops short of a full exclusion contract.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_text_motionSet text motionAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Set or replace coherent x/y/scale/rotation/opacity keyframes on an EXISTING ordinary text item. Curves use LOCAL seconds from that text's start, so moving the text window keeps its choreography. This replaces named entrance/exit animation with one authored motion system. Pass motion={} (or omit it) to clear the explicit curve and leave the text static. Subject-matted text cannot move.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| motion | No | Element-local motion curves. t is seconds from this text's own start; x/y are frame fractions, scale is relative, rotation is degrees, opacity is 0..1. | |
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| motion_motif | No | Active Blueprint motion motif id this event executes; never 'hold'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond annotations (readOnlyHint false, idempotentHint true) by detailing mutation behavior, the local-seconds coordinate system, the replacement of entrance/exit animations, the clearing mechanism, and the limitation on subject-matted text. It also notes the return of project identity, which is not in the schema. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and front-loaded with the project-scoped warning, then the core action, followed by important details. Every sentence contributes to usage, behavior, or constraints. It's slightly long but not verbose, and the structure guides the agent from scope to action to caveats.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description covers all critical aspects: target object type, scoping, coordinate semantics, replacement behavior, clearing behavior, and a key limitation. It also mentions the return of project identity, which is essential for chaining. An agent has enough context to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75% and already includes a detailed description of the motion parameter. The description adds valuable semantics: explains that curves use LOCAL seconds, which affects how timing works, and clarifies that passing an empty object clears the curve. This exceeds the schema's coverage, so it earns above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Set or replace') and the resource ('coherent x/y/scale/rotation/opacity keyframes on an EXISTING ordinary text item'). It distinguishes itself from sibling tools like set_overlay_motion by explicitly targeting text items and mentioning it replaces named entrance/exit animation. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear usage context: acts on existing text, is project-scoped, and replaces named animations. It also gives an explicit instruction for clearing motion (pass motion={} or omit). However, it doesn't explicitly contrast with alternative motion tools like set_overlay_motion, and the only exclusion mentioned is subject-matted text. Overall, the guidance is strong but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_transitionsSet transitionsAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Transitions at SCENE CHANGES — junctions where the footage actually changes shot, or where an insert (b-roll, title card, generated clip) splices in. All duration-preserving junction effects (footage never overlaps, timing never changes). IMPORTANT — after cut_silences a talking-head video has one junction per removed pause, and nearly all of them are JUMP CUTS inside one continuous shot: same framing, same subject, the speaker's head half a word further along. A jump cut works by being invisible. Putting a whip or a dip on each one fires a full-screen effect every couple of seconds through footage that never changed scene, and it reads as broken — a real user shipped 45 whips through one continuous shot and said so. scope defaults to 'scene' and handles this for you; the result tells you how many junctions it actually landed on and how many it skipped, so report THAT number, not the cut count. Pass scope='every_cut' whenever that stronger treatment serves the edit. Styles: 'dip_black' = quick dip through black (calm, universal); 'dip_white' = soft white fade-through; 'whip_left'/'whip_right' = fast directional slide with motion blur (energetic vlogs/reels); 'zoom_punch' = accelerating push through the cut (hype, sports); 'glitch' = RGB-split/noise burst (tech, gaming); 'flash' = additive white pop peaking ON the cut (beat-synced edits). duration_s 0.1-1.5 (default 0.3; keep whip/flash short, 0.15-0.4). 'none' removes them (hard cuts again). True crossfades (overlapping footage) are NOT supported — offer one of these instead and say so.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | 'scene' (default) = only where the footage changes shot or an insert splices in. 'every_cut' = every junction including silence-removal jump cuts; use it whenever that is the intended treatment. | |
| style | Yes | ||
| duration_s | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| motion_motif | No | Active Blueprint motion motif id this event executes; never 'hold'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, it discloses critical behavioral traits: project-scoping via project_id, duration-preserving semantics (no overlap or timing change), the default scope behavior, the result's landed/skipped counts, the project identity return, and the unsupported crossfade path. The '45 whips' anecdote adds operational context. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-structured and front-loaded: scoping first, then semantics, then the critical jump-cut warning, style catalog, duration guidance, and unsupported operations. There is no filler; even the anecdote carries decision-relevant context. It could be trimmed, but the density is justified by the domain complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 5 parameters, no output schema, and subtle scope semantics, the description is remarkably complete. It covers project-scoping, style selection, duration constraints, removal via 'none', the landed/skipped result reporting, and the unsupported crossfade case. An agent has the context needed to invoke it correctly and report back accurately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60%, leaving style and duration_s undocumented in the schema. The description compensates by explaining each style's visual effect, duration range with default and style-specific recommendations, and 'none' removal semantics. It reinforces the scope parameter and references the project identity return. It doesn't add detail for motion_motif, but that param has a schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's function: applying duration-preserving transition effects at specific junction types (scene changes and inserts), with an explicit catalog of styles. It distinguishes itself from the many set_* siblings by focusing on junction categories and scope. The exact 'set' verb is implied rather than stated up front, but the meaning is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: default to scope='scene', pass scope='every_cut' deliberately, and report the landed/skipped junction counts rather than cut count. It warns of the concrete failure mode with jump cuts after cut_silences and explicitly states that crossfades are unsupported, so the agent knows to offer alternatives. This is model guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_vector_graphicSet vector graphicAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Patch an existing vector graphic by id: its kind, program window, geometry, palette, progress value, or general motion. Pass motion={} to clear keyframes. This modifies the existing layer instead of stacking a duplicate.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | ||
| y | No | ||
| id | Yes | ||
| end | No | ||
| kind | No | ||
| color | No | ||
| start | No | ||
| value | No | ||
| width | No | ||
| height | No | ||
| motion | No | Element-local motion curves. t is seconds from this text's own start; x/y are frame fractions, scale is relative, rotation is degrees, opacity is 0..1. | |
| opacity | No | ||
| rounding | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| motion_motif | No | Active Blueprint motion motif id this event executes; never 'hold'. | |
| stroke_color | No | ||
| stroke_width | No | ||
| background_color | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context beyond annotations: it is PROJECT-SCOPED, returns the project identity, patches in place (modifies existing layer), and includes a specific behavior (Pass motion={} to clear keyframes). Annotations indicate idempotentHint=true and destructiveHint=false, which align with the modification semantics. No contradiction found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the project-scoped caveat. It is concise and to the point, with no fluff. It efficiently conveys the core purpose and a key behavioral detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 18 parameters and a nested motion object, the description is too sparse. It doesn't explain the motion structure, the meaning of many parameters, or the return value beyond a vague hint. No output schema exists, so the description should provide more guidance on expected results and parameter usage. The tool is complex, and the description leaves significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 17% (very low), and the description only mentions a few parameter groups (kind, geometry, palette, progress, motion) without detailing individual fields. It does not explain many parameters like rounding, stroke_width, opacity, etc. The motion parameter is touched upon via the keyframe-clearing note, but the nested structure is not elaborated. The description fails to compensate for the schema's lack of coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Patch' and the resource 'an existing vector graphic by id', listing the specific aspects (kind, program window, geometry, palette, progress value, general motion) that can be modified. It explicitly distinguishes itself from stacking a duplicate, which differentiates it from add_vector_graphic. This is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case: modify an existing vector graphic rather than add a new one. It explicitly notes 'This modifies the existing layer instead of stacking a duplicate,' which contrasts with the add sibling. However, it doesn't explicitly name add_vector_graphic or state when not to use it, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_volumeSet volumeAIdempotentInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Volume automation on the ORIGINAL footage's audio (the speaker) over a SOURCE-time span. NOT for music or voiceover loudness — use set_audio_gain for those.
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | ||
| start | Yes | ||
| gain_db | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry idempotentHint=true and destructiveHint=false. The description adds genuine behavioral context beyond those: the call is project-scoped, acts only on the explicit project_id, and 'returns the project identity with its result.' No contradiction with annotations, and it clarifies the return behavior which the annotations do not cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with zero filler. The scoping warning is front-loaded before the purpose, and the exclusion/alternative is last. Every sentence earns its place and the most important operational constraint appears first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must explain the return value; it does ('returns the project identity with its result'). Scope and the alternative tool are covered. But for a 4-parameter tool with 25% schema coverage, the missing unit semantics for start, end, and gain_db leave an agent guessing at invocation values, so it is not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% (project_id alone is documented). The description partially compensates by implying start/end are SOURCE-time span boundaries and gain_db drives the volume automation, and it reinforces project_id's immutable-scope role. However, it never specifies units (seconds vs frames for start/end; whether gain_db is decibels or a multiplier), leaving the three undocumented parameters under-explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource-scope pattern: 'Volume automation on the ORIGINAL footage's audio (the speaker) over a SOURCE-time span.' It explicitly carves out the domain (speaker audio on source footage) and names what it is NOT (music/voiceover loudness), clearly distinguishing it from the sibling set_audio_gain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit exclusion with a named alternative: 'NOT for music or voiceover loudness — use set_audio_gain for those.' It also states the project-scoped constraint up front, telling the agent it must pass an explicit project_id. This is direct routing guidance with no inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shorts_statusCheck podcast shorts progressARead-onlyInspect
Read an explicit project's Podcast to Shorts progress, planner job, generated child project IDs, edit versions, and final-render states. Safe to poll while clips are being built. If project_id names a generated short, this reports its parent run and preserves that explicit child identity in the answer.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, so the description adds value beyond them by confirming poll-safety and by disclosing the child-short behavior: reporting the parent run while preserving the explicit child identity. This contextual trait is not inferrable from annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the primary purpose, followed by poll safety and the identity edge case. Every sentence contributes useful information without repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lists the key pieces of information returned (progress, planner job, child project IDs, edit versions, final-render states) and covers the important safety and edge-case behaviors. Given no output schema, this is sufficient for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate. It makes clear that project_id refers to 'an explicit project' and explains the edge case of a generated short ID. Although it doesn't explain where to obtain the ID or specify formatting, a single required integer parameter named project_id is adequately disambiguated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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: 'Read an explicit project's Podcast to Shorts progress...' and enumerates exactly what is returned (planner job, child project IDs, edit versions, render states). It also clarifies the special case where project_id is a generated short, distinguishing it from siblings like make_shorts or project_state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Safe to poll while clips are being built' gives a clear usage context and signals this is a read/status operation. The description does not explicitly name alternatives or state when not to use it, but the context is sufficiently clear for an agent to know it can be called during a build process.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
showcase_demoShowcase demoAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. PLACE A SCREEN RECORDING AND CUT IT LIKE A PRODUCT VIDEO — one call. Splices the clip into the edit, then puts a zoom on each run of POSITIONED clicks. Click sounds are optional; choose them when they serve the edit. Works on ANY video clip, not just a record_website_demo capture. On a capture I made, the event track is exact: the frame pushes in and TRAVELS between the buttons, with a soft pop on each page change and a swipe under each scroll. On a recording the USER made, pass click_times=[...] (seconds into the clip) to supply timing. Clicks cannot be located from timing alone, so no zoom is invented without a position. With neither, it still places the clip and tells you plainly that nothing was synced. at_output_s defaults to the END of the current edit; zoom_strength 0.05-4.5 (0.4 default — screen text needs a real push to read); set zooms=false to place it plainly; click_sounds=true is opt-in. Follow up with add_zoom_path to make the frame travel on a user recording, and enhance_cursor if the pointer is too small to follow.
| Name | Required | Description | Default |
|---|---|---|---|
| zooms | No | ||
| asset_key | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| at_output_s | No | ||
| click_times | No | ||
| click_sounds | No | ||
| zoom_strength | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only convey readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false — a bare mutation profile. The description carries the full behavioral burden and exceeds it: it reveals the PROJECT-SCOPED guarantee, the degraded-but-explicit fallback ('With neither, it still places the clip and tells you plainly that nothing was synced'), the constraint that no zoom is invented without a position, and precise default behaviors (at_output_s at END, zoom_strength 0.4). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long, but every sentence carries load-bearing information for a 7-parameter, no-output-schema tool. It is front-loaded with the PROJECT-SCOPED constraint, then flows logically through purpose, behavioral specifics, parameter guidance, and follow-up tools. The only deduction is length — it is at the upper edge of density and could benefit from tighter phrasing, though no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating 7-param tool with no output schema and 14% schema coverage, the description is thorough: scope, input-type handling, defaults, edge cases, and follow-up tools are all covered. The one gap is that the return value is only glossed as 'the project identity with its result' without detailing its structure or whether the edit state is the full return. Minor against an otherwise complete picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 14% (solely project_id has a description), so the description must compensate — and it does exhaustively. It gives units and format for click_times ('seconds into the clip'), a numeric range plus rationale for zoom_strength ('0.05-4.5 (0.4 default — screen text needs a real push to read)'), and semantic intent for zooms and click_sounds ('opt-in'). It even explains the failure mode of timing without position, which the schema cannot express.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise verb-resource pair: 'PLACE A SCREEN RECORDING AND CUT IT LIKE A PRODUCT VIDEO — one call. Splices the clip into the edit, then puts a zoom on each run of POSITIONED clicks.' This is specific and distinguishes it from siblings like add_zoom and add_zoom_path, which perform single zoom operations. It also clarifies scope with 'Works on ANY video clip, not just a record_website_demo capture,' removing any ambiguity about applicable inputs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names alternatives and the conditions that select them: 'Follow up with add_zoom_path to make the frame travel on a user recording, and enhance_cursor if the pointer is too small to follow.' It also distinguishes when click_times is needed ('On a recording the USER made') versus when it isn't ('On a capture I made'), and explains the zooms=false mode. Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_media_sequenceStart media sequenceAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Start a NEW media-only sequence from one uploaded video clip or image, replacing the current programme in ONE valid append-only EDL write. Use this when the requested story should be assembled from uploaded assets instead of the project's main video. This is the safe first operation in an atomic recipe: it never creates an invalid empty timeline. Add later scenes with insert_media. Every earlier EDL version remains recoverable. duration_s and clip_start_s select a video window; motion/fit match insert_media.
| Name | Required | Description | Default |
|---|---|---|---|
| fit | No | ||
| motion | No | ||
| asset_key | Yes | ||
| duration_s | No | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| clip_start_s | No | ||
| motion_motif | No | Active Blueprint motion motif id this event executes; never 'hold'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide only readOnlyHint=false and destructiveHint=false, so the description carries the burden. It discloses that the call 'replacing the current programme' (a mutation) but assures 'Every earlier EDL version remains recoverable' and 'it never creates an invalid empty timeline.' It also notes the atomic append-only write. This goes beyond annotations and sets expectations for side effects and safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than average but every sentence earns its place: scoping note, purpose, usage trigger, safety guarantee, recoverability, and parameter hints. It is front-loaded with the critical 'PROJECT-SCOPED' and the core action, and it avoids fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters and no output schema, the description covers the core purpose, usage context, and some parameter semantics, but it omits details like the exact return format (only 'returns the project identity with its result'), error conditions, and prerequisites beyond project_id (which is in schema). It is adequate but not exhaustive for a complex mutation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (29%), so the description must compensate. It does add meaning for duration_s and clip_start_s ('select a video window') and references motion/fit to insert_media for consistency. However, it does not explain asset_key (though implied by 'uploaded video clip or image') or motion_motif beyond the schema's own description. It partially fills the gap but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action: 'Start a NEW media-only sequence from one uploaded video clip or image, replacing the current programme in ONE valid append-only EDL write.' It clearly identifies the resource (a media sequence) and distinguishes it from the project's main video, and names the sibling 'insert_media' for later scenes, so an agent can differentiate it without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit usage condition: 'Use this when the requested story should be assembled from uploaded assets instead of the project's main video.' It also positions it as 'the safe first operation in an atomic recipe' and points to insert_media for later scenes. It lacks an explicit 'when not to use' but the context is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_emphasisSuggest emphasisARead-onlyInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. READ: candidate emphasis words from the REAL transcript — the most vocally stressed words (measured), words with digits, and rare/distinctive words — as a verbatim list to pass to add_captions / set_caption_style emphasis_words.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds value by detailing the read behavior (returns project identity with result) and the types of words returned. It also explicitly states it reads from the REAL transcript, providing transparency beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence but packs essential information: scope, action, criteria, and output destination. It is front-loaded with 'PROJECT-SCOPED' and 'READ'. It is concise yet complete for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter, no output schema, and annotations covering safety, the description sufficiently explains what the tool returns and how to use it. It even names the downstream tools, making it complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the parameter description already explains project_id as immutable scope and how to obtain it. The tool description reinforces this with 'PROJECT-SCOPED' but does not add new semantic meaning beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear purpose: it reads candidate emphasis words from the transcript and returns them as a verbatim list. It specifies the resource (REAL transcript), the criteria (vocally stressed, digits, rare/distinctive), and the downstream use (add_captions/set_caption_style). This is specific and distinguishes it from other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: when you need emphasis words to pass to captioning tools. It does not explicitly mention alternatives or when not to use it, but the context is clear enough. It also notes project-scoping, which helps the agent avoid misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swap_musicSwap musicAInspect
PROJECT-SCOPED: this call acts only on the explicit project_id and returns the project identity with its result. Replace the TRACK of an existing music item while keeping its position, level and fit — THE tool for 'use a different song' / 'try something more upbeat'. id from get_edl; storage_key as for add_music.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| project_id | Yes | Required immutable scope for this call. Copy the id from list_projects/open_project/project_state; the active-project pointer is never used to guess. | |
| storage_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=false and destructiveHint=false, so the mutation nature is known. The description adds valuable context: it preserves position, level, and fit, and it returns the project identity with the result. This goes beyond the annotations and informs the agent of key side effects. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and every sentence earns its place: scope, action, use case, and parameter sourcing. It is front-loaded with the project scope and avoids redundant phrasing. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter mutation with no output schema, the description covers the essential aspects: scope, action, preservation behavior, and return. It lacks explicit error handling or edge-case guidance, but these are often unnecessary for a straightforward swap. The description is adequate for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (project_id has a description). The description compensates partially by specifying sources: 'id from get_edl' and 'storage_key as for add_music', but it does not define the semantic meaning of id (e.g., identifies the music item to swap) or storage_key (e.g., new track key). The sourcing hints help but leave some ambiguity, so a mid-range score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Replace') and resource ('the TRACK of an existing music item'), and adds a clear scope ('PROJECT-SCOPED') that distinguishes it from generic operations. It also explicitly frames the use case ('THE tool for 'use a different song' / 'try something more upbeat''), which differentiates it from siblings like add_music or remove_music.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states when to use the tool: 'Replace the TRACK of an existing music item' and 'THE tool for 'use a different song' / 'try something more upbeat''. It also provides parameter sourcing guidance ('id from get_edl; storage_key as for add_music'), which hints at alternatives (add_music) but doesn't explicitly say when not to use this tool. That prevents a 5, but the context is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_finishFinish an uploadAInspect
Finish an upload once every byte is in storage. For a main video this starts the analysis (transcript, shots, silences) — poll index_status until it is done.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | ||
| role | No | Optional and valid only with kind='clip'. Marks a reference-only Shorts style clip. | |
| parts | No | Multipart uploads only: [{part_number, etag}] in order | |
| filename | No | ||
| upload_id | No | Multipart uploads only | |
| duration_s | No | Optional locally probed media duration in seconds. | |
| project_id | Yes | ||
| storage_key | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no safety hints (readOnlyHint=false, destructiveHint=false, idempotentHint=false), so the description must carry behavioral context. It discloses the key side effect for main videos (starts transcript, shots, silences analysis) and suggests polling. However, it omits other behaviors such as idempotency (whether calling twice is safe), failure modes, or behavior for non-main video kinds. This is a partial disclosure, not a full one.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The primary condition and action are front-loaded, and the side effect and polling instruction follow naturally. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter tool with no output schema, the description covers the main flow (finish upload, start analysis) but leaves many details unaddressed: multipart upload handling (parts, upload_id), the role parameter for clips, the meaning of kind values beyond 'main video', and what happens for non-video kinds. The reference to index_status is helpful but incomplete overall.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%, with several parameters (kind, filename, project_id, storage_key) lacking descriptions. The tool description adds no parameter-level detail, so it doesn't compensate for the missing schema descriptions. For example, it never clarifies that storage_key is the key returned by upload_start, or how kind affects behavior. This leaves agents guessing on required parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Finish an upload once every byte is in storage.' It identifies the specific action (finish) and resource (upload), and distinguishes its side effect (starts analysis) from other upload-related tools like upload_start. It also names the follow-up sibling tool (index_status), which helps an agent understand the workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear precondition ('once every byte is in storage') and directs the agent to poll index_status after completion. It implies the tool is used after upload_start and all bytes are stored, but it doesn't explicitly mention alternatives or when not to use it. The context is sufficient for most cases, though it could be more explicit about ordering relative to upload_start.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_startStart uploading a local fileAInspect
Begin uploading a LOCAL file into an explicit project. Returns presigned URL(s) you upload the bytes to yourself (curl), then call upload_finish. kind: 'original' the main video, 'clip' b-roll, 'music' audio, 'image' a still. A clip may instead be marked role='shorts_reference' for reference-only Shorts style analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | ||
| role | No | Optional and valid only with kind='clip'. Makes the upload reference-only Shorts style input, not placeable media. | |
| filename | Yes | Name with extension, e.g. talk.mp4 | |
| duration_s | No | Optional locally probed media duration in seconds; repeated in the returned upload_finish contract. | |
| project_id | Yes | ||
| size_bytes | Yes | Exact size of the local file |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With all annotations false, the description carries full behavioral disclosure. It reveals that the tool returns presigned URLs, that the agent must upload bytes itself, and that a subsequent upload_finish call is required. It also explains kind and role options. This is substantive behavioral context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero filler. The first sentence states the purpose and the presigned-URL flow; the second clarifies kind and role. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-phase upload initiation, the description covers the essential workflow, return behavior, and kind/role semantics. It does not mention error conditions or prerequisites (e.g., that the project must already exist), but given sibling tools like create_project and no output schema, it provides sufficient context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, so the description compensates for the undocumented 'kind' parameter by explaining each enum value ('original', 'clip', 'music', 'image') and the conditional 'role' ('shorts_reference'). This adds meaning beyond the schema for the most semantically rich parameters. Other parameters (filename, size_bytes, duration_s) have schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Begin uploading'), the resource ('LOCAL file into an explicit project'), and the multi-step flow (returns presigned URLs, upload, call upload_finish). It also explains kind and role semantics, distinguishing this tool from upload_finish and other upload-related siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the two-step workflow (get presigned URLs, upload, then call upload_finish) and explicitly notes 'LOCAL file' to set scope. However, it does not explicitly name alternatives for remote uploads (e.g., fetch_url or download_url), so the 'when not to use' guidance is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wait_for_jobWait for a running jobARead-onlyInspect
Wait for a background job (a render, or a tool call that outran its reply) and return its result. Safe to call repeatedly — each call waits a bounded time and tells you whether it is still running.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true and destructiveHint=false, indicating safe read-only behavior. The description adds context beyond annotations: it waits a bounded time and returns status. It does not contradict annotations. It does not disclose failure behavior or return format details, but for a simple wait operation this is adequate given the minimal annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no redundant information. The purpose is front-loaded, and the repeated-call safety note is directly relevant. Every phrase adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description should explain what is returned. It says 'return its result' and 'tells you whether it is still running', which partially describes the output. However, it lacks specifics on return format, error handling, or what happens if the job never finishes. For a simple one-parameter tool, it is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate by explaining the job_id parameter. The description mentions 'background job' but does not explicitly say that job_id identifies the job. The parameter is left to inference. This is a notable gap for a tool with a single required parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: waiting for a background job and returning its result. It provides concrete examples (render, tool call) and distinguishes itself from the many sibling tools by being the only wait-related operation. The verb 'wait for' and resource 'background job' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says it is 'safe to call repeatedly' and that each call 'waits a bounded time and tells you whether it is still running', giving clear guidance on repeated use. It implies usage after starting a background job, and since no sibling tool offers similar functionality, no exclusions are needed. The only minor gap is not explicitly stating when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch_videoWatch the video itselfARead-onlyInspect
WATCH THE VIDEO YOURSELF — the real file, pixels and audio, not a description of it. Use this instead of look_at whenever your own model can take video input: look_at sends frames to Valmera's vision model and hands you back a PARAGRAPH, while this hands you the footage. kind 'timeline' (default) is the assembled program as the viewer sees it — it renders the current edit first if it has not been rendered; 'source' is the raw uploaded footage; 'asset' is one uploaded clip (pass asset_key). start/end watch a window rather than the whole thing. It comes back as a direct download link — a plain MP4 you fetch and watch. Cheap: normally it hands over a file that already exists, untouched.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Watch up to this second. | |
| kind | No | Default 'timeline' — the current edit. | |
| start | No | Watch from this second. OUTPUT seconds for 'timeline', source seconds otherwise. | |
| frames | No | Default true. False returns only the video file/link and suppresses sampled frame sheets plus their attached audio; use false for clean external ASR retrieval. | |
| max_mb | No | Shrink to about this many megabytes. Use when your model has a file-size limit. | |
| render | No | kind='timeline': false watches the last render that exists instead of rendering the current edit, and says how stale it is. Default true. | |
| delivery | No | A download link either way. Embedding the file in the reply is off on this deployment. | |
| asset_key | No | kind='asset' only: the storage_key list_assets prints. | |
| max_height | No | Cap the picture height (e.g. 360). Never up-scales. | |
| project_id | Yes | Required immutable project scope. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes beyond annotations by disclosing that it may render the current edit if not already rendered, returns a direct download link, suppresses frame sheets when frames=false, and notes that it is cheap because it usually hands over an existing file. No contradiction with readOnlyHint=true.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and then systematically covers usage, kinds, parameters, and return format. Every sentence adds value; length is justified by the tool's complexity (10 parameters).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 10 parameters and no output schema, the description covers all parameter behaviors, the return format (download link), and the cost profile. It also addresses edge cases like stale renders and embedding being off.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 100% schema coverage, the description enriches parameter meaning: explains kind options in detail (timeline renders first, source is raw, asset needs asset_key), clarifies start/end as window boundaries, and explains frames, render, and delivery behavior beyond their schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: it delivers the actual video file (pixels and audio) as a download link, contrasting with look_at which returns a paragraph description. It names the specific resource (video) and action (watch) and distinguishes from a sibling tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs when to use this tool: 'Use this instead of look_at whenever your own model can take video input.' It also explains the difference between timeline/source/asset kinds and when to use each, providing clear selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
134 tool updates
- First observed
add_aspect_shift - First observed
add_captions - First observed
add_color_screen - First observed
add_corrupt_screen - First observed
add_custom_filter - First observed
add_freeze_frame - First observed
add_kinetic_text - First observed
add_music - First observed
add_overlay - First observed
add_screen_takeover - First observed
add_sfx - First observed
add_stock_media - First observed
add_stylize - First observed
add_text - First observed
add_text_behind - First observed
add_title_card - First observed
add_vector_graphic - First observed
add_voiceover - First observed
add_web_sfx - First observed
add_zoom - First observed
add_zoom_path - First observed
apply_look - First observed
ask_user - First observed
audit_audio_mix - First observed
audit_captions - First observed
audition_sfx_candidates - First observed
auto_reframe - First observed
beat_align_cuts - First observed
bind_motion_motif - First observed
blur_region - First observed
compare_uploaded_media - First observed
compose_panels - First observed
create_project - First observed
cut_output_range - First observed
cut_range - First observed
cut_silences - First observed
download_url - First observed
enhance_cursor - First observed
enhance_video - First observed
erase_burned_text - First observed
erase_region - First observed
expand_toolset - First observed
extract_audio - First observed
fetch_sfx - First observed
fetch_url - First observed
find_burned_text - First observed
find_footage - First observed
find_silences - First observed
find_song - First observed
find_visual_moments - First observed
get_audio_analysis - First observed
get_editorial_map - First observed
get_edl - First observed
get_kept_transcript - First observed
get_shots - First observed
get_transcript - First observed
get_video_info - First observed
get_words - First observed
index_status - First observed
insert_media - First observed
justify_verification_findings - First observed
keep_segments - First observed
list_assets - First observed
list_projects - First observed
look_at - First observed
look_at_asset - First observed
make_shorts - First observed
move_insert - First observed
move_overlay - First observed
move_sfx - First observed
open_project - First observed
open_short - First observed
open_visual_page - First observed
project_state - First observed
punch_in_on_emphasis - First observed
read_skill - First observed
record_website - First observed
record_website_demo - First observed
remove_aspect_shift - First observed
remove_blur - First observed
remove_cursor_enhance - First observed
remove_custom_filter - First observed
remove_erase - First observed
remove_filler_words - First observed
remove_insert - First observed
remove_music - First observed
remove_overlay - First observed
remove_screen_frame - First observed
remove_screen_takeover - First observed
remove_sfx - First observed
remove_speed - First observed
remove_stem_mix - First observed
remove_stylize - First observed
remove_text - First observed
remove_vector_graphic - First observed
remove_voiceover - First observed
remove_zoom - First observed
remove_zoom_path - First observed
render_preview - First observed
research_broll - First observed
reset_edit - First observed
restore_range - First observed
review_audio - First observed
search_sfx - First observed
search_stock - First observed
search_transcript - First observed
separate_music - First observed
set_audio_gain - First observed
set_caption_fixes - First observed
set_caption_mutes - First observed
set_caption_style - First observed
set_color_grade - First observed
set_fades - First observed
set_frame - First observed
set_grade_custom - First observed
set_insert_window - First observed
set_master_loudness - First observed
set_music_fit - First observed
set_overlay_motion - First observed
set_screen_frame - First observed
set_speed - First observed
set_text_motion - First observed
set_transitions - First observed
set_vector_graphic - First observed
set_volume - First observed
shorts_status - First observed
showcase_demo - First observed
start_media_sequence - First observed
suggest_emphasis - First observed
swap_music - First observed
upload_finish - First observed
upload_start - First observed
wait_for_job - First observed
watch_video
Related MCP Connectors
Edit video by talking to your AI — search footage, cut timelines, apply effects, add captions.
- CueFrameOAuthai.cueframe
Turn footage into finished video: content-aware reframing, captions behind the subject, graphics.
Turn long videos into AI-curated short clips: caption, reframe, thumbnail, schedule, and publish.
Turn any video or livestream into scored, captioned, ready-to-post vertical clips.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables AI agents to edit video assemblies from A-roll and B-roll, add captions, and publish to social media platforms.279 npmMIT
- FlicenseAqualityAmaintenanceOpenShorts turns long videos into vertical clips readys for Social Media posting83,993-
- AlicenseAqualityBmaintenanceAI-powered video clipping server that analyzes subtitles and audio to detect highlight moments, then generates platform-adapted short clips from long videos.5Apache 2.0
- FlicenseNot gradedqualityBmaintenanceEnables autonomous shortform video editing by converting 16:9 footage to 9:16 with dynamic speaker tracking, smart reframing bounding boxes, audio silence pacing, and precise cut-list generation through MCP-compatible clients.8-
Glama MCP Gateway
Add one secure layer between your agents and this server.